Algorithmique et Scratch
Cours de maths collège · Variables, boucles, conditions, programmes de calcul, blocs Scratch · Exercices corrigés type brevet
Depuis 2017, l'algorithmique est quasi systématique au brevet (souvent 10-20 points). L'exercice type : un programme Scratch est donné, on demande de déterminer ce qu'il affiche, de le traduire en expression algébrique, ou de le modifier. Pas besoin de savoir coder — il faut comprendre la logique des instructions.
Qu'est-ce qu'un algorithme ?
Un algorithme est une suite finie d'instructions claires et ordonnées qui permet de résoudre un problème. Chaque instruction est non ambiguë : n'importe qui (ou un ordinateur) peut l'exécuter sans interprétation.
Algorithme pour traverser la rue :
1. Aller au passage piéton. 2. Regarder à gauche. 3. Regarder à droite. 4. SI aucune voiture ALORS traverser. SINON attendre et revenir à l'étape 2.
On retrouve les ingrédients : instructions ordonnées, condition (SI), boucle (revenir à l'étape 2).
Les variables
Une variable est un « tiroir » dans lequel on stocke une valeur (un nombre, un texte). On peut lire sa valeur, la modifier, l'utiliser dans un calcul. Dans Scratch, les variables sont des blocs oranges.
| Bloc Scratch | Action | Exemple |
|---|---|---|
| mettre [n] à (5) | Donner la valeur 5 à la variable n | n ← 5 |
| ajouter (3) à [n] | Ajouter 3 à la valeur actuelle de n | n ← n + 3 → n = 8 |
| demander […] et attendre | L'utilisateur saisit une valeur → stockée dans « réponse » | Entrée clavier |
| mettre [n] à (réponse) | Stocker la saisie dans n | n ← valeur saisie |
ajouter (6) à [n] → n = 4 + 6 = 10
mettre [n] à (n × 2) → n = 10 × 2 = 20
dire (n) → affiche 20
Les blocs Scratch essentiels
| Catégorie | Couleur | Blocs clés |
|---|---|---|
| Événements | 🟡 Jaune | Quand ⚑ est cliqué |
| Contrôle | 🟠 Orange | Répéter (n) fois, Répéter jusqu'à, Si… alors, Si… alors… sinon, Attendre |
| Variables | 🟠 Orange foncé | Mettre [var] à, Ajouter à [var] |
| Opérateurs | 🟢 Vert | +, −, ×, ÷, modulo, =, <, >, ET, OU, NON, arrondi |
| Capteurs | 🔵 Bleu clair | Demander… et attendre, réponse |
| Apparence | 🟣 Violet | Dire [message], Dire [message] pendant (n) secondes |
| Mouvement | 🔵 Bleu | Avancer de, Tourner de, Aller à, S'orienter |
| Stylo | 🟢 Vert foncé | Stylo en position d'écriture, Relever le stylo |
Les boucles (répéter)
Une boucle répète un bloc d'instructions plusieurs fois. Il existe deux types au programme du collège :
| Bloc | Fonctionnement | Exemple |
|---|---|---|
| Répéter (n) fois | Exécute le bloc exactement n fois | Répéter 4 fois → carré |
| Répéter jusqu'à (condition) | Exécute tant que la condition est fausse, s'arrête quand elle devient vraie | Répéter jusqu'à (n > 100) |
répéter (4) fois
dire (n)
Trace : n = 1 → 2 → 4 → 8 → 16. Le programme affiche 16.
À chaque passage, n est doublé. Après 4 passages : 1 × 2⁴ = 16.
répéter jusqu'à (n > 50)
dire (n)
Trace : n = 3 → 9 (9 > 50 ? Non) → 27 (27 > 50 ? Non) → 81 (81 > 50 ? Oui → on sort). Affiche 81.
Les conditions (si… alors)
| Bloc | Fonctionnement |
|---|---|
| Si (condition) alors | Exécute le bloc seulement si la condition est vraie. Sinon, on saute. |
| Si (condition) alors sinon | Si la condition est vraie → bloc 1. Si elle est fausse → bloc 2. |
mettre [n] à (réponse)
si (n modulo 2 = 0) alors sinon
Le bloc modulo donne le reste de la division euclidienne. Si n modulo 2 = 0 → n est divisible par 2 → pair.
Le modulo (ou « reste de ») est très utilisé au brevet. Il donne le reste de la division entière. Exemples : 7 modulo 3 = 1 (car 7 = 2×3 + 1), 10 modulo 5 = 0 (car 10 = 2×5 + 0). Si le modulo vaut 0, le nombre est divisible.
Programmes de calcul
Un programme de calcul est un algorithme qui prend un nombre en entrée, effectue des opérations et produit un résultat. C'est l'exercice le plus classique au brevet.
Programme A :
• Choisir un nombre
• Le multiplier par 3
• Ajouter 5
• Afficher le résultat
Test avec 4 : 4 → 4×3 = 12 → 12+5 = 17
Test avec −2 : −2 → (−2)×3 = −6 → −6+5 = −1
Expression avec x : f(x) = 3x + 5
Programme B :
• Choisir un nombre
• Soustraire 1
• Élever au carré
• Ajouter le double du nombre de départ
• Afficher le résultat
Test avec 3 : 3 → 3−1 = 2 → 2² = 4 → 4 + 2×3 = 4+6 = 10
Expression avec x : f(x) = (x−1)² + 2x = x² − 2x + 1 + 2x = x² + 1
Quand l'énoncé demande « quel nombre faut-il choisir pour obtenir 20 », on résout f(x) = 20. Avec f(x) = 3x + 5 : 3x + 5 = 20 → 3x = 15 → x = 5.
Traduire Scratch en algèbre
- Repérer l'entrée (demander / réponse) → c'est la variable x.
- Suivre chaque instruction dans l'ordre, en remplaçant les valeurs par des expressions en x.
- L'instruction dire donne le résultat final → c'est f(x).
- Si une boucle est présente, dérouler les itérations une par une.
mettre [n] à (réponse) → n = x
mettre [n] à (n × n) → n = x²
ajouter (-1) à [n] → n = x² − 1
dire (n) → f(x) = x² − 1
f(x) = x² − 1
Scratch et géométrie
Au brevet, on peut aussi demander de dessiner des figures avec le stylo et les blocs de mouvement.
répéter (4) fois
4 côtés de 100, tournant de 90° à chaque fois → carré.
3 côtés, tournant de 120° (= 180° − 60°). L'angle de rotation est l'angle extérieur, pas l'angle intérieur.
Carré : 360°/4 = 90°. Triangle : 360°/3 = 120°. Hexagone : 360°/6 = 60°. Pentagone : 360°/5 = 72°.
Tableau récapitulatif des blocs
| Bloc Scratch | Traduction mathématique |
|---|---|
| mettre [n] à (valeur) | n ← valeur |
| ajouter (k) à [n] | n ← n + k |
| mettre [n] à (n × 2) | n ← 2n |
| dire (n) | Afficher / résultat = n |
| répéter (k) fois | Exécuter le bloc k fois |
| répéter jusqu'à (cond.) | Tant que la condition est fausse, exécuter |
| si (cond.) alors sinon | Si condition vraie → A, sinon → B |
| n modulo m | Reste de la division de n par m |
| avancer de (d), tourner de (α) | Déplacement géométrique |
Erreurs classiques
« Mettre [n] à 5 » → n devient 5 (écrase l'ancienne valeur). « Ajouter 5 à [n] » → n augmente de 5 (ancienne valeur + 5).
« Répéter 4 fois » → le bloc est exécuté 4 fois, pas 3 ni 5. Compter soigneusement dans la trace.
Un programme de calcul se lit de haut en bas. « Multiplier par 2 puis ajouter 3 » (2x+3) n'est pas la même chose que « Ajouter 3 puis multiplier par 2 » (2(x+3) = 2x+6).
Dans Scratch, « tourner de 90° » fait tourner le lutin de 90° par rapport à sa direction actuelle. Pour un polygone régulier, l'angle de rotation est l'angle extérieur = 360°/n, pas l'angle intérieur.
C'est l'inverse de « tant que ». Le bloc s'exécute tant que la condition est fausse et s'arrête dès qu'elle devient vraie.
Exercices corrigés
Programme : choisir un nombre, le multiplier par 2, soustraire 7, afficher le résultat.
a) Tester avec 5. b) Tester avec −3. c) Donner l'expression f(x). d) Quel nombre choisir pour obtenir 11 ?
Corrigé :
a) 5 → 10 → 10−7 = 3
b) −3 → −6 → −6−7 = −13
c) f(x) = 2x − 7
d) 2x − 7 = 11 → 2x = 18 → x = 9
mettre [compteur] à (0)
répéter (5) fois
dire (n)
Qu'affiche ce programme ?
Corrigé : Trace de n : 1 → 4 → 7 → 10 → 13 → 16. Affiche 16.
(On ajoute 3 cinq fois à 1 : 1 + 5×3 = 16)
mettre [n] à (réponse)
si (n modulo 3 = 0) alors sinon
Que dit le programme pour n = 12 ? Pour n = 7 ?
Corrigé :
n = 12 : 12 modulo 3 = 0 → « Divisible par 3 »
n = 7 : 7 modulo 3 = 1 ≠ 0 → « Pas divisible par 3 »
répéter (6) fois
Quelle figure est tracée ?
Corrigé : 6 côtés de 80 pas, rotation de 60° = 360°/6. C'est un hexagone régulier.
Programme A : Choisir un nombre → ajouter 4 → élever au carré → afficher.
Programme B : Choisir un nombre → l'élever au carré → ajouter 8 fois le nombre de départ → ajouter 16 → afficher.
a) Tester les deux programmes avec x = 3. b) Exprimer chaque programme en fonction de x. c) Les deux programmes donnent-ils toujours le même résultat ?
Corrigé :
a) Programme A : 3 → 7 → 49. Programme B : 3 → 9 → 9+24 = 33 → 33+16 = 49. Même résultat : 49.
b) A : f(x) = (x+4)². B : g(x) = x² + 8x + 16.
c) On développe A : (x+4)² = x² + 8x + 16 = g(x). Oui, les deux programmes donnent toujours le même résultat → on reconnaît l'identité remarquable (a+b)² = a² + 2ab + b².
