Objectifs : - Utiliser les boucles dans PASCAL.
- Créer des procédures et des fonctions sous PASCAL.
- Manipuler les chaînes de caractères sous PASCAL.
Initiation à la programmation
Exercice 1 : Sur les cartes
On souhaite que les tas de cartes soient remplis de la manière suivante :
– tas 1 : Un pique surmonté d’un nombre quelconque de trèfles puis par un pique.
– tas 2 : Un trèfle surmonté d’un nombre quelconque de carreaux, puis par un trèfle.
– tas 3 : Un carreau surmonté d’un nombre quelconque de cœurs.
– tas 4 : Un cœur surmonté d’un nombre quelconque de piques.
– tas 2 : Un trèfle surmonté d’un nombre quelconque de carreaux, puis par un trèfle.
– tas 3 : Un carreau surmonté d’un nombre quelconque de cœurs.
– tas 4 : Un cœur surmonté d’un nombre quelconque de piques.
Q1 . Donner une suite d’instructions en Pascal permettant d’initialiser le robot avec cette situation initiale.
On souhaite atteindre la situation suivante (qu’on désigne S1 par la suite) :
Tas 1 : P[T] Tas 2 : T[K] Tas 3 : K[C] Tas 4 : C[P]
Q2 . Donner les instructions en Pascal qui permettent de passer de la situation initiale à la situation S1 .
Q3 . Quelqu’un a écrit en Pascal la fonction ci-dessous, pour déterminer le plus petit numéro de tas différent de t1 et t2
f u n c t i o n UnAutreTas ( const t 1 , t 2 : T a s P o s s i b l e s ) : T a s P o s s i b l e s ;
var r e s : T a s P o s s i b l e s ;
begin
r e s := 1 ;
while ( r e s = t 1 ) and ( r e s = t 2 ) do begin
r e s := r e s + 1 ; end { w h i l e } ; UnAutreTas := r e s ;
end { UnAutreTas } ;
Q 3.1. Quel est l’affichage produit par l’instruction writeln(UnAutreTas(1,2)) ? Est-ce l’affichage attendu ?
Q 3.2. Comment corriger l’erreur commise par le programmeur et rendre correcte la fonction UnAutreTas ?
Q 3.3. La fonction peut-elle retourner la valeur 4 ? Q 4 . On souhaite réaliser une procédure nommée DeplacerFond paramétrée par deux numéros de tas t1 et t2. L’action de cette procédure consiste à déplacer la carte située au fond du tas t1 vers le sommet du t2.
Q 4.1. Voyez-vous des contraintes à l’utilisation de cette procédure ?
Q 4.2. Donner la ligne de spécifications de la procédure DeplacerFond.
Q 4.3. Réalisez la proc´edure DeplacerFond.
Q5 . En utilisant la procédure DeplacerFond, donnez une séquence d’instructions pour passer de la situation S1 (décrite dans la question 2) à la situation suivante :
Tas 1 : [T] Tas 2 : [K] Tas 3 : [C] Tas 4 : [P]
Exercice 2 : Calcul de moyenne
Q 1 . On veut calculer la somme d’une suite de nombres réels tapés au clavier un par un, suite achevée dès qu’un nombre négatif est lu. Par exemple, si la suite de nombres tapés est
3.5 1.2 6.1 2.0 -1
la somme est 12.8 (-1 n’est pas compté dans la somme). Et si la suite de nombres est réduite au seul nombre négatif, alors la somme est 0.Q 1.1. Déclarez les variables nécessaires au calcul de cette somme.
Q 1.2. Donnez la suite d’instruction calculant cette somme.
Q 2 . On veut maintenant calculer la moyenne arithmétique des nombres lus, c’est–a–dire la somme de ces nombres divisées par leur nombre. On suppose qu’au moins un nombre positif est lu.
Q 2.1. Déclarez les variables supplémentaires pour effectuer ce calcul.
Q 2.2. Donnez les instructions permettant de calculer cette moyenne.
Exercice 3 : Sur les chaînes de caractères
Le but de cet exercice est de réaliser une fonction de mélange des caractères d’une chaîne. Le mélange souhaité est obtenu
1. en séparant la chaîne S à mélanger en deux chaînes Sl et S2 obtenues en prenant un caractère sur deux, Sl contenant les caractères d’indice impair, S2 contenant ceux d’indices pairs.
timoleon 7→ Sl =tmlo et S2 =ioen
2. puis en concaténant les deux chaînes obtenues
Sl +S2 =tmloioen
Ainsi le mélange de la chaîne timoleon est tmloioen.
Q1 . Écrivez les instructions permettant de calculer Sl et S2 à partir d’une chaîne S.
Q2 . Réalisez la fonction nommée mélange qui réalise le mélange souhaité.
Aucun commentaire:
Enregistrer un commentaire