Cinquième, programme français à Montréal • Exercices corrigés

Fiche de révision : algorithmique et Scratch (Cinquième)

Cette fiche de révision couvre l'algorithmique et les scripts Scratch en classe de cinquième du programme français : coordonnées et déplacements, orientation, boucles, variables, instructions conditionnelles et polygones réguliers, tels qu'ils sont évalués au Lycée Marie de France, au Collège Stanislas à Montréal et dans tout le réseau AEFE.

Elle ne redit pas le cours, que vous avez déjà : elle dit ce qui fait perdre des points sur ce chapitre, et le geste précis qui évite chaque perte. Le fil est toujours le même : dérouler le script dans un tableau au lieu de le lire dans sa tête.

Le fil du chapitre

Un script ne se devine pas, il se DÉROULE, une ligne à la fois. Et tout le chapitre repose sur une seule distinction : ce qui est une POSITION, qui efface la précédente, et ce qui est un DÉPLACEMENT, qui s'ajoute à l'ancienne.

Ce chapitre fait partie de Mathématiques en Cinquième

Avant ce chapitre

Cette fiche suppose ces notions acquises. Si une méthode ci-dessous reste opaque, c'est presque toujours l'une d'elles qui manque, pas la fiche.

L'essentiel

Position ou déplacement : deux blocs qui se ressemblent

  • « aller à x: aa y: bb » PLACE le lutin au point (a;b)(a\,;b) : c'est une position, elle efface complètement la précédente.
  • « ajouter 6060 à x » est un DÉPLACEMENT : la nouvelle abscisse est l'ancienne augmentée de 6060. Avec un nombre négatif, le lutin recule.
  • « avancer de dd » déplace de dd pas DANS LA DIRECTION ACTUELLE ; « tourner de aa degrés » fait pivoter sur place, sans déplacer.
  • « s'orienter à 9090 » regarde vers la droite, « s'orienter à 00 » vers le haut.
-120-80-4004080120départaller à x: 60ajouter 60 à x
Le lutin part de 100-100 : « aller à x: 60 » le pose en 6060, quelle que soit sa position d'avant, alors que « ajouter 60 à x » ne l'amène qu'en 40-40.

Avant de répondre à la moindre question de position, il faut avoir suivi les blocs d'ORIENTATION depuis le début du script : sans eux, « avancer » ne veut rien dire.

La boucle et la variable

  • « répéter nn fois » exécute nn fois le bloc placé À L'INTÉRIEUR ; ce qui est écrit en dessous ne s'exécute qu'une seule fois, à la fin.
  • Une variable est une case mémoire. « mettre vv à ... » efface l'ancien contenu et le remplace par le résultat du calcul écrit à droite.
  • « mettre vv à v+3v+3 » se lit de DROITE à GAUCHE : on calcule v+3v+3 avec l'ANCIENNE valeur, puis on range le résultat dans vv.
  • Pour fermer un polygone régulier à nn côtés, le lutin tourne de 360n\frac{360}{n} degrés à chaque sommet.

Sur une copie, dérouler le script dans un tableau vaut souvent un point de méthode à lui seul, même quand le résultat final se trompe.

Le test, et ce qui compte comme preuve

  • « si ... alors ... sinon ... » n'exécute QU'UNE des deux branches, jamais les deux.
  • Un script s'exécute de haut en bas, sans jamais rien anticiper : échanger deux lignes change le résultat.
  • Pour prouver qu'un programme de calcul donne toujours le même résultat, on remplace le nombre choisi par une LETTRE.
  • Trois essais numériques ne prouvent rien ; un seul contre-exemple suffit à réfuter.

Une question qui commence par « montrer que, quel que soit le nombre choisi » attend du calcul littéral, pas un tableau d'essais. Les deux méthodes ne rapportent pas les mêmes points.

Les pièges qui coûtent des points

Les erreurs ci-dessous sont celles que je corrige le plus souvent en séance. Chacune coûte des points sur une copie, même quand le raisonnement est juste.

1. Traiter « aller à x » comme un déplacement

toute la question de position, et la figure dessinée ensuite

Ce qu'il ne faut pas écrire

« Le lutin est en 100-100, le bloc « aller à x: 60 » l'amène en 40-40. »

Ce qu'il faut écrire

« « aller à x: 60 » le pose EN 6060. C'est « ajouter 60 à x » qui l'aurait amené en 40-40. »

Pourquoi : Les deux blocs contiennent le même nombre et parlent tous les deux de l'abscisse. Seul le verbe les distingue : « aller à » efface, « ajouter » cumule.

2. Lire une affectation comme une égalité mathématique

toute la question de variable, souvent $3$ points

Ce qu'il ne faut pas écrire

« « mettre vv à v+3v+3 » est impossible : un nombre ne peut pas être égal à lui-même plus trois. »

Ce qu'il faut écrire

« En programmation, on calcule v+3v+3 avec l'ANCIENNE valeur, puis on écrase vv. Si vv valait 55, il vaut maintenant 88. »

Pourquoi : Le signe d'affectation n'est pas le signe égal : il ordonne, il ne constate pas. L'ancienne valeur est ensuite définitivement perdue.

3. Faire tourner le lutin de l'angle intérieur du polygone

toute la question, et la figure obtenue ne se referme pas

Ce qu'il ne faut pas écrire

« Pour un pentagone régulier, chaque angle vaut 108108 degrés, donc le lutin tourne de 108108 degrés. »

Ce qu'il faut écrire

« Le lutin tourne de l'angle EXTÉRIEUR : 3605=72\frac{360}{5}=72 degrés à chaque sommet. »

72°108°à chaque sommettourner de 360/5c'est 72°et non 108°
L'angle du sommet du pentagone vaut bien 108108 degrés, mais le lutin, lui, pivote de 7272 degrés par rapport à la direction qu'il suivait, matérialisée par le trait en pointillés.

Pourquoi : Le lutin ne mesure pas l'angle du sommet, il change de direction. Après nn sommets il doit avoir fait un tour complet, donc nn rotations de 360n\frac{360}{n} degrés.

4. Croire qu'« avancer » agit toujours sur l'abscisse

toute la trajectoire, dès le deuxième déplacement

Ce qu'il ne faut pas écrire

« « avancer de 50 » ajoute 5050 à l'abscisse. »

Ce qu'il faut écrire

« Cela dépend de l'ORIENTATION : orienté à 9090, le lutin ajoute 5050 à son abscisse ; orienté à 00, il ajoute 5050 à son ORDONNÉE. »

Pourquoi : « avancer » est le seul bloc dont l'effet dépend d'une information écrite AILLEURS dans le script. C'est pour cela qu'il faut suivre l'orientation depuis la première ligne.

5. Compter un tour de boucle de trop, ou de moins

2 points, et la réponse est plausible, donc jamais relue

Ce qu'il ne faut pas écrire

« vv part de 55, la boucle répète 44 fois « ajouter 3 à v », donc v=5+3×3=14v=5+3\times 3=14. »

Ce qu'il faut écrire

« Le bloc s'exécute 44 fois, donc v=5+3×4=17v=5+3\times 4=17. La ligne de DÉPART du tableau n'est pas un tour. »

tourcalculv0départ515 + 3828 + 311311 + 314414 + 317une ligne par tour
La première ligne, le tour 00, n'est pas un tour de boucle : c'est la valeur de départ. Les quatre tours suivants amènent bien vv de 55 à 1717.

Pourquoi : Le tableau contient une ligne de plus que le nombre de tours : celle de la valeur initiale. Confondre les deux décale tout le comptage.

6. Répéter ce qui est écrit SOUS la boucle

1,5 point, et toute la description de ce que fait le programme

Ce qu'il ne faut pas écrire

« Le lutin dit le résultat à chaque tour, donc il l'affiche cinq fois. »

Ce qu'il faut écrire

« Seul ce qui est encadré par le bloc « répéter » est répété. Le bloc « dire » est en dessous, il s'exécute une seule fois, à la fin. »

Pourquoi : En Scratch, l'appartenance à la boucle se lit sur l'ENCADREMENT du bloc, pas sur son indentation ni sur sa place dans la liste. C'est le repère visuel à chercher en premier.

7. Exécuter les deux branches d'un si sinon

toute la question, et le résultat est systématiquement trop grand

Ce qu'il ne faut pas écrire

« Si le score dépasse 1010 alors ajouter 55, sinon ajouter 22 : avec un score de 1212, on ajoute 77. »

Ce qu'il faut écrire

« Une SEULE branche s'exécute. Avec 1212, la condition est vraie, donc on ajoute 55 et rien d'autre : le score devient 1717. »

Pourquoi : Le mot « sinon » signifie « dans le cas contraire », donc les deux cas s'excluent. Un test qui ajouterait les deux n'aurait aucune raison d'exister.

8. Croire que l'ordre des instructions est indifférent

toute la question, et la preuve littérale qui suit

Ce qu'il ne faut pas écrire

« Ajouter 33 puis multiplier par 22, ou multiplier par 22 puis ajouter 33 : on fait les deux, donc c'est pareil. »

Ce qu'il faut écrire

« Avec 44 : (4+3)×2=14(4+3)\times 2=14 dans un cas, 4×2+3=114\times 2+3=11 dans l'autre. Un script s'exécute de haut en bas. »

Pourquoi : Chaque instruction travaille sur ce que la précédente a laissé. Échanger deux lignes, c'est changer l'entrée de la seconde, donc changer le programme.

Quelle méthode choisir

Ce bloc place-t-il, ou déplace-t-il ?

On regarde le VERBE du bloc, et lui seul. Le nombre qu'il contient ne dit rien du type de mouvement.

  • Si « aller à x: aa y: bb » POSITION absolue : le lutin est en (a;b)(a\,;b), quelle que soit sa position précédente

    Exemple : de (100;0)(-100\,;0), « aller à x: 60 y: 0 » donne (60;0)(60\,;0)

  • Si « ajouter dd à x » ou « ajouter dd à y » DÉPLACEMENT relatif, sur un seul axe

    Exemple : de (100;0)(-100\,;0), « ajouter 60 à x » donne (40;0)(-40\,;0)

    avec un nombre négatif, le lutin recule

  • Si « avancer de dd » déplacement relatif dans la DIRECTION actuelle : il faut d'abord connaître l'orientation

    Exemple : orienté à 9090, avancer de 5050 ajoute 5050 à l'abscisse ; orienté à 00, à l'ordonnée

  • Si « tourner de aa degrés » ou « s'orienter à aa » aucun déplacement : seule la direction change

    Exemple : le lutin reste au même point, prêt pour le prochain « avancer »

Pour savoir où le lutin arrive après un « avancer », il faut TOUJOURS avoir suivi les blocs d'orientation depuis la première ligne du script. C'est la seule information qui se transporte d'un bloc à l'autre sans être écrite.

Comment répondre à une question sur un script ?

Le verbe de la question décide de la méthode, et deux méthodes seulement existent : dérouler, ou calculer avec une lettre.

  • Si « que vaut la variable à la fin » tableau d'exécution : une colonne par variable, une ligne par tour, plus la ligne de départ

    Exemple : vv part de 55, quatre tours de « ajouter 3 » : 55, 88, 1111, 1414, 1717

  • Si « que dessine le lutin », « quelle figure obtient-on » suivre POSITION et ORIENTATION, sommet par sommet

    Exemple : cinq côtés et cinq rotations de 7272 degrés donnent un pentagone régulier

  • Si « combien de fois », « combien de côtés » compter les tours de la BOUCLE, jamais les lignes du script

    Exemple : « répéter 5 fois » avec trois blocs à l'intérieur fait 55 tours, pas 1515

  • Si « montrer que le résultat est toujours... » remplacer le nombre choisi par une lettre, développer, réduire, conclure par « quel que soit »

    Exemple : 2(x+3)6=2x2(x+3)-6=2x, donc le résultat est toujours le double

    dérouler ne suffit pas ici : trois essais ne prouvent rien

Si la question donne une valeur de départ précise, elle attend un déroulement. Si elle dit « un nombre quelconque » ou « quel que soit », elle attend du calcul littéral.

La rédaction attendue

Le correcteur coche des étapes. Les voici dans l'ordre, avec la phrase de conclusion qu'il attend mot pour mot.

Dérouler un script dans un tableau d'exécution

Quand l'utiliser : L'énoncé demande la valeur d'une variable à la fin, ou l'état du lutin après un certain nombre de tours.

  1. 1 Dessiner le tableau AVANT de calculer : une colonne « tour », puis une colonne par variable.
  2. 2 Écrire la ligne de DÉPART, numérotée 00, avec les valeurs initiales : c'est elle qu'on oublie.
  3. 3 Une ligne par tour, en écrivant le calcul avec l'ANCIENNE valeur : 5+35+3, puis 8+38+3, et ainsi de suite.
  4. 4 Entourer la dernière ligne et rédiger la réponse en une phrase.

Phrase de conclusion

« Après 44 tours de boucle, la variable vv vaut 1717. »

Le piège : Commencer le tableau au premier tour au lieu de la valeur de départ. Le décalage d'une ligne donne 1414 au lieu de 1717, une réponse assez plausible pour n'être jamais relue.

Barème : 1 point pour le tableau, 1 point pour la valeur finale : un tableau juste avec une erreur d'arithmétique garde le point de méthode.

Prouver un programme de calcul avec une lettre

Quand l'utiliser : L'énoncé dit « montrer que le résultat est toujours... » ou « quel que soit le nombre choisi ».

  1. 1 Nommer le nombre choisi et le DIRE : « Soit xx le nombre choisi. »
  2. 2 Traduire chaque instruction en une ligne, dans l'ordre du script : xx, puis x+3x+3, puis 2(x+3)2(x+3), puis 2(x+3)62(x+3)-6.
  3. 3 Développer et réduire l'expression finale : 2(x+3)6=2x+66=2x2(x+3)-6=2x+6-6=2x.
  4. 4 Conclure avec la formule qui vaut le point : « quel que soit le nombre choisi ».

Phrase de conclusion

« Soit xx le nombre choisi. Le programme donne 2(x+3)6=2x+66=2x2(x+3)-6=2x+6-6=2x. Le résultat est donc le double du nombre choisi, quel que soit xx. »

Le piège : Tester trois nombres et écrire « donc c'est toujours vrai ». Le tableau d'essais est une vérification, jamais une démonstration.

Barème : 0,5 point pour « soit xx le nombre choisi », 1 point pour le calcul littéral mené jusqu'au bout, 0,5 point pour la conclusion.

Vérifier avant de rendre

Cinq minutes de vérification récupèrent plus de points qu'un exercice de plus commencé à la hâte.

L'exercice type décortiqué

Le script du pentagone, déroulé de bout en bout

Un script commence par mettre la variable vv à 00, puis oriente le lutin à 9090. Il répète ensuite 55 fois le bloc suivant : avancer de 6060, tourner de aa degrés, ajouter 11 à vv. Après la boucle, il dit vv.

Déterminer l'angle aa pour obtenir un pentagone régulier, la valeur finale de vv, la position du lutin après le premier « avancer » s'il part de (100;0)(-100\,;0), et dire si la figure se referme avec 66 tours au même angle.

Étape 1

Angle : le lutin doit faire un tour complet en 55 sommets, donc a=3605=72a=\frac{360}{5}=72 degrés.

Pourquoi

On raisonne sur la rotation du lutin, pas sur l'angle du sommet. L'angle intérieur du pentagone vaut 108108 degrés, et c'est précisément la valeur qu'il ne faut pas écrire.

Étape 2

Valeur de vv : la boucle s'exécute 55 fois et chaque tour ajoute 11, donc v=0+5=5v=0+5=5.

Pourquoi

Le bloc « ajouter 1 à v » est À L'INTÉRIEUR de la boucle : il compte les tours. Le bloc « dire v », lui, est en dessous et ne s'exécute qu'une fois.

Étape 3

Position après le premier « avancer de 60 » : le lutin est orienté à 9090, donc il ajoute 6060 à son abscisse : il passe de (100;0)(-100\,;0) à (40;0)(-40\,;0).

Pourquoi

C'est l'orientation, écrite trois lignes plus haut, qui décide de l'axe touché. Sans elle, « avancer de 60 » n'a aucun effet calculable.

Étape 4

Avec 66 tours au même angle : 6×72=4326\times 72=432 degrés, soit plus d'un tour complet. La figure ne se referme pas en hexagone ; il faudrait 3606=60\frac{360}{6}=60 degrés.

Pourquoi

Le nombre de côtés et l'angle sont liés : changer l'un sans l'autre casse la figure. Le contrôle « la somme des rotations vaut-elle 360360 » répond en une multiplication.

Étape 5

Vérification : 5×72=3605\times 72=360 degrés, le lutin a fait exactement un tour et retrouve son orientation initiale de 9090.

Pourquoi

Retomber sur l'orientation de départ prouve que la figure est fermée. C'est la seule vérification qui valide l'angle sans avoir à tracer quoi que ce soit.

Conclusion rédigée

« L'angle vaut a=72a=72 degrés, la variable vv vaut 55 à la fin, le lutin est en (40;0)(-40\,;0) après le premier déplacement, et avec 66 tours au même angle la figure ne se referme pas. »

L'erreur classique sur cet exercice : Prendre a=108a=108 degrés, l'angle intérieur du pentagone. Le lutin tournerait de 5×108=5405\times 108=540 degrés en tout, ce qui n'est pas un tour complet : la figure resterait ouverte, et le contrôle par la somme des rotations le montre immédiatement.

À savoir par cœur

  • « aller à x: aa y: bb » est une POSITION qui efface ; « ajouter dd à x » est un DÉPLACEMENT qui s'ajoute.
  • « avancer de dd » dépend de l'ORIENTATION ; « tourner » ne déplace jamais.
  • « s'orienter à 9090 » regarde vers la droite, « s'orienter à 00 » vers le haut.
  • « répéter nn fois » répète le bloc INTÉRIEUR ; ce qui est en dessous s'exécute une seule fois.
  • « mettre vv à v+3v+3 » se lit de droite à gauche : ancienne valeur à droite, écrasement à gauche.
  • « si ... sinon ... » n'exécute QU'UNE branche.
  • Polygone régulier à nn côtés : le lutin tourne de 360n\frac{360}{n} degrés à chaque sommet, et le total fait 360360.
  • Pour répondre : un tableau, une ligne par tour, plus la ligne de départ.

Questions fréquentes

Quelle est la différence entre aller à x et ajouter à x dans Scratch ?

Le bloc aller à pose le lutin à la coordonnée indiquée, en effaçant sa position précédente. Le bloc ajouter à la déplace à partir de là où il se trouve. Depuis moins cent, aller à soixante donne soixante, tandis qu'ajouter soixante donne moins quarante.

De combien de degrés faire tourner le lutin pour un polygone régulier ?

De trois cent soixante divisé par le nombre de côtés. Pour un pentagone, cela fait soixante-douze degrés, et non cent huit qui est l'angle du sommet. Le lutin ne mesure pas l'angle de la figure, il change de direction, et il doit avoir fait un tour complet à la fin.

Comment lire l'instruction mettre v à v plus trois ?

De droite à gauche. On calcule d'abord v plus trois avec la valeur actuelle de la variable, puis on range ce résultat dans v, ce qui efface l'ancienne valeur. Ce n'est pas une égalité mathématique mais un ordre donné à la machine, et il a donc parfaitement un sens.

Comment savoir ce que vaut une variable à la fin d'une boucle ?

En dressant un tableau d'exécution : une colonne par variable, une ligne par tour, plus une ligne de départ pour la valeur initiale. Ce tableau contient toujours une ligne de plus que le nombre de tours, et c'est cette ligne supplémentaire que l'on oublie le plus souvent.

Est-ce que les deux branches d'un si sinon s'exécutent ?

Non, jamais. Le mot sinon veut dire dans le cas contraire, donc les deux situations s'excluent. Si la condition est vraie, seule la première branche s'exécute et la seconde est ignorée entièrement. Barrer la branche non retenue avant de calculer évite l'erreur.

Passer à la pratique

Exercices corrigés : Algorithmique et Scratch

Une méthode se prouve sur une copie, pas sur une fiche. La série du même chapitre reprend chacun de ces pièges dans un exercice, avec le corrigé rédigé étape par étape.

  • 15 exercices corrigés
  • 150 points
  • 195 minutes
Faire les exercices
Fiche précédente Aires, volumes et conversions

Ce chapitre resservira dans

Les chapitres qui le réclament en amont, plus tard dans l'année ou dans les années suivantes.

Voir aussi

Votre enfant lit le script au lieu de le dérouler ?

Contactez-moi pour une première séance. L'exercice d'algorithmique est le plus rentable du contrôle : il ne demande aucune connaissance nouvelle, seulement une méthode de lecture, et cette méthode s'acquiert en une séance.

Site par Studio Squalli