Algorithmes et programmation
Variables, boucles, conditions, pseudo-code et Scratch
Voici une ligne que tu vas croiser dans tous les programmes du monde :
Lis-la comme une égalité mathématique et elle est absurde. Aucun nombre ne vérifie : en retirant des deux côtés, il resterait . Pourtant cette ligne est parfaitement correcte en programmation, et elle s'exécute des milliards de fois par seconde dans les machines autour de toi.
Comment une chose impossible peut-elle être juste ?
Parce que la flèche ne dit pas « est égal à ». Elle dit « reçoit ». La machine lit l'ancienne valeur de , lui ajoute , puis range le résultat dans , écrasant ce qu'il y avait. Si valait avant la ligne, il vaut après. Rien n'est affirmé : quelque chose est fait, et le temps est passé entre les deux côtés de la flèche.
Tout le chapitre tient dans ce basculement. En mathématiques, désigne un nombre fixe qu'on cherche à connaître. En algorithmique, désigne une case mémoire dont le contenu change au fil de l'exécution. Confondre les deux, c'est ne plus rien comprendre à un programme dès la troisième ligne.
Un algorithme est une suite finie et non ambiguë d'instructions permettant de résoudre un problème. Les trois structures fondamentales — séquence, condition, boucle — suffisent à exprimer n'importe quel calcul, du plus simple au moteur de recherche.
Pour déboguer un algorithme, une seule technique vaut vraiment : tracer son exécution ligne par ligne dans un tableau de valeurs — une colonne par variable, une ligne par étape. On y voit chaque affectation faire son effet, et l'erreur saute aux yeux.
Deux types de boucles : la boucle bornée () avec un nombre fixé de tours ; la boucle non bornée () qui continue tant qu'une condition reste vraie.
📖 Vocabulaire clé
Algorithme
:
Suite finie et non ambiguë d'instructions qui résout un problème donné. Chaque étape doit être suffisamment précise pour être exécutée mécaniquement.
Variable
:
Espace mémoire nommé qui stocke une valeur. Une variable peut contenir un nombre, du texte, etc. Sa valeur peut changer au cours de l'exécution.
Affectation
:
Instruction qui donne une nouvelle valeur à la variable . Attention : n'est pas une équation, c'est une mise à jour.
Boucle
:
Structure qui répète un bloc d'instructions. La boucle bornée () a un nombre fixé de tours ; la boucle non bornée () continue jusqu'à ce qu'une condition devienne fausse.
Et en Scratch ?
:
Le pseudo-code du cours se traduit bloc par bloc dans Scratch, le langage du brevet.
est le bloc « mettre x à 0 » ; est « ajouter 1 à x ».
est « répéter 10 fois ».
(condition) est « répéter jusqu'à » — attention, la condition y est contraire : « tant que » devient « répéter jusqu'à » pour un entier .
est le bloc « si … alors … sinon ».
est le bloc « mettre x à 0 » ; est « ajouter 1 à x ».
est « répéter 10 fois ».
(condition) est « répéter jusqu'à » — attention, la condition y est contraire : « tant que » devient « répéter jusqu'à » pour un entier .
est le bloc « si … alors … sinon ».
📋 Les trois structures de base
- 1 Séquence : les instructions s'exécutent dans l'ordre, l'une après l'autre. C'est la structure la plus simple.
- 2 Condition : (condition) (bloc A) (bloc B). Exécution conditionnelle — un seul des deux blocs s'exécute.
-
3
Boucle bornée : — nombre de tours fixé à l'avance.
Boucle non bornée : (condition) — continue jusqu'à ce que la condition devienne fausse.
✅ Exemple résolu
Énoncé : Tracer l'exécution de l'algorithme suivant :
Démarche :
- Initialisation : .
- Tour : .
Tour : .
Tour : . - La boucle est terminée ( a atteint ). La valeur finale de est .
Réponse : . L'algorithme calcule la somme des carrés de à : .
📐 Formules clés
Affectation : (la variable prend la valeur )
Boucle bornée :
Test :
🎨 Illustrations
Algorigramme
Une boucle bornée pas à pas : calculer S = 1² + 2² + 3²
Le même algorithme que dans l'exemple du cours, sous forme d'organigramme normalisé : rectangles pour les actions, losange pour le test de la boucle, terminaux arrondis pour le début et la fin.
- 1 Initialisation : S ← 0 puis i ← 1, avant d'entrer dans la boucle.
- 2 Tant que i ≤ 3 (branche « Oui ») : on exécute S ← S + i² puis i ← i + 1, et on revient tester la condition.
- 3 Dès que i ≤ 3 devient faux, c'est-à-dire à i = 4 (branche « Non ») : on sort de la boucle et on affiche S.
Ce qu'il faut lire : Suis la boucle « Oui » qui revient sur le losange tant que i ≤ 3 ; dès qu'elle devient fausse, la branche « Non » mène à l'affichage du résultat.
Piège
Une affectation n'est pas une équation
est impossible en mathématiques, et pourtant s'écrit tous les jours en algorithmique. La raison tient en une image : la flèche ne compare pas deux choses, elle remplace l'ancienne valeur par la nouvelle. Voici les valeurs, ligne à ligne, pendant l'exécution de l'exemple du cours.
- 1 Lis une ligne à la fois. À chaque ligne, une seule des deux variables change : celle que l'instruction nomme à gauche de la flèche. L'autre garde sa valeur.
- 2 Regarde la ligne « le compteur reçoit compteur plus » quand le compteur vaut : il passe à . Il n'y a aucune contradiction, parce que le de droite est l'ancienne valeur et le de gauche la nouvelle.
- 3 C'est pour cela que l'ordre des instructions compte en algorithmique alors qu'il ne compte pas dans un système d'équations. Intervertir deux lignes change le résultat.
- 4 La somme suit le même mécanisme : , puis , puis , puis . Chaque valeur est l'ancienne plus le nouveau carré, et elle écrase l'ancienne.
- 5 On retrouve bien , le résultat annoncé par l'algorigramme. Une table de ce genre est le moyen le plus sûr de vérifier un algorithme dont tu doutes.
Ce qu'il faut lire : Une table de suivi se remplit de haut en bas, une instruction par ligne, sans jamais sauter d'étape. La colonne qui change est celle de la variable nommée avant la flèche.
❌ Une erreur, une suggestion
L'erreur fréquente
l'affectation signifie « prendre la valeur actuelle de , y ajouter , et stocker le résultat dans ».
La suggestion
Ce n'est pas une équation : est impossible en maths, mais parfaitement valide en algorithmique.
💡 À retenir
- Les trois structures fondamentales sont la séquence, la condition () et la boucle ( ou ).
- L'affectation n'est PAS une équation : c'est une mise à jour qui lit l'ancienne valeur, calcule, et stocke le résultat.
- Tracer l'exécution dans un tableau (une ligne par étape, une colonne par variable) est la méthode la plus sûre pour comprendre et déboguer.
- Une boucle bornée () a un nombre de tours fixé à l'avance ; une boucle non bornée () peut tourner indéfiniment si la condition ne devient jamais fausse.