CORRECTION TD 1
Exercice 1
Soit l’algorithme Test1 suivant :
Algorithme Test1
A ←4 (1)
B ←11 (2)
A ←B - A (3)
B ←B - A (4)
A ←A + B (5)
Fin
1. Que fait l’algorithme ci-dessus ?
Cet algorithme assure la permutation des valeurs des Variables A et B.
2. Ce résultat est-t-il toujours vrai ? Etablir la trace de cet algorithme (sous forme de
tableau) avec a et b pour valeurs initiales de A et B.
Oui, cet algorithme assure la permutation des valeurs des variable A et B
quelque soit les valeurs initiaux a de la variable A et b de la variable B.
3. Ecrire un nouvel algorithme équivalant en n’utilisant que des variables ? (Utiliser une variable intermédiaire).
Algorithme : Permuter2
// Permutation de deux variables
Variables A, B, Loulou : Entier
Début
Afficher («Veillez donner la valeur de la variable A »)
Saisir(A)
Afficher («Veillez donner la valeur de la variable B»)
Saisir(B)
Loulou ← A
A ← B
B ← Loulou
Afficher («Après exécution de l’algorithme»)
Afficher («La valeur de la variable A est de », A)
Afficher («La valeur de la variable B est de », B)
Fin
4. Que font les deux algorithmes ci-dessous ? (Trouver pour chacun ce qu’il fait grâce
à un exemple puis le prouver)
Algorithme Test2
Début
A ←A+B+C (1)
B ←B+C (2)
C ←A-C (3)
A ←A-C (4)
B ←C-B+A (5)
C ←C-B (6)
Fin
Algorithme Test3
Début
B ←B+C (1)
C ←B-C (2)
B ←B-C (3)
A ←A+B (4)
B ←A-B (5)
A ←A-B (6)
Fin
Algorithme Test2 :
Algorithme Test3 :
Les algorithmes 2 et 3 font la permutation circulaire des variables A, B et C.
5. Ecrire un algorithme permettant de réaliser la permutation circulaire de trois
variables d’un même type quelconque A, B et C en effectuant d’abord la transposition
des variables A et B, ensuite celle des variable B et C. (NB : On utilisera une seule
variable intermédiaire.)
Algorithme 4 Permuter3_1
// Permutation circulaire de trois variables en effectuant d’abord la transposition
des variables A et B, ensuite celle des variable B et C.
Variables A, B, C, Loulou : Entier
Début
Afficher («Veillez donner la valeur de la variable A »)
Saisir(A)
Afficher («Veillez donner la valeur de la variable B»)
Saisir(B)
Afficher («Veillez donner la valeur de la variable C»)
Saisir(C)
Afficher («Au début»)
Afficher («La valeur de la variable A est de », A)
Afficher («La valeur de la variable B est de », B)
Afficher («La valeur de la variable C est de », C)
Loulou ← A
A ← B
B ← Loulou
Loulou ← B
B ← C
C ← Loulou
Afficher («Après exécution de notre algorithme»)
Afficher («La valeur de la variable A est de », A)
Afficher («La valeur de la variable B est de », B)
Afficher («La valeur de la variable C est de », C)
Fin
Ecrire un algorithme qui réalise directement la permutation circulaire des trois variables
A, B et C en utilisant une variable intermédiaire et en ayant la décomposition de la
permutation en transpositions.
Algorithme 5 Permuter3_2
//Permutation circulaire de trois variables en utilisant une variable intermédiaire et
en ayant la décomposition de la permutation en transpositions..
Variables A, B, C, Loulou : Entier
Début
Afficher («Veillez donner la valeur de la variable A »)
Saisir(A)
Afficher («Veillez donner la valeur de la variable B»)
Saisir(B)
Afficher («Veillez donner la valeur de la variable C»)
Saisir(C)
Afficher («Au début»)
Afficher («La valeur de la variable A est de », A)
Afficher («La valeur de la variable B est de », B)
Afficher («La valeur de la variable C est de », C)
Loulou ← A
A ← C
C ← B
B ← Loulou
Afficher («Après exécution de notre algorithme»)
Afficher («La valeur de la variable A est de », A)
Afficher («La valeur de la variable B est de », B)
Afficher («La valeur de la variable C est de », C)
Fin
6. Dénombrer les affectations et les opérations (additions et soustractions) effectuées
lors de l’exécution des 4 algorithmes ci-dessus (questions 4 à 6). Sachant qu’un
ordinateur prend une petite fraction de seconde pour effectuer chaque opération ou
affectation,
Algorithm 2 : 14 fractions de seconde
Algorithm 3 : 12 fractions de seconde
Algorithm 4 : 6 fractions de seconde
Algorithm 5 : 4 fractions de seconde
L’algorithme 5 coûte le moins en temps.
7. Ecrire un algorithme réalisant la permutation circulaire des variables A, B, C et D.
Qui sera optimisé au regard du temps d’exécution. Combien comporte-t-il
d’affectations? Généraliser au cas de n variables.
Algorithme 6
// Permutation circulaire de trois variables en utilisant une variable intermédiaire
et en ayant la décomposition de la permutation en transpositions..
Variables A, B, C, D, Loulou en Entier
Début
Afficher («Veillez donner la valeur de la variable A »)
Saisir(A)
Afficher («Veillez donner la valeur de la variable B»)
Saisir(B)
Afficher («Veillez donner la valeur de la variable C»)
Saisir(C)
Afficher («Veillez donner la valeur de la variable D»)
Saisir(D)
Afficher («Au début»)
Afficher («La valeur de la variable A est de », A)
Afficher («La valeur de la variable B est de », B)
Afficher («La valeur de la variable C est de », C)
Afficher («La valeur de la variable D est de », D)
Loulou ← A
A ← D
D ← C
C ← B
B ← Loulou
Afficher («Après exécution de notre algorithme»)
Afficher («La valeur de la variable A est de », A)
Afficher («La valeur de la variable B est de », B)
Afficher («La valeur de la variable C est de », C)
Afficher («La valeur de la variable D est de », D)
Fin
Exercice 2
1. Compléter par le symbole de comparaison adéquat (< ou >):
"AUTO" ….. "AVION"
1997 > 43
"1997" …. "43"
"BAL" …. "BALLON
Exercice 3
1. Ecrire un algorithme complet pour calculer le périmètre du rectangle, en utilisant au
mieux les instructions Saisir et Afficher, puis y ajouter le calcul de la surface.
2. Ecrire un algorithme qui demande le Prix Hors Taxes et la quantité d’un article, puis
afficher une facture bien présentée (Taux de TVA est de 20,6%)
Algorithme Calcul du périmètre du rectangle
Variables L, l, P en Entier
Début
Afficher («Veillez donner la longueur du rectangle »)
Saisir(L)
Afficher («Veillez donner la largeur du rectangle»)
Saisir(l)
P ← (L+l)*2
Afficher («Le périmètre de votre rectangle est de : », P)
Fin