Algorithmique • Seconde

Affectation – échange de valeurs
Variables et affectation

Concepts & Exercices
Affectation = Assignation d'une valeur à une variable
Définition fondamentale
Affectation
VARIABLE ← VALEUR
Échange
Utilisation d'une variable temporaire
Séquence
Exécution dans l'ordre d'écriture
Effet de bord
La variable perd sa valeur précédente
🎯
Définition : L'affectation consiste à attribuer une valeur à une variable.
📏
Notation : variable ← valeur ou variable := valeur.
🔄
Échange : Pour échanger deux variables, on utilise une variable temporaire.
📊
Séquence : Les affectations s'exécutent dans l'ordre d'écriture.
⚠️
Attention : L'affectation écrase la valeur précédente de la variable.
Ordre important : L'ordre des affectations peut influencer le résultat.
💡
Conseil : Toujours penser à la variable temporaire pour échanger deux valeurs
🔍
Attention : L'ordre des affectations est crucial dans un algorithme
Astuce : Visualiser l'état des variables à chaque étape
📋
Méthode : Suivre l'évolution des valeurs pas à pas
⚠️
Erreur fréquente : Essayer d'échanger sans variable temporaire
Vérification : Toujours tester l'algorithme avec des exemples concrets
Exercice 1
Donner l'algorithme pour échanger les valeurs de deux variables A et B.
Exercice 2
Soit A ← 5, B ← 3. Donner les valeurs de A et B après l'affectation A ← A + B.
Exercice 3
Soit X ← 10, Y ← 7. Donner les valeurs de X et Y après les affectations X ← Y, Y ← X.
Exercice 4
Soit A ← 8, B ← 12. Écrire l'algorithme pour échanger A et B, puis donner les nouvelles valeurs.
Exercice 5
Soit A ← 4, B ← 9. Écrire un algorithme qui met la plus grande valeur dans A et la plus petite dans B.
Exercice 6
Soit X ← 15, Y ← 23, Z ← 19. Donner un algorithme pour échanger circulairement leurs valeurs.
Exercice 7
Soit A ← 6, B ← 4. Donner un algorithme pour échanger A et B sans utiliser de variable temporaire.
Exercice 8
Soit A ← 11, B ← 17. Donner les valeurs de A et B après la séquence : A ← A - B, B ← A + B, A ← B - A.
Exercice 9
Soit X ← 25. Donner un algorithme pour dupliquer la valeur de X dans Y et Z.
Exercice 10
Soit A ← 30, B ← 45, C ← 60. Écrire un algorithme pour inverser l'ordre des valeurs (A=C, B=A, C=B).
Corrigé : Exercices 1 à 5
1 Échange de deux variables
Définition :

Problème : Échanger les valeurs de deux variables A et B.

Méthode de résolution :

Utiliser une variable temporaire pour conserver la valeur de A avant de l'écraser.

Étape 1 : Analyse du problème

On veut que la valeur initiale de A devienne la valeur finale de B, et vice-versa.

Étape 2 : Besoin d'une variable temporaire

Si on affecte directement A ← B, on perd la valeur initiale de A.

Étape 3 : Algorithme d'échange
ALGORITHME EchangerVariables
VARIABLES
  A, B, temp : réels
DEBUT
  temp ← A
  A ← B
  B ← temp
FIN
Étape 4 : Exemple d'exécution

Initial : A = 5, B = 3

temp ← A → temp = 5

A ← B → A = 3

B ← temp → B = 5

Résultat final : A = 3, B = 5

Réponse finale :

temp ← A
A ← B
B ← temp

Règles appliquées :

Variable temporaire : Pour conserver la valeur originale

Séquence : Respecter l'ordre des affectations

Principe : Sauvegarder, affecter, restaurer

2 Affectation A ← A + B
Définition :

Problème : Calculer les nouvelles valeurs de A et B après A ← A + B.

Étape 1 : État initial

A = 5, B = 3

Étape 2 : Affectation A ← A + B

A = A + B = 5 + 3 = 8

Étape 3 : État final

A = 8 (valeur modifiée)
B = 3 (inchangé)

Étape 4 : Explication

• La valeur de A est remplacée par la somme de ses valeurs initiales

• La valeur de B n'est pas modifiée

Réponse finale :

A = 8, B = 3

Règles appliquées :

Affectation : La variable reçoit une nouvelle valeur

Expression : A + B est évaluée avant l'affectation

Effet de bord : La valeur précédente de A est perdue

3 Séquence d'affectations
Définition :

Problème : Calculer les nouvelles valeurs de X et Y après X ← Y puis Y ← X.

Étape 1 : État initial

X = 10, Y = 7

Étape 2 : Première affectation X ← Y

X = Y = 7

État intermédiaire : X = 7, Y = 7

Étape 3 : Deuxième affectation Y ← X

Y = X = 7 (X vaut maintenant 7)

État final : X = 7, Y = 7

Étape 4 : Analyse

Cette séquence ne permet pas d'échanger les valeurs, car X est modifié avant d'être copié dans Y.

Réponse finale :

X = 7, Y = 7

Règles appliquées :

Séquence : Les affectations s'exécutent dans l'ordre

Valeur écrasée : X perd sa valeur initiale

Conséquence : Y reçoit la nouvelle valeur de X, pas l'ancienne

4 Échange de A et B
Définition :

Problème : Échanger les valeurs de A = 8 et B = 12.

Étape 1 : État initial

A = 8, B = 12

Étape 2 : Algorithme d'échange
temp ← A    // temp = 8
A ← B       // A = 12
B ← temp    // B = 8
Étape 3 : État final

A = 12, B = 8

Étape 4 : Vérification

• La valeur initiale de A (8) est maintenant dans B

• La valeur initiale de B (12) est maintenant dans A

Réponse finale :

Algorithme :
temp ← A
A ← B
B ← temp

Nouvelles valeurs : A = 12, B = 8

Règles appliquées :

Échange correct : Utilisation d'une variable temporaire

Principe : Sauvegarder → Remplacer → Restaurer

Résultat : Les valeurs sont effectivement échangées

5 Mettre le maximum dans A
Définition :

Problème : Réorganiser A = 4 et B = 9 pour que le maximum soit dans A et le minimum dans B.

Étape 1 : État initial

A = 4, B = 9

Étape 2 : Comparaison

Comme A < B, il faut échanger les valeurs

Étape 3 : Algorithme
SI A < B ALORS
  temp ← A
  A ← B
  B ← temp
FIN SI
Étape 4 : Exécution

• A < B (4 < 9) est vrai

• temp ← 4, A ← 9, B ← 4

• État final : A = 9, B = 4

Réponse finale :

SI A < B ALORS
temp ← A
A ← B
B ← temp
FIN SI

Résultat : A = 9, B = 4

Règles appliquées :

Structure conditionnelle : Échange seulement si nécessaire

Comparaison : Utilisation de l'opérateur <

Résultat : A contient le maximum, B le minimum

Corrigé : Exercices 6 à 10
6 Échange circulaire de trois variables
Définition :

Problème : Échanger circulairement les valeurs de X = 15, Y = 23, Z = 19.

Étape 1 : État initial

X = 15, Y = 23, Z = 19

Étape 2 : Objectif de l'échange circulaire

Après l'échange : X devrait contenir la valeur initiale de Y,
Y devrait contenir la valeur initiale de Z,
Z devrait contenir la valeur initiale de X.

Étape 3 : Algorithme d'échange circulaire
temp ← X     // Sauvegarder X
X ← Y        // X prend la valeur de Y
Y ← Z        // Y prend la valeur de Z
Z ← temp     // Z prend la valeur initiale de X
Étape 4 : Exécution pas à pas

• temp ← X → temp = 15

• X ← Y → X = 23

• Y ← Z → Y = 19

• Z ← temp → Z = 15

Réponse finale :

temp ← X
X ← Y
Y ← Z
Z ← temp

Résultat final : X = 23, Y = 19, Z = 15

Règles appliquées :

Échange circulaire : Chaque variable reçoit la valeur suivante

Variable temporaire : Pour conserver la première valeur

Séquence : Respecter l'ordre pour éviter la perte de données

7 Échange sans variable temporaire
Définition :

Problème : Échanger A = 6 et B = 4 sans utiliser de variable temporaire.

Étape 1 : État initial

A = 6, B = 4

Étape 2 : Méthode arithmétique

Utiliser des opérations arithmétiques pour stocker temporairement la somme.

Étape 3 : Algorithme arithmétique
A ← A + B    // A = 6 + 4 = 10
B ← A - B    // B = 10 - 4 = 6 (valeur initiale de A)
A ← A - B    // A = 10 - 6 = 4 (valeur initiale de B)
Étape 4 : Exécution pas à pas

• A ← A + B → A = 6 + 4 = 10

• B ← A - B → B = 10 - 4 = 6

• A ← A - B → A = 10 - 6 = 4

• État final : A = 4, B = 6

Réponse finale :

A ← A + B
B ← A - B
A ← A - B

Résultat : A = 4, B = 6

Règles appliquées :

Méthode arithmétique : Utiliser des opérations pour simuler l'échange

Séquence critique : L'ordre des opérations est essentiel

Limitation : Peut causer des dépassements de capacité avec de grands nombres

8 Séquence complexe d'affectations
Définition :

Problème : Calculer les nouvelles valeurs de A = 11 et B = 17 après la séquence : A ← A - B, B ← A + B, A ← B - A.

Étape 1 : État initial

A = 11, B = 17

Étape 2 : Première affectation A ← A - B

A = 11 - 17 = -6

État : A = -6, B = 17

Étape 3 : Deuxième affectation B ← A + B

B = (-6) + 17 = 11

État : A = -6, B = 11

Étape 4 : Troisième affectation A ← B - A

A = 11 - (-6) = 11 + 6 = 17

État final : A = 17, B = 11

Étape 5 : Analyse

Cette séquence a échangé les valeurs de A et B sans variable temporaire.

Réponse finale :

A = 17, B = 11

Règles appliquées :

Séquence pas à pas : Suivre chaque affectation dans l'ordre

Valeurs intermédiaires : Prendre en compte les changements successifs

Résultat : L'algorithme a échangé les valeurs de A et B

9 Duplication de valeur
Définition :

Problème : Dupliquer la valeur de X = 25 dans les variables Y et Z.

Étape 1 : État initial

X = 25, Y = ?, Z = ? (valeurs initiales inconnues)

Étape 2 : Objectif

Après l'algorithme, Y et Z devraient contenir la valeur de X (25).

Étape 3 : Algorithme de duplication
Y ← X
Z ← X
Étape 4 : Exécution

• Y ← X → Y = 25

• Z ← X → Z = 25

• État final : X = 25, Y = 25, Z = 25

Étape 5 : Alternative

On pourrait aussi faire : Y ← X, Z ← Y (donne le même résultat)

Réponse finale :

Y ← X
Z ← X

Résultat : X = 25, Y = 25, Z = 25

Règles appliquées :

Copie simple : Affecter la même valeur à plusieurs variables

Indépendance : Chaque affectation est indépendante

Ordre : Peu importe l'ordre des copies dans ce cas

10 Inversion de l'ordre de trois variables
Définition :

Problème : Inverser l'ordre des valeurs de A = 30, B = 45, C = 60 pour que A = C, B = A, C = B.

Étape 1 : État initial

A = 30, B = 45, C = 60

Étape 2 : Objectif

Après l'algorithme : A = 60, B = 30, C = 45

Étape 3 : Besoin d'une variable temporaire

Si on fait directement A ← C, on perd la valeur de A.

Étape 4 : Algorithme avec variable temporaire
temp ← A     // Sauvegarder A
A ← C        // A reçoit la valeur de C
C ← B        // C reçoit la valeur de B
B ← temp     // B reçoit la valeur initiale de A
Étape 5 : Exécution pas à pas

• temp ← A → temp = 30

• A ← C → A = 60

• C ← B → C = 45

• B ← temp → B = 30

• État final : A = 60, B = 30, C = 45

Réponse finale :

temp ← A
A ← C
C ← B
B ← temp

Résultat : A = 60, B = 30, C = 45

Règles appliquées :

Permutation circulaire : A → C, C → B, B → A

Variable temporaire : Pour sauvegarder la première valeur

Séquence critique : Respecter l'ordre pour éviter la perte de données

Affectation – échange de valeurs Variables et affectation