Algorithmique et programmation Scratch
Algorithmique en 5ème avec Scratch : séquencer des instructions, entrées et sorties d'un programme, boucle « répéter … fois », traduire une formule en expression informatique, prévoir le résultat d'un script, modifier ses paramètres et construire des figures géométriques.
Définitions
Définition 1 — algorithme. Un algorithme est une suite d’instructions précises et ordonnées qui permet d’obtenir un résultat. Aucune instruction ne doit laisser place à l’interprétation : « tourne un peu » n’est pas une instruction, « tourne de » en est une. On peut l’écrire en français — c’est l’algorithmique « débranchée » — avant de le traduire en blocs Scratch. Exemple : « Pour tracer un carré : avance de 100 pas, tourne d’un quart de tour vers la droite, et recommence quatre fois. »
Définition 2 — script. Un script Scratch est un assemblage de blocs que le lutin exécute de haut en bas, bloc après bloc. Exemple : le script « avancer de 100 ; tourner de » fait d’abord avancer le lutin, puis le fait pivoter.
Définition 3 — boucle « répéter … fois ». La boucle « répéter fois » exécute fois tout ce qu’elle contient ; les instructions placées à l’intérieur sont décalées vers la droite. Elle évite de recopier plusieurs fois la même séquence. Exemple : tracer un carré sans boucle demande huit blocs (« avancer ; tourner » écrit quatre fois) ; avec une boucle, deux lignes suffisent :
répéter 4 fois
avancer de 100
tourner de 90 degrés
Définition 4 — entrée et sortie d’un programme. Un programme reçoit des entrées et produit des sorties. L’entrée est la donnée fournie au programme : le bloc « demander … et attendre » range ce que tape l’utilisateur dans réponse. La sortie est ce que le programme produit : un tracé, ou un nombre affiché avec le bloc « dire ». Exemple : l’utilisateur tape la longueur du côté (entrée), le lutin trace le carré (sortie).
Définition 5 — expression informatique. Les blocs opérateurs (+, -, * pour , / pour ) permettent de traduire une formule en expression informatique. Un bloc emboîté dans un autre joue le rôle des parenthèses. Exemple : l’aire du rectangle se traduit par (L) * (l).
Définition 6 — événement. Un script ne démarre pas tout seul : il commence lorsqu’un événement se produit. Le bloc d’événement se place toujours en haut du script : « quand le drapeau vert est cliqué » (au lancement du programme), « quand la touche espace est pressée », « quand ce lutin est cliqué ». Exemple : deux lutins peuvent avoir chacun leur script ; ils s’exécutent en parallèle.
Propriétés
Propriété 1 — ordre d’exécution. Les instructions d’un script s’exécutent de haut en bas, dans l’ordre où elles sont assemblées : inverser deux blocs change le résultat. L’ordre fait partie de l’algorithme. Exemple : « avancer de 100 ; tourner de » et « tourner de ; avancer de 100 » contiennent les mêmes blocs, mais les tracés ne sont pas orientés de la même façon.
Propriété 2 — effet d’une boucle. « Répéter fois » exécute fois les instructions qu’elle contient : chaque passage dans la boucle trace un côté. « Répéter 4 fois (avancer ; tourner) » exécute instructions au total, mais ne trace que segments. Exemple : « répéter 3 fois (avancer de 50) », sans rotation, trace un seul trait de pixels : c’est la combinaison « avancer + tourner » qui dessine une figure.
Propriété 3 — angle de rotation d’un polygone régulier. Pour tracer un polygone régulier à côtés, le lutin tourne à chaque sommet de Pourquoi 360 ? En parcourant tout le contour, le lutin effectue exactement un tour complet ; cette rotation totale de se répartit également entre les sommets. La figure se ferme uniquement si les rotations cumulées font . Exemple : pour l’hexagone, .
Propriété 4 — la variable « réponse ». Le bloc « demander … et attendre » range la valeur tapée par l’utilisateur dans réponse. On lit ensuite cette valeur à la place d’un nombre, par exemple dans « avancer de (réponse) » : c’est le seul usage d’une variable en 5ᵉ. Exemple : si l’utilisateur tape 70, « avancer de (réponse) » avance de 70 pas.
Propriété 5 — emboîtement et parenthèses. L’emboîtement des blocs opérateurs respecte l’ordre des étapes du calcul, exactement comme les parenthèses dans une expression.
| Formule | Expression informatique |
|---|---|
(L) * (l) | |
2 * ((L) + (l)) | |
(((n) + 3) * 9) - 5 |
Exemple : « dire ((réponse × 2) + 3) » et « dire ((réponse + 3) × 2) » ne donnent pas le même résultat : avec l’entrée 5, le premier affiche , le second .
Méthodes
Méthode 1 — tracer un polygone régulier.
- Compter les côtés : passages dans la boucle (Propriété 2).
- Calculer l’angle de rotation : (Propriété 3).
- Écrire : répéter fois (avancer de … ; tourner de degrés).
| Figure | Côtés | Angle | Script |
|---|---|---|---|
| Triangle équilatéral | 3 | répéter 3 fois (avancer ; tourner de ) | |
| Carré | 4 | répéter 4 fois (avancer ; tourner de ) | |
| Pentagone régulier | 5 | répéter 5 fois (avancer ; tourner de ) | |
| Hexagone régulier | 6 | répéter 6 fois (avancer ; tourner de ) |
Piège classique : pour un triangle équilatéral, le lutin tourne de et non de . L’angle du triangle mesure , mais le lutin pivote de l’angle extérieur.
Méthode 2 — tracer un rectangle. Les côtés n’ayant pas tous la même longueur, la boucle ne se répète que 2 fois, avec les deux longueurs à l’intérieur :
répéter 2 fois
avancer de 150
tourner de 90 degrés
avancer de 80
tourner de 90 degrés
Exemple : chaque passage trace une longueur et une largeur ; en deux passages, le rectangle de est fermé.
Méthode 3 — utiliser une donnée saisie.
- Placer le bloc « demander … et attendre » : la valeur tapée est rangée dans réponse (Propriété 4).
- Lire réponse à la place du nombre fixe.
demander "Longueur du côté ?" et attendre
répéter 4 fois
avancer de (réponse)
tourner de 90 degrés
Exemple : la valeur saisie remplace la longueur du côté ; le nombre de répétitions, lui, reste 4 : un carré a toujours 4 côtés.
Méthode 4 — traduire une formule en expression informatique.
- Repérer l’ordre des étapes du calcul.
- Emboîter les blocs opérateurs dans cet ordre : chaque bloc joue le rôle d’une parenthèse (Propriété 5, Définition 5).
Exemple résolu : le programme de calcul « choisir un nombre ; lui ajouter 3 ; multiplier le résultat par 9 ; enlever 5 » devient :
demander "Choisis un nombre" et attendre
dire (((réponse + 3) * 9) - 5)
Méthode 5 — prévoir le résultat d’un calcul. Avant de cliquer sur le drapeau vert, on calcule à la main ce que le script va afficher.
- Remplacer réponse par la valeur saisie.
- Effectuer le calcul en respectant l’emboîtement des blocs (Propriété 5).
- Exécuter, puis comparer : si le résultat affiché n’est pas celui prévu, l’expression n’est pas emboîtée comme on le croyait.
Exemple résolu : pour « dire (((réponse + 3) × 9) − 5) » et l’entrée 7 : . Pour « dire ((réponse × 2) + 3) » et l’entrée 5 : .
Méthode 6 — prévoir le tracé d’un script. Savoir prédire ce que fait un script est aussi important que savoir l’écrire : on suit les blocs dans l’ordre (Propriété 1) et on compte les passages dans la boucle (Propriété 2).
| Script | Ce qu’il trace |
|---|---|
| avancer 50 ; tourner ; avancer 50 | deux segments perpendiculaires |
| répéter 3 fois (avancer 50) | un seul trait de 150 pixels |
| répéter 6 fois (avancer 40 ; tourner ) | un hexagone régulier fermé |
Le deuxième cas est instructif : sans rotation, la boucle ne crée aucune figure.
Méthode 7 — modifier les paramètres d’un programme. Dans « répéter 4 fois (avancer de 100 ; tourner de 90) », chaque nombre est un paramètre : repérer lequel commande quoi avant de le modifier.
| Paramètre | Ce qu’il commande | Pour un carré de 200 pixels |
|---|---|---|
| 100 dans « avancer » | la longueur du côté | remplacer par 200 |
| 4 dans « répéter » | le nombre de côtés | ne change pas |
| 90 dans « tourner » | l’angle à chaque sommet | ne change pas |
Exemple : changer 4 en 6 et 90 en 60 donnerait un hexagone : les paramètres se modifient ensemble et en cohérence (Propriété 3).
Pièges classiques
- Le nombre de répétitions n’est pas le nombre de blocs. « Répéter 4 fois (avancer ; tourner) » exécute 8 instructions au total, mais ne trace que 4 segments : pour compter les côtés d’une figure, on compte les passages dans la boucle (Propriété 2).
- Le lutin tourne de l’angle extérieur. Pour un triangle équilatéral, il pivote de (soit ), pas de : l’angle de rotation n’est pas l’angle de la figure (Propriété 3, Méthode 1).
- L’ordre des blocs compte. Deux scripts contenant les mêmes blocs dans un ordre différent ne produisent pas le même tracé (Propriété 1) ; de même, deux emboîtements différents des mêmes opérateurs ne donnent pas le même nombre (Propriété 5).
Quiz — Algorithmique Scratch
10 questions · correction immédiate · sans inscription