Algorithmes et blocs Scratch · Cours, exercices, QCM & évaluation
Avant d'ouvrir Scratch, il faut comprendre deux mots du programme de 3e.
Une recette de cuisine, un itinéraire « tourne à droite puis tout droit sur 200 m » : ce sont déjà des algorithmes du quotidien. En mathématiques, on les écrit de façon rigoureuse et sans ambiguïté.
Dans Scratch, un programme s'appelle un script. C'est un empilement de blocs qui s'emboîtent comme des pièces de puzzle. Un script démarre presque toujours par un bloc « chapeau » :
quand 🏳 est cliqué lance le script dès qu'on appuie sur le drapeau vert. C'est le « top départ » du programme.x, score, n) qui peut contenir une valeur (un nombre, parfois un texte). On peut lire ce qu'elle contient et changer son contenu pendant le programme.Trois blocs servent à manipuler une variable dans Scratch :
| Bloc Scratch | Ce qu'il fait | Exemple |
|---|---|---|
mettre x à 5 | Range la valeur 5 dans la boîte x (on écrase l'ancienne) | x vaut 5 |
ajouter 3 à x | Augmente x de 3 | si x valait 5 → x vaut 8 |
x (l'arrondi rond) | Lit la valeur actuelle de x | utilisé dans un calcul |
On dresse un tableau de suivi : une colonne par variable, une ligne par instruction exécutée. Suivons ce script :
mettre x à 4ajouter 6 à xmettre x à x × 2| Instruction | Valeur de x |
|---|---|
| mettre x à 4 | 4 |
| ajouter 6 à x | 4 + 6 = 10 |
| mettre x à x × 2 | 10 × 2 = 20 |
À la fin, x vaut 20.
mettre x à 5 (on impose la valeur 5) n'est pas la même chose que ajouter 5 à x (on augmente x de 5). Ne confonds pas « ranger » et « ajouter ».si … alors … sinon permet au programme de choisir entre deux suites d'instructions selon ce résultat.La condition utilise souvent les comparaisons >, < ou = :
si (x > 10) alorsdire « grand »sinondire « petit »Si la valeur de x est strictement supérieure à 10, le programme exécute le bloc « alors » ; sinon (donc si x ⩽ 10) il exécute le bloc « sinon ». Un seul des deux chemins est suivi.
Pour x = 7 dans le script ci-dessus : est-ce que 7 > 10 ? Non → la condition est fausse → le programme dit « petit ».
| Symbole Scratch | Signification |
|---|---|
x = 0 | x est égal à 0 |
x > 0 | x est strictement positif |
x < 0 | x est strictement négatif |
sinon est facultatif : un si … alors seul exécute les instructions uniquement quand le test est vrai, et ne fait rien sinon.x > 10 est faux quand x = 10 (10 n'est pas strictement supérieur à 10). Pour inclure 10, il faudrait x ⩾ 10.Une boucle sert à répéter plusieurs fois les mêmes instructions, sans les recopier. Scratch propose deux boucles très utiles en 3e.
répéter 4 fois exécute les instructions qu'il contient exactement 4 fois, puis passe à la suite. On l'utilise quand on connaît à l'avance le nombre de répétitions.répéter 3 foisajouter 2 à xrépéter jusqu'à (condition) répète tant que la condition n'est pas vraie, et s'arrête dès qu'elle devient vraie. On l'utilise quand on ne connaît pas à l'avance le nombre de tours.On compte les tours et on note la variable à chaque tour. Suivons :
mettre x à 1répéter 4 foismettre x à x × 2| Tour | Calcul | x après le tour |
|---|---|---|
| départ | — | 1 |
| 1 | 1 × 2 | 2 |
| 2 | 2 × 2 | 4 |
| 3 | 4 × 2 | 8 |
| 4 | 8 × 2 | 16 |
Après les 4 tours, x vaut 16.
répéter pour toujours ne s'arrête jamais toute seule : on l'évite dans un calcul qui doit se terminer.Imbriquer, c'est placer un bloc à l'intérieur d'un autre : par exemple une condition dans une boucle, ou une boucle dans une boucle. Le bloc intérieur s'exécute à chaque fois que le bloc extérieur passe dessus.
répéter 5 foisajouter 1 à nsi (n = 3) alorsdire « trois ! »À chaque tour, on augmente n de 1, puis on teste si n vaut 3. Le « trois ! » n'apparaît qu'au 3e tour.
Dans Scratch, un bloc décalé vers la droite est à l'intérieur du bloc au-dessus. Ce décalage, appelé indentation, indique jusqu'où va la boucle ou la condition.
répéter 3 fois { avancer ; tourner } : on avance ET tourne 3 fois.répéter 3 fois { avancer } ; tourner : on avance 3 fois, PUIS on tourne une seule fois.Dans Scratch, le personnage qui se déplace s'appelle le lutin. La scène est un repère : chaque point a une abscisse x (horizontale) et une ordonnée y (verticale). Le centre de la scène est le point d'origine de coordonnées (0 ; 0).
| Bloc | Effet |
|---|---|
aller à x: 100 y: 50 | Téléporte le lutin au point (100 ; 50) |
avancer de 80 pas | Avance de 80 dans la direction actuelle |
ajouter 50 à x (position) | Déplace le lutin de 50 vers la droite |
s'orienter à 90 | Pointe vers la droite (90° = est) |
tourner ↻ de 90 degrés | Pivote d'un quart de tour vers la droite |
aller à x: 100 y: 50 place le lutin à une position absolue (un point fixe de la scène). avancer de 100 pas est un déplacement relatif : il dépend de l'endroit et de la direction où se trouve déjà le lutin.Avec le crayon (stylo en position d'écriture), le lutin laisse une trace en se déplaçant. Pour tracer un polygone régulier, on répète : « avancer d'un côté, tourner d'un angle ».
Angle = 3604 = 90°. On répète 4 fois « avancer, tourner de 90° » :
répéter 4 foisavancer de 100 pastourner ↻ de 90 degrés| Figure | n côtés | Angle = 360 ÷ n |
|---|---|---|
| Triangle équilatéral | 3 | 120° |
| Carré | 4 | 90° |
| Pentagone | 5 | 72° |
| Hexagone | 6 | 60° |
Un programme de calcul est une suite d'opérations appliquées à un nombre de départ. En 3e, on apprend à traduire un tel programme en script, et à le relier à une fonction : le nombre de départ est l'entrée, le résultat est la sortie.
demander « ton nombre ? » et attendremettre x à réponsemettre x à x × 3mettre x à x + 5dire xAvec le nombre de départ 4 :
| Étape | Calcul | Valeur de x |
|---|---|---|
| nombre choisi | — | 4 |
| × 3 | 4 × 3 | 12 |
| + 5 | 12 + 5 | 17 |
Le programme renvoie 17. Si on appelle x le nombre de départ, le résultat s'écrit 3x + 5 : c'est l'expression de la fonction associée au programme.
Au brevet, deux types de questions reviennent : « Que renvoie ce programme ? » et « Complète / corrige ce script. ». Voici une méthode fiable.
dire ou la dernière valeur d'une variable est la réponse.mettre s à 0mettre n à 1répéter 4 foisajouter n à sajouter 1 à ndire s| Tour | n (avant) | s = s + n | n (après) |
|---|---|---|---|
| 1 | 1 | 0 + 1 = 1 | 2 |
| 2 | 2 | 1 + 2 = 3 | 3 |
| 3 | 3 | 3 + 3 = 6 | 4 |
| 4 | 4 | 6 + 4 = 10 | 5 |
Le programme calcule 1 + 2 + 3 + 4 et renvoie 10.
mettre à) ou augmente (ajouter à) · si … alors … sinon = choix selon un test vrai/faux · répéter n fois = répétition · indentation = ce qui est dans le bloc · polygone régulier : tourner de 360n · programme de calcul ↔ fonction (×3 puis +5 → 3x + 5) · pour lire un script : tableau de suivi, ligne par ligne.