Python au lycée (1) : Les variables Exercices

Algorithme : Echange de variables

Durée estimée
20 minutes
Difficulté
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Objectif 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

  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

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)
  1. 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 ?

  2. Corriger l'algorithme de Joana de façon à ce qu'il fonctionne correctement.

Corrigé

  1. 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 ! ! !

  2. 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

    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 !