Affectation – échange de valeurs | Algorithmique Seconde

Introduction

AFFECTATION & ÉCHANGE DE VALEURS
Algorithmique et Programmation - Variables et Affectation

Découvrez comment manipuler les variables en algorithmique

Échange
Affectation
Variables

Définition de la variable

Qu'est-ce qu'une variable ?

DÉFINITION MATHÉMATIQUE
Définition

En algorithmique, une variable est un conteneur qui stocke une valeur pouvant être modifiée au cours de l'exécution d'un algorithme.

Chaque variable a :

  • Un nom (identifiant)
  • Un type (entier, réel, chaîne de caractères, etc.)
  • Une valeur actuelle
Représentation visuelle

Imagine une boîte nommée x qui contient une valeur :

x ← 5

Cette notation signifie que la variable x reçoit la valeur 5.

Notation de l'affectation

L'opérateur d'affectation

SYMBOLE D'AFFECTATION
Notation utilisée

Dans les algorithmes, on utilise souvent le symbole pour désigner l'affectation :

variablevaleur

Cela signifie que la variable reçoit la valeur.

EXEMPLES CONCRETS
Exemples d'affectation
  • a ← 10 (la variable a reçoit la valeur 10)
  • b ← "Bonjour" (la variable b reçoit la chaîne "Bonjour")
  • ca + 5 (la variable c reçoit la valeur de a + 5)

Principe de l'échange de valeurs

Échanger deux variables

LE PROBLÈME
Situation initiale

Imaginons que nous ayons deux variables :

  • a = 5
  • b = 10

Nous voulons que a = 10 et b = 5

ERREUR CLASSIQUE
Ce qu'il ne faut pas faire

L'instruction suivante est incorrecte :

ab
ba

Résultat : a = 10 et b = 10 (les deux ont la même valeur !)

Il faut une variable temporaire !

Méthode avec variable temporaire

La solution : variable temporaire

ALGORITHME D'ÉCHANGE
Les 3 étapes de l'échange

Soit a = 5 et b = 10

tempa
ab
btemp
EXPPLICATION PAS À PAS
Analyse de chaque étape
  • 1 tempa : temp = 5
  • 2 ab : a = 10
  • 3 btemp : b = 5

Résultat final : a = 10 et b = 5 ✅

Autres méthodes d'échange

Alternatives à la méthode classique

MÉTHODE ARITHMÉTIQUE (pour nombres)
Échange sans variable temporaire

Pour des variables numériques a et b :

aa + b
ba - b
aa - b
EXEMPLE PRATIQUE
Avec a = 5 et b = 10
  • 1 a ← 5 + 10 = 15
  • 2 b ← 15 - 10 = 5
  • 3 a ← 15 - 5 = 10

Résultat : a = 10 et b = 5 ✅

Attention : cette méthode ne fonctionne que pour les nombres !

Exemple complet d'algorithme

Algorithme d'échange complet

ALGORITHME ÉCHANGE
Structure de l'algorithme
Algorithme EchangeValeurs
Variables a, b, temp : Entier

Début
    Afficher("Entrez la valeur de a : ")
    Lire(a)
    Afficher("Entrez la valeur de b : ")
    Lire(b)
    
    Afficher("Avant échange : a =", a, " et b =", b)
    
    temp ← a
    a ← b
    b ← temp
    
    Afficher("Après échange : a =", a, " et b =", b)
Fin
EXÉCUTION PAS À PAS
Trace d'exécution
Instruction a b temp
Lire(a) 5 ? ?
Lire(b) 5 10 ?
temp ← a 5 10 5
a ← b 10 10 5
b ← temp 10 5 5

Erreurs courantes à éviter

Pièges à éviter

ERREUR N°1 : Sans variable temporaire
Erreur classique
ab
ba

Cette séquence ne fonctionne pas car a perd sa valeur initiale avant que b ne la récupère.

ERREUR N°2 : Mauvais ordre
Ordre incorrect
btemp
tempa
ab

Cette séquence échouera car temp n'est pas encore initialisée.

ERREUR N°3 : Type incompatible
Types de données

Assurez-vous que les variables soient du même type ou compatibles :

  • a = "texte" et b = 123 → impossible d'échanger directement
  • Utilisez des conversions de type si nécessaire

Applications concrètes

Où utiliser l'échange de valeurs ?

TRIS DANS LES TABLEAUX
Tri à bulles

Lorsqu'on trie un tableau, on échange souvent des éléments adjacents :

Si tab[i] > tab[i+1] Alors
    temp ← tab[i]
    tab[i] ← tab[i+1]
    tab[i+1] ← temp
FinSi
RÉORGANISATION DE DONNÉES
Exemples d'utilisation
  • 1 Inversion de l'ordre de deux éléments
  • 2 Permutation de positions dans un jeu
  • 3 Réinitialisation de valeurs dans un programme
  • 4 Rotation de valeurs dans un cercle

Exercice d'application

Problème à résoudre

ÉNONCÉ
Exercice

On dispose de trois variables : a, b et c.

Initialement : a = 10, b = 20, c = 30

Écrire un algorithme qui permet d'échanger les valeurs de manière circulaire :

  • La valeur de a devient celle de b
  • La valeur de b devient celle de c
  • La valeur de c devient celle de a

Solution de l'exercice

Correction détaillée

SOLUTION PAS À PAS
Algorithme de rotation circulaire
Variables a, b, c, temp : Entier

a ← 10
b ← 20
c ← 30

Afficher("Avant rotation : a=", a, " b=", b, " c=", c)

temp ← a      // Sauvegarde de a
a ← b         // a prend la valeur de b
b ← c         // b prend la valeur de c
c ← temp      // c prend la valeur initiale de a

Afficher("Après rotation : a=", a, " b=", b, " c=", c)
TRACE D'EXÉCUTION
Suivi des valeurs
  • Initialisation : a=10, b=20, c=30
  • 1 tempa : temp=10
  • 2 ab : a=20
  • 3 bc : b=30
  • 4 ctemp : c=10

Résultat final : a=20, b=30, c=10 ✅

Exercice supplémentaire

Inversement sans variable temporaire

ÉNONCÉ
Exercice

Soit deux variables x et y de type Entier.

Initialisation : x = 15, y = 25

Écrire un algorithme qui inverse les valeurs de x et y SANS utiliser de variable temporaire, en utilisant uniquement des opérations arithmétiques.

Solution de l'exercice supplémentaire

Correction arithmétique

ALGORITHME SANS VARIABLE TEMPORAIRE
Méthode arithmétique
Variables x, y : Entier

x ← 15
y ← 25

Afficher("Avant : x=", x, " y=", y)

x ← x + y   // x = 15 + 25 = 40
y ← x - y   // y = 40 - 25 = 15
x ← x - y   // x = 40 - 15 = 25

Afficher("Après : x=", x, " y=", y)
VÉRIFICATION
Trace pas à pas
  • Initialisation : x=15, y=25
  • 1 xx + y : x=40
  • 2 yx - y : y=15
  • 3 xx - y : x=25

Résultat final : x=25, y=15 ✅

Visualisation de l'échange

Représentation graphique

SCÉNARIO VISUEL
Échange de valises

Imaginons deux personnes A et B avec chacune une valise :

  • Personne A a une valise bleue
  • Personne B a une valise rouge

Pour échanger sans se marcher dessus :

  1. A pose sa valise bleue sur une table (variable temporaire)
  2. B prend la valise rouge et la donne à A
  3. A récupère la valise bleue de la table et la garde
REPRÉSENTATION EN BOÎTES
Schéma des affectations
a: [5] → [ ]
b: [10] → [ ]
temp: [ ] → [5]
a: [ ] → [10]
b: [10] → [ ]
temp: [5] → [5]
a: [10] → [10]
b: [ ] → [5]
temp: [5] → [5]

Complexité de l'échange

Analyse de performance

ANALYSE DES MÉTHODES
Comparaison des approches
Méthode Opérations Complexité Avantages Inconvénients
Variable temporaire 3 affectations O(1) Simple, universel +1 variable
Arithmétique 3 opérations O(1) Pas de var. supp. Numérique seulement
XOR (avancé) 3 XOR O(1) Très efficace Complexité
RECOMMANDATION
Meilleure pratique

Pour les débutants et dans la plupart des cas, la méthode avec variable temporaire est la plus claire et la plus fiable :

  • Facile à comprendre
  • Fonctionne avec tous les types de données
  • Moins d'erreurs possibles
  • Universellement applicable

Résumé

Points clés

DÉFINITIONS ESSENTIELLES
Concepts fondamentaux
  • Une variable est un conteneur pour une valeur
  • L'affectation (←) attribue une valeur à une variable
  • L'échange consiste à inverser les valeurs de deux variables
Méthodes d'échange
  • Méthode classique : variable temporaire (recommandée)
  • Méthode arithmétique : pour nombres uniquement
  • Autres méthodes : XOR, tuples (selon langage)
Bonnes pratiques
  • Toujours utiliser une variable temporaire pour l'échange simple
  • Attention à l'ordre des instructions
  • Vérifier la compatibilité des types
  • Tester avec des cas limites
L'échange de valeurs est une technique fondamentale en algorithmique !

Conclusion

Félicitations !

FÉLICITATIONS !
MAÎTRISE DE L'AFFECTATION
Vous comprenez maintenant l'échange de valeurs !

Continuez à pratiquer pour renforcer vos compétences en algorithmique

Compris
Retenu
Appliqué