Algorithmique et Scratch 6ème : instructions et répétitions

Algorithmique et Scratch 6ème : lisez des scripts, utilisez instructions et répétitions, tracez des figures et corrigez les erreurs.

Le cours d’algorithmique et Scratch en 6ème apprend à décomposer une tâche en instructions simples, à les placer dans le bon ordre et à répéter efficacement une même action. Scratch représente les programmes avec des blocs visuels qui s’emboîtent, ce qui permet de se concentrer sur le raisonnement plutôt que sur la syntaxe.

On lira et exécutera des scripts, on prévoira les déplacements d’un lutin, on utilisera les boucles « répéter » et on corrigera des programmes qui ne produisent pas le résultat attendu.

Qu’est-ce qu’un algorithme ?

Définition

Un algorithme est une suite finie et ordonnée d’instructions qui permet d’accomplir une tâche ou de résoudre un problème.

Une recette, un itinéraire ou un programme de construction peuvent être vus comme des algorithmes. Les instructions doivent être assez précises pour qu’une autre personne ou une machine puisse les exécuter sans deviner.

L’algorithme décrit la méthode ; le programme traduit cette méthode dans un langage exécutable, comme Scratch.

Ordre indispensable : « avancer puis tourner » ne produit pas le même déplacement que « tourner puis avancer ». Un programme exécute les blocs dans l’ordre où ils sont reliés.

Découvrir l’interface de Scratch

ZoneRôle
ScèneAffiche le résultat du programme.
LutinObjet qui exécute les instructions.
Palette de blocsRegroupe les instructions par catégories.
Zone de scriptsPermet d’assembler les blocs du programme.
Drapeau vertDéclenche les scripts associés.
Bouton rougeArrête l’exécution.

Chaque lutin possède ses propres scripts, sa position, sa direction et ses costumes. Sélectionner le mauvais lutin avant d’ajouter un bloc peut donc produire un programme correct au mauvais endroit.

Événement, script et séquence d’instructions

Un événement déclenche l’exécution, par exemple « quand le drapeau vert est cliqué ». Un script est un ensemble de blocs reliés. Une séquence exécute les instructions l’une après l’autre.

Script Scratch pour tracer un carré Un bloc de démarrage au drapeau vert est suivi d’un bloc effacer tout, d’un bloc stylo en position d’écriture et d’une boucle répéter quatre fois contenant avancer de cent pas et tourner de quatre-vingt-dix degrés. quand le drapeau vert est cliqué effacer tout stylo en position d’écriture répéter 4 fois avancer de 100 pas tourner de 90 degrés
La boucle remplace huit blocs répétés par deux blocs placés une seule fois dans « répéter 4 fois ».

Les blocs placés à l’intérieur de la boucle sont exécutés quatre fois. Les blocs « effacer tout » et « stylo en position d’écriture » restent à l’extérieur, car ils ne sont nécessaires qu’une fois au démarrage.

Lire un script avant de l’exécuter

Lire un script consiste à suivre les blocs de haut en bas en conservant l’état du lutin : position, direction, stylo, costume et valeurs éventuelles.

Méthode de trace

  1. Noter la position et la direction initiales.
  2. Lire la première instruction.
  3. Mettre à jour uniquement ce qu’elle modifie.
  4. Entrer dans une boucle et compter chaque répétition.
  5. Continuer jusqu’au dernier bloc.

Un petit tableau peut enregistrer les étapes. Cette « trace d’exécution » aide à prévoir le résultat sans lancer Scratch et à trouver le premier endroit où le comportement devient incorrect.

Les blocs de mouvement

BlocEffetInformation importante
avancer de \(n\) pasDéplace le lutin dans sa direction actuelle.Un nombre négatif le fait reculer.
tourner de \(a\) degrésModifie la direction.Le sens de rotation compte.
aller à \(x,y\)Place le lutin à des coordonnées précises.Le déplacement est immédiat.
s’orienter à \(d\)Fixe une direction.\(90^\circ\) correspond à la droite dans Scratch.

Un déplacement dépend de la direction actuelle. Le bloc « avancer de \(100\) pas » ne signifie pas toujours aller vers la droite. Après une rotation, le même bloc suit la nouvelle orientation.

Repérage sur la scène Scratch

La scène utilise deux coordonnées. L’abscisse \(x\) mesure le déplacement horizontal et l’ordonnée \(y\) le déplacement vertical. Le centre de la scène a pour coordonnées \((0;0)\).

  • Vers la droite, \(x\) augmente.
  • Vers la gauche, \(x\) diminue.
  • Vers le haut, \(y\) augmente.
  • Vers le bas, \(y\) diminue.

Le point \((120;-50)\) se trouve à droite et sous le centre. Un bloc « ajouter \(20\) à \(x\) » déplace horizontalement le lutin sans modifier sa hauteur.

Les notations et déplacements géométriques sont reliés au cours de géométrie en 6ème.

Utiliser le stylo pour tracer

L’extension Stylo permet au lutin de laisser une trace. Le bloc « stylo en position d’écriture » commence le tracé ; « relever le stylo » déplace le lutin sans dessiner ; « effacer tout » nettoie les anciens tracés.

Pour obtenir une figure reproductible, on initialise le script : effacer la scène, placer le lutin à une position connue, fixer sa direction, puis abaisser le stylo. Sans initialisation, un second clic sur le drapeau peut commencer ailleurs et superposer des tracés.

Programme incomplet : si une figure change à chaque exécution, vérifiez les blocs d’initialisation. Le lutin doit repartir de la même position et de la même direction.

Comprendre la boucle « répéter »

Une boucle de répétition exécute plusieurs fois le même groupe d’instructions. Elle évite de recopier des blocs identiques et rend le programme plus court.

Le script « répéter \(5\) fois : avancer de \(20\) pas » produit le même déplacement total que « avancer de \(100\) pas », mais les étapes peuvent être utiles si une autre action est réalisée à chaque répétition.

\[ 5\times20=100\ \text{pas}. \]

Le nombre de répétitions doit être un entier dans les situations usuelles de 6ème. Pour lire une boucle, on ne saute pas directement à la fin : on imagine au moins les premières itérations afin de suivre les changements de direction.

Tracer un carré avec Scratch

Un carré possède quatre côtés de même longueur et quatre angles droits. Pour parcourir son contour, le lutin avance le long d’un côté puis effectue un quart de tour extérieur.

\[ 360^\circ\div4=90^\circ. \]
  1. Effacer les anciens tracés.
  2. Placer et orienter le lutin.
  3. Abaisser le stylo.
  4. Répéter \(4\) fois : avancer de \(100\) pas, tourner de \(90^\circ\).

Après quatre répétitions, le lutin retrouve sa position et sa direction initiales. S’il ne ferme pas la figure, le nombre de répétitions, la longueur ou l’angle de rotation est incorrect.

Tracer un triangle équilatéral

Un triangle équilatéral possède trois côtés égaux. Pour fermer le tracé, le lutin effectue un tour complet réparti sur trois sommets. L’angle de rotation extérieur vaut :

\[ 360^\circ\div3=120^\circ. \]

Le script répète trois fois « avancer de \(100\) pas » puis « tourner de \(120^\circ\) ». On n’utilise pas \(60^\circ\), qui est l’angle intérieur du triangle. Scratch tourne selon le changement de direction extérieur.

Les propriétés des figures et le choix entre angle intérieur et rotation extérieure sont approfondis dans le cours sur les angles en 6ème. Avant de programmer, un croquis fléché permet de visualiser le sens du parcours et de vérifier la rotation attendue à chaque sommet.

Tracer un polygone régulier

Pour un polygone régulier à \(n\) côtés, le lutin répète \(n\) fois le même déplacement et la même rotation. La somme des rotations extérieures vaut un tour complet.

\[ \text{angle de rotation}=\frac{360^\circ}{n}. \]
PolygoneRépétitionsRotation
Triangle équilatéral\(3\)\(120^\circ\)
Carré\(4\)\(90^\circ\)
Pentagone régulier\(5\)\(72^\circ\)
Hexagone régulier\(6\)\(60^\circ\)

Cette règle relie division, angles et programmation. La boucle traduit directement les régularités de la figure.

Boucles imbriquées

Une boucle peut contenir une autre boucle. La boucle intérieure termine toutes ses répétitions à chaque passage de la boucle extérieure.

Pour dessiner une rosace de \(12\) carrés, on place le script du carré dans une boucle extérieure qui se répète \(12\) fois. Après chaque carré, on tourne de \(30^\circ\), car \(360^\circ\div12=30^\circ\).

La boucle intérieure trace \(4\) côtés. La boucle extérieure répète ce carré \(12\) fois. Le bloc « tourner de \(30^\circ\) » doit être à l’extérieur de la boucle du carré mais à l’intérieur de la boucle de la rosace.

Variables et valeurs qui changent

Une variable est une mémoire nommée qui contient une valeur susceptible de changer. Dans Scratch, on peut créer une variable « score », « longueur » ou « étape ».

Le bloc « mettre longueur à \(20\) » initialise la variable. Le bloc « ajouter \(5\) à longueur » la met à jour. Si cette mise à jour est placée dans une boucle, les déplacements successifs peuvent devenir \(20\), \(25\), \(30\), puis \(35\) pas.

La différence entre « mettre à » et « ajouter à » est importante : le premier bloc remplace l’ancienne valeur, le second la modifie. Le langage des entrées, traitements et sorties rejoint celui des programmes de calcul en 6ème.

Instructions conditionnelles simples

Une condition permet d’exécuter une action seulement si une proposition est vraie. Le bloc « si … alors » teste la condition une fois lorsqu’il est atteint.

Dans un labyrinthe, on peut écrire : « si le lutin touche la couleur noire, alors revenir au départ ». La détection n’a lieu que lorsque le bloc est exécuté ; pour la vérifier continuellement, il doit être placé dans une boucle adaptée.

En 6ème, l’objectif principal reste de comprendre le lien entre la condition et l’action. On peut lire un script simple sans construire encore des programmes complexes.

Tester et corriger un script

Un bug est une erreur qui empêche le programme de produire le résultat attendu. Déboguer consiste à localiser la première instruction incorrecte, la corriger et tester à nouveau.

Méthode de débogage

  1. Décrire précisément le résultat attendu.
  2. Repartir d’une position et d’une direction connues.
  3. Exécuter le script bloc par bloc ou ralentir l’animation.
  4. Observer la première différence avec la prévision.
  5. Modifier une seule chose, puis recommencer le test.

Si un carré ressemble à une spirale, la longueur change probablement dans la boucle. S’il ne se ferme pas, la rotation ou le nombre de répétitions est à contrôler. Si rien ne se passe, il manque peut-être le bloc événement.

Rendre un script fiable et lisible

Un bon programme commence par une initialisation complète, regroupe les blocs répétés dans une boucle et utilise des noms de variables explicites. Un script court n’est pas forcément meilleur s’il devient difficile à comprendre.

On peut aussi ajouter de courts commentaires dans le projet pour expliquer l’objectif d’une partie délicate. Ils n’influencent pas l’exécution, mais aident un camarade à relire la méthode et à distinguer l’initialisation, le traitement principal et l’affichage du résultat.

ProblèmeAmélioration
La figure change à chaque lancementRéinitialiser position, direction et scène.
Les mêmes blocs sont copiés plusieurs foisUtiliser une boucle « répéter ».
Une variable garde une ancienne valeurL’initialiser avant la boucle.
Le résultat est difficile à prévoirFaire une trace d’exécution.

Test reproductible : relancez plusieurs fois le programme après une correction. Une seule exécution réussie ne suffit pas si l’état initial n’est pas rétabli.

À retenir sur l’algorithmique et Scratch en 6ème

  • Un algorithme est une suite finie et ordonnée d’instructions.
  • Un événement déclenche un script.
  • La direction du lutin détermine l’effet du bloc « avancer ».
  • Une boucle répète un groupe de blocs et évite les copies inutiles.
  • Pour un polygone régulier à \(n\) côtés, la rotation extérieure vaut \(360^\circ\div n\).
  • Une variable mémorise une valeur qui peut changer.
  • Déboguer consiste à trouver la première différence entre le résultat prévu et le résultat obtenu.
  • Une initialisation complète rend le programme reproductible.

Ces compétences correspondent au domaine « pensée informatique » du programme officiel de mathématiques du cycle 3, avec la lecture, l’écriture, l’exécution et la correction de programmes simples.