Algorithmique et Scratch 5ème : séquences et boucles

L'algorithmique et Scratch en 5ème apprennent à décrire une méthode sous forme d'instructions précises. Le logiciel Scratch exécute les blocs dans l'ordre, sans deviner l'intention de l'auteur : une consigne ambiguë pour un humain devient une erreur visible pour la machine.

Nous partirons d'une séquence simple, puis nous repérerons les répétitions pour les remplacer par des boucles. Les figures géométriques serviront à relier nombre de côtés, longueur et angle de rotation.

Un algorithme doit pouvoir être exécuté

Algorithme

Un algorithme est une suite finie et ordonnée d'instructions non ambiguës qui permet d'obtenir un résultat ou de résoudre une famille de problèmes.

Une recette de construction géométrique est déjà un algorithme : tracer un segment, régler le compas, tracer deux arcs, relier leurs intersections. L'ordre est essentiel, car on ne peut pas utiliser un point qui n'a pas encore été construit.

Un programme est la traduction d'un algorithme dans un langage exécutable. Scratch utilise des blocs qui limitent les erreurs de syntaxe, mais pas les erreurs de raisonnement.

Séquence, événement et état initial

ÉlémentRôle dans ScratchExemple
ÉvénementDéclenche le scriptQuand le drapeau vert est cliqué
SéquenceOrdonne les actionsAvancer puis tourner
État initialFixe le départAller à x=0,y=0x=0,y=0
SortieProduit le résultatDessin ou message

Un script reproductible commence par initialiser la position, la direction, le stylo et les variables utiles. Sans initialisation, le résultat peut dépendre de l'exécution précédente et sembler aléatoire.

Erreur fréquente : cliquer deux fois sur le drapeau ne doit pas déplacer progressivement la figure. Si cela arrive, la position ou la direction initiale n'a probablement pas été fixée.

Repérer une répétition et créer une boucle

Algorithme Scratch utilisant une boucle
Une boucle « répéter 4 fois » remplace quatre couples identiques avancer-tourner.

Boucle bornée

Une boucle bornée répète un bloc d'instructions un nombre connu de fois. Dans Scratch, elle s'écrit avec le bloc « répéter ... fois ».

Pour tracer un carré, le motif « avancer de 8080 pas, tourner de 9090^\circ » apparaît quatre fois. La boucle rend le programme plus court et montre la structure géométrique.

Relier le nombre de côtés à l’angle de rotation

Après un tour complet autour d'un polygone régulier, le lutin a tourné au total de 360360^\circ. Pour nn côtés, l'angle de rotation extérieur est donc 360n\frac{360^\circ}{n}.

angle de rotation=360n.\text{angle de rotation}=\frac{360^\circ}{n}.
PolygoneRépétitionsRotation
Triangle équilatéral33120120^\circ
Carré449090^\circ
Hexagone régulier666060^\circ
Décagone régulier10103636^\circ

La rotation n'est pas l'angle intérieur du polygone. Pour le triangle équilatéral, l'angle intérieur vaut 6060^\circ, mais le lutin doit tourner de 120120^\circ pour changer de direction extérieure.

Utiliser une variable plutôt qu’un nombre figé

Variable

Une variable est une case nommée qui mémorise une valeur susceptible de changer pendant l'exécution du programme.

On peut créer une variable « côté », demander une longueur à l'utilisateur, puis utiliser cette valeur dans le bloc « avancer de côté pas ». Le même programme trace alors des carrés de tailles différentes.

Une autre variable « n » peut contrôler le nombre de côtés. Le script répète nn fois et tourne de 360/n360/n degrés. Il décrit ainsi une famille de polygones plutôt qu'une seule figure.

Entrées, calculs et sorties

Un algorithme complet peut demander une valeur, effectuer un calcul, puis afficher le résultat. Pour calculer le périmètre d'un carré :

  1. Demander la longueur du côté.
  2. Mettre la réponse dans la variable « côté ».
  3. Mettre 4×coˆteˊ4\times\text{côté} dans la variable « périmètre ».
  4. Dire la valeur du périmètre avec son unité.

La formule vient des périmètres et aires en 6ème. Scratch ne choisit pas la formule ; il exécute celle que le programmeur a traduite.

Boucles imbriquées pour créer un motif

Une boucle peut contenir une autre boucle. La boucle intérieure trace un carré ; la boucle extérieure répète ce carré après une rotation de 3030^\circ. Répéter 1212 fois produit une rosace complète, car 12×30=36012\times30^\circ=360^\circ.

12×30=360.12\times30^\circ=360^\circ.

Pour lire ce programme, on commence par la boucle la plus intérieure : elle termine un carré avant que la boucle extérieure ne tourne pour commencer le suivant. L'ordre inverse ne produit pas le même dessin.

Tester par cas simples et diagnostiquer

TestCe qu'il vérifie
n=4n=4Le cas connu du carré
n=3n=3La formule de rotation donne 120120^\circ
n=1n=1Le programme doit refuser un pseudo-polygone
côté =0=0Aucun déplacement visible, entrée à encadrer

Un test doit avoir un résultat attendu avant l'exécution. Sinon, voir un dessin ne permet pas de savoir s'il est correct. Lorsqu'une erreur apparaît, on réduit le programme, observe les variables et vérifie une boucle à la fois.

Astuce : faire exécuter mentalement les trois premières instructions et noter position, direction et valeur des variables après chacune.

Écrire un pseudo-code avant les blocs

Le pseudo-code décrit l'idée indépendamment du logiciel :

  1. Demander nn, le nombre de côtés.
  2. Demander cc, la longueur d'un côté.
  3. Si n<3n\lt 3, afficher un message d'erreur.
  4. Sinon, répéter nn fois : avancer de cc, tourner de 360/n360/n.

Cette rédaction rend les conditions et les calculs visibles avant le choix des blocs. Elle évite de construire un script par essais successifs sans plan.

Les bases de séquences et répétitions sont reprises du cours d'algorithmique et Scratch en 6ème, puis enrichies ici par variables et boucles imbriquées.

Lisibilité et efficacité d’un programme

Deux scripts peuvent produire le même dessin, mais celui qui nomme les variables, initialise l'état et factorise les répétitions sera plus facile à relire et à corriger. La qualité d'un algorithme se mesure aussi à sa clarté.

Il faut toutefois éviter de compacter au point de masquer le sens. Une boucle doit correspondre à un motif réel, et une variable à une grandeur identifiable. Les commentaires courts peuvent préciser une étape non évidente.

Projet guidé : escalier de carrés de taille variable

Le projet doit tracer cinq carrés de côtés 20,30,40,50,6020,30,40,50,60 pas, alignés. On initialise la variable « côté » à 2020, puis une boucle extérieure se répète cinq fois.

À chaque tour, une boucle intérieure répète quatre fois « avancer de côté pas, tourner de 9090^\circ ». Une fois le carré fermé, le lutin relève le stylo, avance de « côté + 10 », repose le stylo, puis ajoute 1010 à la variable côté.

L'ordre des deux dernières actions est important. Si la variable augmente avant le déplacement, l'espace entre les carrés utilise la nouvelle taille ; si elle augmente après, il utilise l'ancienne. Le cahier des charges doit préciser le comportement voulu.

Table de trace pour comprendre une boucle

Tourcôté avant le carrérotation totalecôté après ajout
112020360360^\circ3030
223030360360^\circ4040
334040360360^\circ5050
445050360360^\circ6060
556060360360^\circ7070

Une table de trace note l'état des variables à des moments choisis. Elle révèle une augmentation oubliée ou exécutée deux fois, sans avoir à interpréter tout le dessin final.

La valeur 7070 après le cinquième tour n'est pas utilisée pour tracer un sixième carré ; elle est néanmoins l'état final de la variable. Distinguer valeur utilisée et valeur finale aide à lire les boucles.

Algorithmique et Scratch 5ème : l’essentiel à retenir

L'algorithmique et Scratch en 5ème développent une méthode : définir l'entrée, ordonner les instructions, remplacer les répétitions par des boucles, mémoriser les valeurs utiles et tester avec un résultat attendu. La géométrie donne un terrain concret pour vérifier chaque bloc.

Le programme officiel de mathématiques du cycle 4 place cette pensée algorithmique au même niveau que le calcul et le raisonnement : le programme doit être correct, mais aussi compréhensible.