Sixième, programme français à Montréal • Exercices corrigés
Fiche de révision : algorithmique et programmation en Sixième
En algorithmique, les points ne se perdent pas sur un calcul mais sur une lecture : l'élève croit que alleraˋx:4y:2 déplace le lutin de 4 cases, que tourner le fait avancer, et que mettrescoreaˋscore+4 est une équation impossible.
Cette fiche laisse le cours dans le cahier. Elle rassemble le seul geste qui marche vraiment devant un script : dérouler les instructions une par une dans un petit tableau, en notant à chaque ligne la position, la direction et les variables. C'est long la première fois, et c'est ce qui fait gagner tous les points ensuite.
Marque ici la fiche comme lue ou mets-la en favori : un compte gratuit, sans mot de passe, retient tes fiches lues et tes favoris d'une visite à l'autre, te dit quel chapitre attaquer ensuite et te permet de demander la méthode ou l'exercice qui te manque. Crée ton espace, un courriel suffit.
Le fil du chapitre
La machine exécute CE QUI EST ÉCRIT, pas ce qu'on voulait écrire. Toute question sur un script se répond en avançant ligne par ligne et en tenant à jour trois informations : la position du lutin, sa direction, et la valeur de chaque variable.
•alleraˋx:ay:b place le lutin au point (a;b), quelle que soit sa position d'avant : c'est une POSITION.
•ajouternaˋx et avancerden partent de là où le lutin se trouve : ce sont des DÉPLACEMENTS.
•Un même bloc de position donne toujours le même point d'arrivée ; un bloc de déplacement donne un point différent selon le départ.
•s′orientervers est à la direction ce que alleraˋ est à la position : une valeur absolue.
À gauche, deux lutins partis de points différents arrivent au MÊME point (4;2) ; à droite, le même bloc de déplacement les mène à deux endroits différents.
C'est la distinction la plus rentable du chapitre : la moitié des erreurs de trajet viennent d'un bloc de position lu comme un déplacement, ou l'inverse.
Les trois informations à tenir à jour
•La POSITION du lutin, écrite (x;y), avec l'abscisse en premier.
•Sa DIRECTION, qui décide de ce que fera le prochain avancer.
•La valeur de chaque VARIABLE, à réécrire à chaque ligne qui la modifie.
•On dresse un petit tableau, une ligne par instruction : c'est la seule méthode qui ne se trompe pas.
Lire un script « en gros » ne marche jamais. Le tableau prend trente secondes et il transforme une question de raisonnement en une suite de lectures.
La boucle répéter
•reˊpeˊternfois exécute n fois de suite le bloc placé à l'intérieur.
•Le nombre de répétitions et les nombres écrits DANS la boucle sont des informations différentes.
•Pour fermer un polygone régulier à n côtés, le lutin tourne à chaque sommet de n360∘.
•La figure se referme exactement quand le total des rotations vaut 360∘.
À chaque sommet, le lutin tourne de l'angle marqué, mesuré depuis le prolongement du côté : 4×90∘ et 6×60∘ font chacun un tour complet.
Répéter n fois la même addition, c'est multiplier par n : reˊpeˊter6fois:ajouter5aˋscore mène à 6×5=30 sans dérouler les six tours.
Les variables
•Une variable est une case mémoire qui contient UNE valeur à la fois.
•mettrevaˋ… EFFACE l'ancienne valeur.
•ajouter…aˋv la conserve et la modifie.
•mettrevaˋv+4 se lit de DROITE À GAUCHE : on calcule v+4 avec l'ancienne valeur, puis on range le résultat dans v.
Le signe d'affectation n'est pas le signe égal des mathématiques. « v=v+4 » n'a aucune solution comme équation, alors que le bloc, lui, s'exécute très bien.
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.Lire un bloc de position comme un déplacement
toute la question, car toutes les positions suivantes sont décalées
Ce qu'il ne faut pas écrire
« alleraˋx:4y:2 déplace le lutin de 4 cases vers la droite et de 2 cases vers le haut. »
Ce qu'il faut écrire
« alleraˋx:4y:2 place le lutin au point (4;2), d'où qu'il vienne. »
Pourquoi : Le bloc qui déplace de 4 cases vers la droite s'appelle ajouter4aˋx. Position et déplacement sont deux familles différentes, et le nom du bloc le dit.
2.Croire que le lutin bouge quand il tourne
1 point, et le tableau de suivi devient faux à partir de cette ligne
Ce qu'il ne faut pas écrire
« Après tournerde90degreˊs, le lutin a avancé d'un quart de case. »
Ce qu'il faut écrire
« tourner fait pivoter le lutin SUR PLACE : sa direction change, ses coordonnées ne changent pas. »
Pourquoi : Une rotation n'a d'effet que sur les blocs avancer qui la SUIVENT. C'est pour cela qu'on note séparément la position et la direction.
3.Échanger le nombre de répétitions et la longueur du côté
1 point, et la question du périmètre qui suit
Ce qu'il ne faut pas écrire
« reˊpeˊter4fois(avancerde5,tournerde90) trace un carré de 4 cases de côté. »
Ce qu'il faut écrire
« Ce script trace un carré de 5 cases de côté : le 4 est le nombre de côtés, le 5 est leur longueur. »
Pourquoi : Le nombre écrit après reˊpeˊter compte les tours de boucle, donc les côtés. Les nombres écrits À L'INTÉRIEUR décrivent ce qui se passe pendant un tour.
4.Faire tourner le lutin de l'angle intérieur de la figure
toute la question, et la figure obtenue ne se referme pas
Ce qu'il ne faut pas écrire
« Pour tracer un triangle équilatéral, le lutin tourne de 60 degrés à chaque sommet, puisque les angles du triangle valent 60 degrés. »
Ce qu'il faut écrire
« Le lutin tourne de 3360=120 degrés à chaque sommet : l'angle de rotation n'est pas l'angle de la figure, c'est ce qui lui manque pour faire un demi-tour. »
Le lutin arrive le long du côté, prolongé en pointillés : il doit pivoter de 120∘ pour repartir sur le côté suivant, alors que l'angle du triangle mesure 60∘.
Pourquoi : Le lutin arrive dans la direction d'un côté et doit repartir dans celle du suivant : il pivote de 180∘−60∘=120∘. Le contrôle est immédiat, le total des rotations doit valoir 360∘.
5.Lire une affectation comme une équation
1 point, et le blocage sur toutes les questions de compteur
Ce qu'il ne faut pas écrire
« mettrescoreaˋscore+4 est impossible, car un nombre n'est jamais égal à lui-même plus 4. »
Ce qu'il faut écrire
« Ce bloc calcule score+4 avec la valeur actuelle, puis range le résultat dans score : si score valait 23, il vaut ensuite 27. »
Pourquoi : En programmation, le mot mettre à désigne une ACTION, un rangement en mémoire. En mathématiques, le signe égal énonce une affirmation. Ce sont deux idées différentes qui se ressemblent.
6.Oublier qu'un mettre à efface tout ce qui précède
toute la question de suivi de variable
Ce qu'il ne faut pas écrire
« Le script ajoute 5, puis 5, puis met score à 20 : le score final est 30. »
Ce qu'il faut écrire
« mettrescoreaˋ20 efface la valeur en cours : après cette ligne le score vaut 20, quels que soient les ajouts précédents. »
Pourquoi : Une variable ne contient qu'UNE valeur à la fois. Les ajouts antérieurs ne sont pas mémorisés ailleurs : ils sont simplement perdus.
7.Croire que l'ordre des instructions ne compte pas
toute la question, et elle revient à chaque contrôle
Ce qu'il ne faut pas écrire
« Ces deux scripts contiennent les mêmes blocs, donc ils donnent le même point d'arrivée. »
Ce qu'il faut écrire
« En partant de (1;1) vers la droite, avancer de 3 puis tourner puis avancer de 2 mène en (4;3), alors que 2 puis tourner puis 3 mène en (3;4). »
Pourquoi : Le bloc tourner sépare les deux déplacements : celui d'avant est horizontal, celui d'après est vertical. Deux instructions ne s'échangent librement que si aucune ne change ce dont l'autre a besoin.
8.Compter les cases au lieu des déplacements
1 point, et le lutin sort du quadrillage à l'exécution
Ce qu'il ne faut pas écrire
« Pour parcourir une ligne de 8 cases, il faut reˊpeˊter8fois:avancerde1case. »
Ce qu'il faut écrire
« Le lutin occupe déjà la première case : il ne lui reste que 7 déplacements, donc reˊpeˊter7fois. »
Le lutin (point vert) occupe déjà la première case : 8 cases ne demandent que 7 déplacements, une flèche entre deux cases voisines.
Pourquoi : Il y a toujours une case de plus que de déplacements sur une ligne, comme il y a un piquet de plus que d'intervalles dans une clôture. C'est le décalage de un le plus courant en algorithmique.
Quelle méthode choisir
Que fait ce bloc au lutin ?
On regarde le NOM du bloc, il dit à lui seul ce qui change.
Si alleraˋx:ay:b → la position devient (a;b), la direction ne change pas
Exemple : d'où qu'il vienne, le lutin se retrouve en (4;2)
Si ajouternaˋx ou ajouternaˋy → une seule coordonnée change, la direction est ignorée
Exemple : de (5;1), le bloc ajouter3aˋy mène en (5;4)
Si avancerdencases → le lutin se déplace DANS SA DIRECTION ACTUELLE : il faut donc connaître cette direction avant de répondre
Exemple : orienté vers la droite, de (1;1) il va en (5;1) ; orienté vers le haut, il va en (1;5)
Si tournerdeadegreˊs → seule la direction change, la position reste identique
Exemple : en (4;3) orienté vers la droite, le lutin reste en (4;3) après le pivot
Si mettrevaˋ… ou ajouter…aˋv → seule la variable change, ni la position ni la direction
Exemple : ajouter5aˋscore ne déplace aucun lutin
Dans le tableau de suivi, une colonne par information. Un bloc ne touche presque jamais à deux colonnes à la fois, et c'est ce qui rend le remplissage rapide.
Combien de répétitions, et de quel angle tourner ?
On regarde la figure ou le résultat que le script doit produire.
Si un polygone régulier à n côtés → reˊpeˊternfois, en tournant de n360∘ à chaque sommet
Si un rectangle → reˊpeˊter2fois un bloc de quatre instructions, longueur, pivot, largeur, pivot
Exemple : rectangle 6×3 : deux tours de boucle, 8 instructions en tout
Si un escalier de n marches → reˊpeˊternfois avec DEUX pivots opposés, un à gauche puis un à droite
Exemple : 4 marches de 2 cases : trait total 4×4=16 cases
avec deux pivots dans le même sens, le lutin dessinerait un carré au lieu de monter
Si parcourir une ligne de k cases → reˊpeˊter(k−1)fois, car le lutin occupe déjà la première case
Exemple : une ligne de 8 cases demande 7 déplacements
Vérification universelle : le total des rotations d'une figure fermée vaut 360∘. Si la somme ne tombe pas juste, la figure ne se referme pas, et le script est faux avant même d'être exécuté.
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.
Suivre un script pas à pas
Quand l'utiliser : L'énoncé donne un script et demande où arrive le lutin, ce qu'il trace, ou ce que vaut une variable à la fin.
1Tracer un tableau à trois colonnes : instruction, position, direction. On y ajoute une colonne par variable utilisée.
2Écrire la ligne de départ AVANT la première instruction : c'est elle qui évite de partir d'un point inventé.
3Remplir une ligne par instruction, en recopiant les valeurs qui ne changent pas plutôt que de laisser des cases vides.
4Dérouler la boucle tour par tour, en écrivant « tour 1 », « tour 2 », plutôt que de raisonner de tête.
5Conclure par une phrase qui donne la réponse demandée, avec ses coordonnées entre parenthèses.
Phrase de conclusion
« Après le troisième tour de boucle, le lutin se trouve au point (8;7) et regarde vers la droite. »
Le piège : Ne pas noter la direction, parce qu'elle « ne change pas ». C'est justement quand elle change une seule fois que la copie se trompe.
Barème : 1 point le tableau rempli ligne à ligne, 0,5 point la boucle déroulée tour par tour, 0,5 point la phrase de conclusion.
Écrire un script qui trace une figure
Quand l'utiliser : L'énoncé demande d'écrire ou de compléter un script pour obtenir une figure donnée.
1Placer le lutin avant de tracer : un bloc alleraˋ, puis un bloc s′orientervers.
2Baisser le stylo, sinon la figure ne s'affiche pas.
3Décrire UN motif complet, celui qui se répète : le côté et le pivot pour un polygone, la marche pour un escalier.
4Compter combien de fois ce motif se répète et l'entourer d'un reˊpeˊter.
5Vérifier que le total des rotations vaut 360∘ si la figure doit se refermer.
Phrase de conclusion
« alleraˋx:2y:1, s′orienterversladroite, styloenpositiond′eˊcriture, puis reˊpeˊter4fois : avancerde5cases, tournerde90degreˊsversladroite. »
Le piège : Oublier le bloc de départ et le stylo. Le correcteur exécute le script tel qu'il est écrit : sans position initiale, la figure est indéterminée.
Barème : 0,5 point la mise en place, 1 point le motif exact, 0,5 point le nombre de répétitions.
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.
Le total des rotations vaut-il 360 degrés ?
Multiplier l'angle par le nombre de répétitions. Si la figure doit se refermer, le produit vaut exactement 360.
4 pivots de 60∘ donnent 240∘ : la figure reste ouverte, il en faudrait 6.
Le tableau a-t-il autant de lignes que d'instructions ?
Compter les lignes du tableau de suivi et les comparer au script, boucle déroulée. Une ligne manquante signale une instruction sautée.
Une boucle de 2 tours contenant 4 blocs demande 8 lignes, plus celle du départ.
Des cases ou des déplacements ?
Relire la question : parcourir k cases demande k−1 déplacements. Le doute se lève en dessinant trois cases et en comptant les flèches.
Un lutin qui répète 8 fois avancerde1 sur une ligne de 8 cases sort du quadrillage.
La dernière ligne qui touche la variable
Chercher dans le script le DERNIER bloc mettre…aˋ : tout ce qui précède est effacé, et seuls les ajouter postérieurs comptent encore.
Un mettrescoreaˋ20 placé en avant-dernière ligne rend inutiles tous les ajouts du début.
L'exercice type décortiqué
Prévoir le point d'arrivée d'un script
Le lutin part du point (2;1) du quadrillage, stylo baissé. Le script ci-dessous est exécuté en entier.
Où arrive-t-il, dans quelle direction regarde-t-il, et quelle est la longueur du trait tracé ?
Seul le point de départ est donné : le tracé se construit en suivant le script ligne à ligne, jamais en devinant la forme finale.
Scratch
quand le drapeau vert est cliqué
aller à x: 2 y: 1
s'orienter vers la droite
stylo en position d'écriture
répéter 3 fois
avancer de 2 cases
tourner de 90 degrés vers la gauche
avancer de 2 cases
tourner de 90 degrés vers la droite
Étape 1
Ligne de départ du tableau : position (2;1), direction « vers la droite ». Aucune instruction n'a encore été exécutée.
Pourquoi
On écrit cette ligne AVANT de commencer. C'est elle qui empêche de partir d'un point inventé, et elle vaut souvent le premier demi-point.
Étape 2
Tour 1 : avancerde2 mène en (4;1) ; le pivot à gauche oriente vers le haut ; avancerde2 mène en (4;3) ; le pivot à droite réoriente vers la droite.
Pourquoi
On note les deux pivots même s'ils ne changent pas la position : c'est le premier qui rend le second avancer vertical, et c'est là que se joue toute la figure.
Étape 3
Tour 2 : de (4;3) on passe en (6;3), puis en (6;5), et le lutin regarde de nouveau vers la droite.
Pourquoi
Le deuxième tour part exactement dans la même configuration que le premier : c'est ce qui prouve que le motif se répète et qu'on peut prévoir le troisième sans le dérouler.
Étape 4
Tour 3 : de (6;5) on passe en (8;5), puis en (8;7). Le lutin regarde vers la droite.
Pourquoi
Chaque tour ajoute 2 à l'abscisse et 2 à l'ordonnée. On pouvait donc écrire directement 2+2×3=8 et 1+2×3=7 : la boucle se calcule au lieu de se dérouler.
Étape 5
Longueur du trait : chaque tour trace 2+2=4 cases, et il y a 3 tours, donc 3×4=12 cases.
Pourquoi
On compte le trait, pas le déplacement en ligne droite entre le départ et l'arrivée. C'est la même distinction qu'entre un trajet et un raccourci.
Étape 6
Vérification : le lutin est monté de 6 cases et s'est décalé de 6 cases vers la droite, ce qui donne bien (2+6;1+6)=(8;7).
Pourquoi
Le contrôle refait le compte par un autre chemin, en additionnant les déplacements de chaque direction séparément.
Conclusion rédigée
« Le lutin arrive au point (8;7), orienté vers la droite, après avoir tracé un escalier de 3 marches long de 12 cases. »
L'erreur classique sur cet exercice : Oublier le second pivot et faire tourner le lutin deux fois dans le même sens : la figure devient un carré fermé au lieu d'un escalier, et le point d'arrivée redevient le point de départ.
À savoir par cœur
•alleraˋ donne une POSITION ; ajouteraˋ et avancer donnent un DÉPLACEMENT.
•tourner change la direction et RIEN d'autre.
•Un point du quadrillage s'écrit (x;y) : l'abscisse d'abord, l'ordonnée ensuite.
•Polygone régulier à n côtés : reˊpeˊternfois, angle n360∘.
•Une figure fermée totalise 360∘ de rotations.
•mettreaˋ efface, ajouteraˋ conserve.
•Parcourir k cases demande k−1 déplacements.
Questions fréquentes
Quelle est la différence entre aller à et avancer dans Scratch ?
Le bloc aller à donne une position : il place le lutin au point indiqué, quel que soit l'endroit d'où il vient. Le bloc avancer donne un déplacement : il part de la position actuelle et suit la direction actuelle du lutin. Deux lutins partis d'endroits différents finissent au même point avec aller à, et à deux endroits différents avec avancer.
De quel angle le lutin doit-il tourner pour tracer un triangle équilatéral ?
De 120 degrés à chaque sommet, et non de 60. L'angle de rotation n'est pas l'angle de la figure : c'est ce qu'il manque à cet angle pour faire un demi-tour. La règle générale est de tourner de 360 divisé par le nombre de côtés, ce qui donne 90 degrés pour un carré et 60 degrés pour un hexagone.
Que veut dire mettre score à score plus 4 ?
Cette instruction se lit de droite à gauche. On calcule d'abord la somme de la valeur actuelle de la variable et de 4, puis on range le résultat dans la variable. Ce n'est pas une équation mathématique mais une action de rangement en mémoire : si le score valait 23, il vaut 27 après l'exécution du bloc.
Comment savoir où arrive le lutin à la fin d'un script ?
On dresse un tableau avec une ligne par instruction et trois colonnes : la position, la direction et chaque variable. On écrit d'abord la ligne de départ, puis on avance instruction par instruction en recopiant ce qui ne change pas. Les boucles se déroulent tour par tour. Lire un script globalement conduit presque toujours à une erreur.
Pourquoi faut-il répéter 7 fois pour parcourir 8 cases ?
Parce que le lutin occupe déjà la première case au départ : il ne lui reste que sept déplacements à faire pour atteindre la huitième. Il y a toujours une case de plus que de déplacements sur une ligne, comme il y a un piquet de plus que d'intervalles dans une clôture. Ce décalage de un est l'erreur la plus fréquente en algorithmique.
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.
Il manque quelque chose dans cette fiche ?Une méthode, un piège, un exercice pour l'appliquer, une erreur repérée : dis-le-moi, je lis chaque demande.
L'envoi passe par ton espace gratuit : c'est ce qui me permet de te répondre et de te prévenir quand l'exercice est ajouté. Un courriel suffit, pas de mot de passe. Crée ton espace.
Pas envie de créer un compte ? Écris-moi directement.
Contactez-moi pour une première séance. L'algorithmique de sixième apprend une chose qui sert partout ensuite : suivre un enchaînement d'étapes sans en sauter aucune, et vérifier au fur et à mesure. C'est la même rigueur qui fait réussir une démonstration en troisième.