Mathématiques3eAlgorithmique et programmationExercices + corrigé
Scratch : variables, boucles imbriquées, conditions — Exercices
Tracer, compter, corriger, construire. Corrigé en fin de fiche.
1Trace d'exécution — variable et condition/ 3 pts
On considère l'algorithme Scratch : mettre x à 10 / répéter 4 fois / [ajouter −3 à x / si x < 2 alors dire «Stop !»].
- Complète le tableau de valeurs : Tour 1 → $x =$ ? | Tour 2 → $x =$ ? | Tour 3 → $x =$ ? | Tour 4 → $x =$ ?
- À quel(s) tour(s) la condition $x \lt 2$ est-elle vraie ?
- Combien de fois le lutin dit-il «Stop !» ?
2Compter les itérations/ 2 pts
Un programme contient deux boucles imbriquées : la boucle externe répète 5 fois, la boucle interne répète 3 fois. À l'intérieur se trouve uniquement le bloc ajouter 2 à total. La variable total est initialisée à 0 avant les boucles.
- Combien de fois le bloc ajouter 2 à total est-il exécuté au total ?
- Quelle est la valeur de total à la fin du programme ?
3Condition si … alors … sinon/ 3 pts
L'algorithme est : mettre note à 7 / si note ≥ 10 alors dire «Reçu» sinon dire «Recalé».
- Que dit le lutin ?
- Quelle est la valeur minimale de note pour que le lutin dise «Reçu» ?
- On remplace la condition par note > 10. Que dit le lutin si note vaut exactement 10 ?
4Repérer et corriger une erreur/ 3 pts
Un élève veut afficher la table de 3 de $3 \times 1$ à $3 \times 5$. Il écrit : répéter 5 fois / [mettre n à 1 / ajouter 1 à n / dire (n × 3) pendant 1 seconde]. Il obtient cinq fois la valeur «6».
- Explique pourquoi $n$ vaut toujours 2 à chaque tour.
- Propose une correction : que faut-il déplacer et où ?
- Avec la correction (mettre n à 0 avant la boucle, ajouter 1 à n à l'intérieur), quelle suite de valeurs est affichée ?
5Problème — grille de points/ 4 pts
Un lutin dessine une grille de 6 colonnes et 4 lignes. À chaque position il pose un point. Une variable nb est initialisée à 0 avant les boucles et incrémentée de 1 à chaque point posé.
- Combien de points sont dessinés au total ?
- Quelle valeur donner à la boucle externe (lignes) et à la boucle interne (colonnes) ?
- Quelle est la valeur de nb à la fin de l'algorithme ?
- Si l'on ajoute la condition si nb = 12 alors dire «Moitié !» juste après l'incrémentation, combien de fois ce message est-il affiché ?
Corrigé détaillé
1Trace d'exécution
Tableau \(x_0 = 10 \quad \text{Tour 1 : } 10 - 3 = 7 \quad \text{Tour 2 : } 7 - 3 = 4 \quad \text{Tour 3 : } 4 - 3 = 1 \quad \text{Tour 4 : } 1 - 3 = {-2}\) \(7 \;;\ 4 \;;\ 1 \;;\ {-2}\)
Condition \(\text{Tour 3 : } 1 \lt 2 \text{ (vrai)} \qquad \text{Tour 4 : } {-2} \lt 2 \text{ (vrai)}\) \(\text{Tours 3 et 4}\)
Affichage \(\text{Condition vraie aux tours 3 et 4 → «Stop !» dit deux fois.}\) \(\text{2 fois}\)
2Compter les itérations
a) \(5 \times 3 =\) \(15 \text{ exécutions}\)
b) \(\text{total} = 0 + 15 \times 2 =\) \(30\)
3Condition si … alors … sinon
a) \(7 \ge 10 \text{ est fausse} \Rightarrow \text{branche sinon activée}\) \(\text{Le lutin dit «Recalé».}\)
b) \(note \ge 10 \text{ est vraie pour la première fois quand } note = 10\) \(\text{Valeur minimale : } 10\)
c) \(10 \gt 10 \text{ est fausse} \Rightarrow \text{branche sinon}\) \(\text{Le lutin dit «Recalé» (10 n'est pas strictement supérieur à 10).}\)
4Repérer et corriger une erreur
a) Cause \(\text{À chaque tour : } n \leftarrow 1 \text{ (mettre n à 1), puis } n \leftarrow 1 + 1 = 2. \text{ La réinitialisation écrase l'incrémentation.}\) \(\text{n vaut toujours 2 → n \times 3 = 6 à chaque tour.}\)
b) Correction \(\text{Retirer «mettre n à 1» de la boucle. Placer «mettre n à 0» AVANT la boucle.}\) \(\text{n s'incrémente de 1 à chaque tour sans être réinitialisé.}\)
c) Valeurs \(n : 1,\ 2,\ 3,\ 4,\ 5 \quad \Rightarrow \quad n \times 3 : 3,\ 6,\ 9,\ 12,\ 15\) \(3 \;;\ 6 \;;\ 9 \;;\ 12 \;;\ 15\)
5Grille de points
a) \(6 \times 4 =\) \(24 \text{ points}\)
b) \(\text{Boucle externe (lignes) : 4 tours} \qquad \text{Boucle interne (colonnes) : 6 tours}\) \(\text{Externe} = 4 \;;\ \text{Interne} = 6\)
c) \(\text{nb est incrémenté une fois par point posé, soit } 24 \text{ fois.}\) \(\text{nb} = 24\)
d) \(\text{nb = 12 est atteint exactement une seule fois (au 12e point posé).}\) \(\text{1 fois}\)