Algorithme : Echange de variables
Joana a conçu l'algorithme suivant afin d'échanger les valeurs de deux variables a et b :
variables
a, b : nombres réels
début algorithme
1. saisir a
2. saisir b
3. afficher "La valeur de a est ", a
4. afficher "La valeur de b est ", b
5. a prend la valeur b
6. b prend la valeur a
7. afficher "La valeur de a est ", a
8. afficher "La valeur de b est ", b
fin algorithme
On saisit 2 comme valeur pour a et 5 comme valeur pour b.
Compléter le tableau suivant :
Ligne a b Affichage 1. 2 2. 2 5 3. 2 5 La valeur de a est 2 4. 2 5 La valeur de b est 5 5. ... ... 6. ... ... 7. ... ... ... 8. ... ... ... L'algorithme de Joana permet-il d'intervertir correctement les valeurs des variables a et b ?
Corriger l'algorithme de Joana de façon à ce qu'il fonctionne correctement.
Corrigé
Ligne a b Affichage 1. 2 2. 2 5 3. 2 5 La valeur de a est 2 4. 2 5 La valeur de b est 5 5. 5 5 6. 5 5 7. 5 5 La valeur de a est 5 8. 5 5 La valeur de b est 5 L'algorithme de Joana ne fonctionne pas correctement.
En effet, en ligne 5, l'instruction « a prend la valeur b » écrase l'ancienne valeur de a qui est 2 par la valeur 5 et la valeur 2 est donc « perdue ».
La ligne 6 n'a alors aucun effet puisqu'elle remplace la valeur 5 par... la valeur 5 !!!
Il faut rajouter une troisième variable qui stockera l'ancienne valeur de a comme par exemple :
variables a, b, c : nombres réels début algorithme 1. saisir a 2. saisir b 3. afficher "La valeur de a est ", a 4. afficher "La valeur de b est ", b 5. c prend la valeur a 6. a prend la valeur b 7. b prend la valeur c 8. afficher "La valeur de a est ", a 9. afficher "La valeur de b est ", b fin algorithme
Le fonctionnement pas à pas lorsque l'on entre respectivement 2 et 5 pour a et b donne alors :
Ligne a b c Affichage 1. 2 2. 2 5 3. 2 5 La valeur de a est 2 4. 2 5 La valeur de b est 5 5. 2 5 2 6. 5 5 2 7. 5 2 2 8. 5 2 2 La valeur de a est 5 9. 5 2 2 La valeur de b est 2 Les valeurs de a et de b ont bien été interverties !