Algorithme : Echange de variables
Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.
Créer un compteObjectif travaillé
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
- saisir a
- saisir b
- afficher « La valeur de a est », a
- afficher « La valeur de b est », b
- a prend la valeur b
- b prend la valeur a
- afficher « La valeur de a est », a
- afficher « La valeur de b est », b
fin algorithme
En Python, cet algorithme s'écrit :
a = float(input("Saisir a : "))
b = float(input("Saisir b : "))
print("La valeur de a est", a)
print("La valeur de b est", b)
a = b
b = a
print("La valeur de a est", a)
print("La valeur de b est", b)
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- saisir a
- saisir b
- afficher « La valeur de a est », a
- afficher « La valeur de b est », b
- c prend la valeur a
- a prend la valeur b
- b prend la valeur c
- afficher « La valeur de a est », a
- afficher « La valeur de b est », b
fin algorithme
En Python :
a = float(input("Saisir a : ")) b = float(input("Saisir b : ")) print("La valeur de a est", a) print("La valeur de b est", b) c = a a = b b = c print("La valeur de a est", a) print("La valeur de b est", b)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 !