3ᵉ · Chapitre 14 · Algorithmique et programmation
Exercices — Algorithmique et programmation (Scratch)
16 exercices de difficulté croissante, à chercher avant de regarder le corrigé.
Sommaire
16 exercices, difficulté croissante de ★ (application directe) à ★★★★ (défi). Les corrigés détaillés sont dans le PDF — cherchez d'abord, le corrigé ensuite : c'est là que ça progresse.
Exercice 1 ★★★★ — Exécuter un script pas à pas
Lire et exécuter un script pas à pas
Léa vient de créer son premier script dans Scratch. Elle l'exécute et observe son lutin.
quand le drapeau vert est cliqué
dire « Bonjour ! » pendant 2 secondes
avancer de (50) pas
tourner à droite de (90) degrés
avancer de (50) pas
1. Décris, dans l'ordre, tout ce que fait le lutin quand on clique sur le drapeau vert.
2. Dans quel ordre les instructions d'un script s'exécutent-elles ? Réponds par une phrase.
3. Léa affirme : « à la fin du script, le lutin a avancé de pas en ligne droite ». Vrai ou faux ? Justifie ta réponse.
Exercice 2 ★★★★ — Que dit le lutin ?
Lire et exécuter un script pas à pasVariables, compteurs et programmes de calcul
Un lutin exécute le programme de calcul suivant.
quand le drapeau vert est cliqué
demander « Choisis un nombre. » et attendre
mettre [nombre] à réponse
mettre [nombre] à nombre * 2
ajouter 7 à [nombre]
dire (nombre)
Que dit le lutin à la fin du script si l'utilisateur répond :
1. ?
2. ?
3. ?
4. Explique, avec tes mots, la différence entre les blocs mettre [nombre] à … et ajouter … à [nombre].
Exercice 3 ★★★★ — Répéter n fois
Boucles : répéter n fois, répéter jusqu'à
On considère le script suivant.
quand le drapeau vert est cliqué
mettre [total] à 0
répéter (6) fois
ajouter 4 à [total]
dire (total)
1. Combien de fois l'instruction ajouter 4 à [total] est-elle exécutée ?
2. Que dit le lutin à la fin du script ?
3. On remplace par dans la boucle et par dans l'instruction ajouter. Que dit alors le lutin ?
4. Pour le script de départ, écris un calcul « en une seule multiplication » qui donne directement le résultat affiché par le lutin.
Exercice 4 ★★★★ — Le bon script pour la bonne figure
Déplacements et tracés de figuresBoucles : répéter n fois, répéter jusqu'à
Trois scripts ont été écrits pour tracer des figures avec le stylo. Les voici, ainsi que les trois figures obtenues, dans le désordre.
Script A
quand le drapeau vert est cliqué
stylo en position d'écriture
répéter (4) fois
avancer de (60) pas
tourner à droite de (90) degrés
Script B
quand le drapeau vert est cliqué
stylo en position d'écriture
répéter (3) fois
avancer de (80) pas
tourner à droite de (120) degrés
Script C
quand le drapeau vert est cliqué
stylo en position d'écriture
répéter (6) fois
avancer de (40) pas
tourner à droite de (60) degrés
1. Associe chaque script à la figure qu'il trace. Justifie ta réponse en t'appuyant sur les angles.
2. Quel est le périmètre, en pas, de la figure tracée par le script A ?
3. Vrai ou faux : « dans le script C, le lutin tourne en tout de degrés ». Justifie.
Exercice 5 ★★★★ — Programme de calcul et expression littérale
Variables, compteurs et programmes de calculLire et exécuter un script pas à pas
Zoé a programmé le script suivant, qui exécute un programme de calcul.
quand le drapeau vert est cliqué
demander « Choisis un nombre. » et attendre
mettre [résultat] à réponse * 3
ajouter 12 à [résultat]
dire (résultat)
1. Que dit le lutin si on choisit :
a. le nombre ?
b. le nombre ?
2. On note le nombre choisi. Exprime, en fonction de , le résultat affiché par le lutin.
3. Factorise l'expression obtenue à la question précédente.
4. Zoé affirme : « si je choisis un nombre entier, le résultat est toujours un multiple de ». A-t-elle raison ? Justifie ta réponse.
Exercice 6 ★★★★ — Le compteur dans la boucle
Variables, compteurs et programmes de calculBoucles : répéter n fois, répéter jusqu'à
On considère le script suivant, qui utilise deux variables : un compteur et une variable .
quand le drapeau vert est cliqué
mettre [n] à 1
mettre [somme] à 0
répéter (5) fois
ajouter n à [somme]
ajouter 1 à [n]
dire (somme)
1. Recopie et complète le tableau de trace d'exécution ci-dessous (la première ligne est déjà remplie).
| Tour de boucle | Valeur de en fin de tour | Valeur de en fin de tour |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 |
2. Que dit le lutin à la fin du script ?
3. Quel calcul ce script effectue-t-il ? Écris-le sous la forme d'une somme.
4. Que faudrait-il changer dans le script pour calculer ?
Exercice 7 ★★★★ — Répéter jusqu'à ce que
Boucles : répéter n fois, répéter jusqu'àVariables, compteurs et programmes de calcul
Un nénuphar est posé sur un étang. Chaque jour, la surface qu'il occupe double. Au départ, sa surface vaut , et on considère que l'étang est recouvert dès que la surface du nénuphar dépasse .
On a écrit le script suivant :
quand le drapeau vert est cliqué
mettre [surface] à 1
mettre [jours] à 0
répéter jusqu'à ce que <surface > 100>
mettre [surface] à surface * 2
ajouter 1 à [jours]
dire (jours)
1. Recopie et complète la trace d'exécution ci-dessous, jusqu'à l'arrêt de la boucle. Ajoute autant de lignes que nécessaire.
| Fin du tour | Valeur de surface |
Valeur de jours |
|---|---|---|
| 1 | 2 | 1 |
| 2 | 4 | 2 |
| 3 | ||
| … |
2. À la fin du script, que dit le lutin ?
3. Explique pourquoi on ne peut pas remplacer cette boucle par une boucle « répéter fois » sans avoir d'abord résolu le problème.
4. On remplace la condition de la boucle par <surface > 1000>. Combien de tours la boucle effectue-t-elle ? Quelle est la valeur finale de surface, et que dit le lutin ?
Exercice 8 ★★★★ — Tracer des polygones réguliers
Déplacements et tracés de figuresBoucles : répéter n fois, répéter jusqu'à
Pour tracer un polygone régulier avec Scratch, le lutin avance d'une longueur fixe, puis tourne toujours du même angle, et recommence autant de fois qu'il y a de côtés.
1. Écris un script complet (avec l'événement de départ et le stylo) qui trace un hexagone régulier de côté pas. Tu justifieras la valeur de l'angle de rotation choisie.
2. Quel angle de rotation faut-il utiliser pour tracer :
a. un polygone régulier à côtés ?
b. un polygone régulier à côtés ?
3. Pour tracer un pentagone régulier de côté pas, un élève écrit :
répéter (5) fois
avancer de (70) pas
tourner à droite de (60) degrés
Ce script ne trace pas un pentagone régulier. Explique les deux erreurs de raisonnement de cet élève.
Exercice 9 ★★★★ — Le jeu du dé
Instructions conditionnelles et hasard
On programme un petit jeu de hasard avec le script suivant :
quand le drapeau vert est cliqué
mettre [dé] à nombre aléatoire entre (1) et (6)
si <dé = 6> alors
dire « Gagné ! »
sinon
dire « Perdu… »
1. Décris en une ou deux phrases ce que fait ce script.
2. Léa lance le script et le lutin dit « Perdu… ». Quelles valeurs la variable dé a-t-elle pu prendre ?
3. On admet que le bloc nombre aléatoire entre (1) et (6) simule un dé équilibré. Quelle est la probabilité que le lutin dise « Gagné ! » ?
4. Modifie le script pour que le joueur gagne lorsque le dé donne ou . Quelle est alors la probabilité que le lutin dise « Gagné ! » ?
Exercice 10 ★★★★ — Devine mon nombre
Instructions conditionnelles et hasardBoucles : répéter n fois, répéter jusqu'àVariables, compteurs et programmes de calcul
On programme le jeu suivant : l'ordinateur choisit un nombre entier secret entre et , et le joueur doit le deviner. À chaque proposition, le lutin indique si elle est trop grande ou trop petite.
quand le drapeau vert est cliqué
mettre [secret] à nombre aléatoire entre (1) et (20)
mettre [essais] à 0
répéter jusqu'à ce que <réponse = secret>
demander « Devine mon nombre ! » et attendre
ajouter 1 à [essais]
si <réponse > secret> alors
dire « Trop grand ! »
si <réponse < secret> alors
dire « Trop petit ! »
dire « Bravo ! »
dire (essais)
1. Dans une partie, le nombre secret est et le joueur propose successivement , puis , puis . Qu'affiche le lutin après chaque proposition, puis à la fin du script ?
2. À quoi sert la variable essais dans ce programme ?
3. Pourquoi a-t-on utilisé une boucle « répéter jusqu'à ce que » plutôt qu'une boucle « répéter fois » ?
4. Le joueur adopte la stratégie suivante : il propose d'abord , puis, à chaque réponse du lutin, il propose le nombre situé au milieu des valeurs encore possibles. En coupant ainsi l'intervalle en deux à chaque proposition, combien d'essais suffisent à coup sûr pour trouver un nombre entre et ? Explique ton raisonnement.
Exercice 11 ★★★★ — La frise
Déplacements et tracés de figuresBoucles : répéter n fois, répéter jusqu'àÉvénements, blocs personnalisés et scripts parallèles
On veut décorer le bas de l'écran avec une frise en créneaux. On commence par créer un bloc personnalisé motif qui trace un seul créneau :
définir motif
avancer de (20) pas
tourner à gauche de (90) degrés
avancer de (20) pas
tourner à droite de (90) degrés
avancer de (20) pas
tourner à droite de (90) degrés
avancer de (20) pas
tourner à gauche de (90) degrés
avancer de (20) pas
Voici le tracé obtenu quand le lutin, orienté horizontalement vers la droite, exécute une fois le bloc motif :
1. Le lutin part orienté horizontalement vers la droite. Vérifie qu'à la fin du bloc motif, il est de nouveau orienté vers la droite. Tu pourras faire le bilan des rotations effectuées.
2. De combien de pas le lutin s'est-il déplacé horizontalement en tout pendant le tracé d'un motif ? Attention : tous les segments ne comptent pas !
3. Écris le script complet (événement de départ, stylo, boucle) qui trace la frise de motifs ci-dessous :
4. Quelle est la longueur totale de la frise, c'est-à-dire le déplacement horizontal du lutin entre le début et la fin du tracé ?
Exercice 12 ★★★★ — Événements et scripts parallèles
Événements, blocs personnalisés et scripts parallèles
Deux lutins, Chat et Souris, sont sur la scène. Voici leurs scripts.
Script du Chat :
quand le drapeau vert est cliqué
dire « Attrape-moi ! » pendant 2 secondes
envoyer [départ] à tous
Script 1 de la Souris :
quand je reçois [départ]
répéter (3) fois
avancer de (30) pas
attendre 1 seconde
Script 2 de la Souris :
quand la touche espace est pressée
dire « Squeak ! » pendant 1 seconde
1. Décris, dans l'ordre, tout ce qui se passe quand on clique sur le drapeau vert.
2. La Souris commence-t-elle à avancer dès le clic sur le drapeau vert ? Justifie ta réponse.
3. De combien de pas la Souris avance-t-elle en tout ?
4. On appuie sur la touche espace pendant que la Souris avance. Que se passe-t-il ?
Exercice 13 ★★★★ — La rosace
Événements, blocs personnalisés et scripts parallèlesDéplacements et tracés de figures
On veut faire tracer au lutin la rosace ci-dessous, formée de carrés de côté pas : entre deux carrés, le lutin tourne de degrés.
Pour cela, on a créé le bloc personnalisé suivant.
définir carré
répéter (4) fois
avancer de (40) pas
tourner à droite de (90) degrés
1. Que trace le bloc carré utilisé seul ? Justifie la valeur de l'angle de degrés.
2. Écris le script principal qui trace la rosace complète. Il doit démarrer au clic sur le drapeau vert, effacer les tracés précédents, mettre le stylo en position d'écriture, puis utiliser le bloc carré.
3. Explique par un calcul pourquoi la rosace « se referme » exactement après le douzième carré.
4. Quel est l'intérêt d'utiliser le bloc personnalisé carré plutôt que de recopier fois les instructions qu'il contient ?
5. On veut maintenant une rosace formée de carrés. De quel angle le lutin doit-il tourner entre deux carrés ?
Exercice 14 ★★★★ — Programme de calcul et équation
Variables, compteurs et programmes de calculLire et exécuter un script pas à pas
On considère les deux programmes de calcul suivants.
Programme A (script Scratch) :
quand le drapeau vert est cliqué
demander « Choisis un nombre. » et attendre
mettre [résultat] à réponse * 5
ajouter (-3) à [résultat]
dire (résultat)
Programme B :
- Choisir un nombre.
- Ajouter .
- Multiplier le tout par .
1. Vérifie que si on choisit le nombre , le programme A donne et le programme B donne .
2. On note le nombre choisi au départ. Exprime en fonction de le résultat du programme A, puis celui du programme B.
3. Développe l'expression obtenue pour le programme B.
4. Quel nombre faut-il choisir pour que les deux programmes donnent le même résultat ? Vérifie ta réponse.
Exercice 15 ★★★★ — La spirale
Déplacements et tracés de figuresBoucles : répéter n fois, répéter jusqu'àVariables, compteurs et programmes de calcul
On veut faire tracer au lutin la spirale carrée ci-dessous : le premier segment mesure pas, chaque segment est plus long de pas que le précédent, et le lutin tourne à angle droit entre deux segments.
Voici le script utilisé, dans lequel trois valeurs ont été effacées (remplacées par …).
quand le drapeau vert est cliqué
mettre [longueur] à …
stylo en position d'écriture
répéter (20) fois
avancer de (longueur) pas
tourner à droite de (…) degrés
ajouter … à [longueur]
1. Recopie le script en complétant les trois valeurs manquantes pour qu'il trace la spirale.
2. Quelle est la longueur du dernier segment tracé ?
3. Quelle est la longueur totale de la ligne tracée ?
4. Vrai ou faux : « après les segments, le lutin est orienté comme au départ ». Justifie ta réponse.
Exercice 16 ★★★★ — Défi : le jeu du trésor
Instructions conditionnelles et hasardVariables, compteurs et programmes de calculBoucles : répéter n fois, répéter jusqu'àÉvénements, blocs personnalisés et scripts parallèles
Voici un jeu complet programmé dans Scratch. Un trésor est caché derrière l'une des cases numérotées de à , et le joueur doit le trouver.
Script 1 :
quand le drapeau vert est cliqué
mettre [score] à 0
mettre [trésor] à nombre aléatoire entre (1) et (10)
répéter jusqu'à ce que <score = 3>
demander « Où est le trésor ? (1 à 10) » et attendre
si <réponse = trésor> alors
ajouter 1 à [score]
dire « Trouvé ! » pendant 1 seconde
mettre [trésor] à nombre aléatoire entre (1) et (10)
sinon
dire « Raté… » pendant 1 seconde
envoyer [victoire] à tous
Script 2 :
quand je reçois [victoire]
dire « Champion ! »
1. Combien de trésors le joueur doit-il trouver pour gagner ?
2. À la première demande, quelle est la probabilité de trouver le trésor du premier coup ?
3. Pourquoi l'instruction mettre [trésor] à nombre aléatoire entre (1) et (10) est-elle répétée après chaque succès ?
4. Jules joue une partie. Le trésor est d'abord caché en case , puis en case , puis en case . Jules propose successivement : , , , , . Recopie et complète la trace de la partie.
| Proposition | Trésor trouvé ? | Score après |
|---|---|---|
5. Que se passe-t-il exactement quand le score atteint ?
6. On veut aussi compter le nombre total d'essais du joueur. Quelles instructions faut-il ajouter au script 1, et à quels endroits ?
Bloqué sur « Algorithmique et programmation (Scratch) » ?
On peut le travailler ensemble dès cette semaine. La première heure est offerte — on fait le point honnêtement, et vous repartez au minimum avec une méthode.