Cours PREMIUM — Algorithmique / Scratch (3e • Brevet)
Objectif : savoir écrire et lire un algorithme, manipuler
variables, conditions, boucles,
faire des simulations aléatoires et déboguer efficacement.
Variables
Si / Sinon
Boucles
Aléatoire
Débogage
0) Vocabulaire essentiel (à connaître)
Algorithme
Suite finie d’instructions qui transforme des entrées
(données) en sorties (résultats).
Programme / Script (Scratch)
Traduction de l’algorithme en blocs Scratch. On y retrouve : événements,
variables, tests, boucles.
Variable
Boîte qui stocke une valeur (nombre, texte…). Sa valeur peut changer pendant l’exécution.
Condition
Test logique : vrai ou faux. Exemple : \(x \ge 10\).
Astuce Brevet : toujours distinguer “entrée” (ce qu’on demande à l’utilisateur)
de “sortie” (ce qu’on affiche).
1) Schéma : structure типique d’un algorithme
Beaucoup d’exercices se résument à : Initialiser → Répéter →
Tester → Mettre à jour → Afficher.
Diagramme (flowchart)
Lecture : un exercice peut demander de compléter le test,
l’initialisation (valeurs de départ) ou la mise à jour (ce qui change à chaque tour).
2) Variables : affectation, incrément, échange
2.1 Affectation (mettre une valeur dans une variable)
\[
x \leftarrow 7 \qquad\text{(on met 7 dans la variable \(x\))}
\]
En Scratch : mettre x à 7.
2.2 Incrément (ajouter 1, 2, …)
\[
x \leftarrow x + 1
\]
Sens : “on augmente \(x\) de 1”. En Scratch : ajouter 1 à x.
2.3 Accumulateur (sommes, scores)
Pour additionner une série de valeurs, on utilise souvent :
\[
S \leftarrow 0,\quad \text{puis}\quad S \leftarrow S + \text{(nouvelle valeur)}
\]
2.4 Piège classique : échange de deux variables
On veut échanger \(a\) et \(b\). Si on fait :
\(a \leftarrow b\) puis \(b \leftarrow a\), on perd une valeur.
\[
\text{temp} \leftarrow a,\quad a \leftarrow b,\quad b \leftarrow \text{temp}
\]
Brevet : l’échange avec variable temporaire tombe souvent en “débogage”.
3) Conditions : comparaisons et branchements
3.1 Comparaisons
- \(=\) (égalité), \(\ne\) (différent)
- \(<\), \(\le\), \(>\), \(\ge\)
- Logique : ET, OU, NON
Scratch : les blocs “et” / “ou” / “non” combinent des tests.
3.2 Structure “Si… Sinon…”
\[
\text{Si }(x \ge 10)\text{ alors afficher "OK" sinon afficher "Non"}
\]
Un test décide quelle branche exécuter.
3.3 Exemple Brevet : valeur absolue (version algorithmique)
Écrire un algorithme qui renvoie \(|x|\).
\[
\begin{array}{l}
\text{Lire } x\\
\text{Si } x \ge 0 \text{ alors } y \leftarrow x \\
\text{Sinon } y \leftarrow -x \\
\text{Afficher } y
\end{array}
\]
Contrôle : tester avec un \(x\) positif et un \(x\) négatif.
4) Boucles : répéter efficacement
4.1 Boucle “pour” (compteur)
On sait combien de fois on répète (ex : 10 fois).
\[
\begin{array}{l}
S \leftarrow 0 \\
\text{Pour } i \text{ allant de } 1 \text{ à } 10 \\
\quad S \leftarrow S + i \\
\text{Afficher } S
\end{array}
\]
Ici, \(S = 1+2+\cdots+10\).
4.2 Boucle “tant que” (arrêt conditionnel)
On ne sait pas à l’avance combien de tours, on s’arrête quand le test devient faux.
\[
\begin{array}{l}
x \leftarrow 1 \\
\text{Tant que } x < 100 \\
\quad x \leftarrow 2x \\
\text{Afficher } x
\end{array}
\]
Piège : si on oublie la mise à jour de \(x\), la boucle peut devenir infinie.
4.3 Schéma “compteur” vs “accumulateur”
Compteur
Mesure le nombre de tours / d’objets.
\[
c \leftarrow c + 1
\]
Accumulateur
Cumule une somme / un score.
\[
S \leftarrow S + \text{valeur}
\]
5) Simulations aléatoires (Scratch)
5.1 Générer un nombre aléatoire
En Scratch : bloc nombre aléatoire entre A et B (inclus).
\[
r \in \{1,2,3,4,5,6\} \quad \text{(dé)}
\]
5.2 Exemple Brevet : estimer une probabilité par simulation
On lance un dé 1000 fois. On compte la fréquence d’obtenir un 6.
\[
\begin{array}{l}
N \leftarrow 1000 \\
c \leftarrow 0 \\
\text{Répéter } N \text{ fois :}\\
\quad r \leftarrow \text{aléatoire}(1,6) \\
\quad \text{Si } r = 6 \text{ alors } c \leftarrow c + 1 \\
f \leftarrow \dfrac{c}{N} \\
\text{Afficher } f
\end{array}
\]
Interprétation : plus \(N\) est grand, plus la fréquence \(f\) se rapproche de \( \frac{1}{6}\).
Mini-diagramme : “simulation = compteur + boucle + condition”
6) Débogage (très demandé au Brevet)
6.1 Erreurs fréquentes
- Oubli d’initialisation : compteur non mis à 0.
- Test inversé : \(\le\) au lieu de \(<\).
- Mise à jour manquante dans une boucle (“tant que” infini).
- Confusion entre “mettre à” et “ajouter à” (Scratch).
6.2 Méthode rapide (pro)
- Choisir une valeur test simple.
- Faire un tableau de traces (valeurs des variables à chaque étape).
- Vérifier l’invariant (ce qui doit rester vrai).
- Comparer le résultat attendu et obtenu.
6.3 Exemple de débogage (classique)
Objectif : compter le nombre de valeurs positives parmi 5 nombres saisis.
L’algorithme ci-dessous est faux. Trouver l’erreur.
\[
\begin{array}{l}
c \leftarrow 0 \\
\text{Répéter 5 fois :}\\
\quad \text{Lire } x \\
\quad \text{Si } x > 0 \text{ alors } c \leftarrow 1 \\
\text{Afficher } c
\end{array}
\]
Bug : on fait \(c \leftarrow 1\) au lieu de \(c \leftarrow c+1\).
Résultat : dès qu’un positif apparaît, \(c\) vaut 1, même s’il y en a plusieurs.
Version corrigée
\[
\begin{array}{l}
c \leftarrow 0 \\
\text{Répéter 5 fois :}\\
\quad \text{Lire } x \\
\quad \text{Si } x > 0 \text{ alors } c \leftarrow c+1 \\
\text{Afficher } c
\end{array}
\]
7) À retenir (résumé premium)
Structures
- Séquence : instructions l’une après l’autre.
- Condition : si / sinon.
- Boucle : répéter (N fois) ou tant que (condition).
Outils Brevet
- Compteur : \(c \leftarrow c+1\)
- Accumulateur : \(S \leftarrow S + \text{valeur}\)
- Trace : tableau des variables étape par étape
Checklist : initialisation ✅ / mise à jour ✅ / test correct ✅ / sorties attendues ✅