Algorithmique et Scratch 3ème : variables, boucles, conditions et débogage

L'algorithmique et Scratch en 3ème ne se résument pas à empiler des blocs. Un programme correct décrit une procédure, stocke les données utiles, répète seulement ce qui doit l'être et teste les situations qui demandent des comportements différents.

La compétence centrale est le débogage : prévoir ce que le programme devrait produire, observer ce qu'il produit réellement, puis localiser la première étape où les deux chemins divergent.

Algorithme, programme et événement de départ

Algorithme

Un algorithme est une suite finie et ordonnée d'instructions permettant de résoudre un problème. Un programme traduit cet algorithme dans un langage exécutable, comme les blocs de Scratch.

Algorithme avec test et répétition
Un organigramme rend visibles l'initialisation, le test et le retour d'une boucle.

Dans Scratch, un événement comme « quand le drapeau vert est cliqué » déclenche un script. Sans événement ou appel de bloc, une pile d'instructions peut être correcte mais ne jamais s'exécuter.

Choisir et initialiser les variables

Variable

Une variable est une case nommée dont la valeur peut changer pendant l'exécution. Son nom doit indiquer son rôle : score, compteur, longueur ou résultat.

RôleInitialisation possibleMise à jour
compteur de toursmettre compteur à 0ajouter 1
somme accumuléemettre somme à 0ajouter une valeur
produit accumulémettre produit à 1multiplier
valeur saisiedemander puis mettre n à réponseselon le problème

Initialiser à 0 un produit que l'on multiplie ensuite donne toujours 0. La valeur initiale dépend donc de l'opération. Une variable oubliée conserve parfois la valeur d'une exécution précédente et crée un résultat incohérent.

compteurcompteur+1. \text{compteur}\leftarrow\text{compteur}+1.
Erreur fréquente : la variable « réponse » de Scratch contient la dernière saisie. Si plusieurs questions sont posées, copier chaque réponse utile dans une variable avant la suivante.

Traduire un programme de calcul

Un programme demande un nombre xx, calcule son carré, ajoute le triple du nombre puis retire 4. L'expression correspondante est x2+3x4x^2+3x-4. Dans Scratch, il faut tenir compte de l'emboîtement des opérateurs.

(2)2+3(2)4=464=6. (-2)^2+3(-2)-4=4-6-4=-6.

Tester x=2x=-2 est utile parce qu'il vérifie les parenthèses autour d'un nombre négatif. Le calcul littéral permet ensuite de comparer deux scripts et de prouver qu'ils produisent toujours le même résultat.

Utiliser une boucle répétée un nombre connu de fois

Boucle bornée

Le bloc « répéter n fois » convient lorsque le nombre d'itérations est connu au moment d'entrer dans la boucle. Toutes les instructions placées à l'intérieur sont exécutées n fois.

Pour tracer un polygone régulier à nn côtés, on répète : avancer d'une longueur fixée, puis tourner de 360/n360/n degrés. La somme des angles de rotation extérieurs vaut 360°.

36012=30. \frac{360^\circ}{12}=30^\circ.

Placer le bloc « avancer » en dehors de la boucle ne dessinerait qu'un segment. Une boucle trop large pourrait répéter aussi l'initialisation et effacer le progrès à chaque tour.

Choisir entre répéter jusqu’à et répéter indéfiniment

Le bloc « répéter jusqu'à condition » s'arrête dès que la condition devient vraie. Il convient à une recherche de seuil, par exemple ajouter 7 à une variable jusqu'à dépasser 100. La boucle « répéter indéfiniment » sert aux comportements continus, comme suivre le pointeur.

Une boucle conditionnelle doit modifier au moins une donnée liée à son test. Sinon, la condition peut ne jamais devenir vraie et le programme reste bloqué.

Erreur fréquente : si la condition d'arrêt est déjà vraie avant le premier tour, « répéter jusqu'à » n'exécute aucune instruction. Prévoir ce cas dans les tests.

Écrire une condition si alors sinon

Condition

Une condition est une expression logique vraie ou fausse. Le bloc « si alors sinon » sélectionne exactement l'une de deux branches selon son résultat.

Pour afficher le signe d'un nombre xx, on peut tester x>0x\gt 0, puis dans la branche contraire tester x<0x\lt 0. Le dernier cas correspond à x=0x=0. Deux blocs « si » indépendants demandent de vérifier que leurs conditions ne se chevauchent pas.

Valeur testéeBranche attendue
nombre négatifafficher négatif
zéroafficher nul
nombre positifafficher positif
Astuce : tester les frontières comme 0, une valeur juste en dessous et une juste au-dessus révèle les erreurs sur <\lt, >\gt, \leq et \geq.

Créer un bloc personnalisé pour décomposer le programme

Un bloc personnalisé donne un nom à une procédure réutilisable. Un bloc « tracer polygone (n) (côté) » peut recevoir deux paramètres puis exécuter la boucle adaptée. Le script principal devient plus lisible et la procédure peut être testée séparément.

Un paramètre appartient à l'appel du bloc ; une variable globale reste partagée avec les autres scripts. Employer des paramètres limite les effets inattendus lorsqu'une variable est modifiée ailleurs.

Les boucles imbriquées deviennent plus claires avec des blocs : une boucle externe peut répéter un motif, tandis que le bloc interne trace le motif lui-même.

Déboguer avec une trace et des cas de test

Un débogage efficace ne change pas plusieurs blocs au hasard. On choisit une entrée simple, écrit les valeurs attendues après chaque étape, puis fait afficher temporairement les variables. La première différence localise la zone fautive.

  1. Reproduire l'erreur avec une entrée précise.
  2. Réduire le script au chemin concerné.
  3. Afficher ou dire les variables après les blocs importants.
  4. Corriger une cause, puis relancer tous les tests.

Pour un programme de calcul, utiliser 0, 1, une valeur négative et une fraction simple couvre plusieurs pièges. Pour une condition, tester la frontière. Pour une boucle, tester zéro tour, un tour et plusieurs tours.

Le cours Scratch en 4ème rappelle les conditions et variables ; les instructions de Scratch en 6ème fournissent le vocabulaire de base.

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

Un programme fiable commence par des variables bien initialisées et un découpage clair. Les boucles expriment la répétition, les conditions choisissent un chemin et les blocs personnalisés isolent des procédures réutilisables. Le débogage compare une trace attendue à la trace observée sur des cas choisis.

Cette progression correspond aux repères annuels de progression de mathématiques pour le cycle 4 et prépare les questions d'algorithmique du brevet sans réduire Scratch à une collection de blocs.