Éducation Nationale Française · Sixième
Initiation à la pensée informatique
I
Trois sortes de programmes
I.1
Le programme du robot
Définition — Le code du robot
Sur un quadrillage, un chemin se code avec les quatre flèches \(\uparrow\ \rightarrow\ \downarrow\ \leftarrow\), une par pas, chacune indiquant la direction sur la feuille. Un robot ne connaît pas la feuille : il sait seulement où il regarde. Son programme utilise trois instructions : | \(\rightarrow\) | avancer d'une case |
| \(\curvearrowright\) | quart de tour à droite (le robot reste sur sa case) |
| \(\curvearrowleft\) | quart de tour à gauche (le robot reste sur sa case) |
Méthode — Exécuter un programme long
Le robot part de l'École, case A1, en regardant vers la droite, et reçoit ce programme de 10 instructions :
- Noter le départ. Écrire la case de départ et dessiner une petite flèche qui montre où regarde le robot.
- Lire par groupes. Plusieurs \(\rightarrow\) à la suite font une seule ligne droite : les compter. Un \(\curvearrowright\) ou un \(\curvearrowleft\) ne change que la direction : après lui, redessiner la flèche avant de continuer.
- Tenir un tableau avec, pour chaque groupe, la nouvelle direction et la case atteinte. Avec un programme long, c'est le tableau qui évite de se perdre.
- Vérifier à la fin qu'on a utilisé toutes les instructions : les compter.
| instructions | ce que fait le robot | regarde maintenant | case |
| \(\rightarrow\ \rightarrow\ \rightarrow\ \rightarrow\ \rightarrow\) | 5 en avant | vers la droite | F1 |
| \(\curvearrowleft\) | quart de tour | vers le haut | F1 |
| \(\rightarrow\ \rightarrow\ \rightarrow\ \rightarrow\) | 4 en avant | vers le haut | F5 |
Exemple
Le robot de Léo part de la Bibliothèque, en regardant vers la droite, et reçoit ce programme :
| instructions | ce que fait le robot | regarde maintenant | case |
| \(\curvearrowright\) | quart de tour | vers le bas | F5 |
| \(\curvearrowright\) | quart de tour | vers la gauche | F5 |
| \(\rightarrow\ \rightarrow\ \rightarrow\) | 3 en avant | vers la gauche | C5 |
| \(\curvearrowleft\) | quart de tour | vers le bas | C5 |
| \(\rightarrow\ \rightarrow\) | 2 en avant | vers le bas | C3 |
Compétences à pratiquer
- Exécuter un programme
- Trouver l'instruction fausse
I.2
Le programme de calcul
Définition — Programme de calcul
Un programme de calcul est une liste d'instructions à suivre dans l'ordre, en partant d'un nombre choisi. | Programme A |
| Choisir un nombre. |
| Le multiplier par \(2\). |
| Ajouter \(5\). |
Exemple
Exécuter le programme A en partant du nombre \(7\).
$$7 \xrightarrow{\;\times 2\;} 14 \xrightarrow{\;+ 5\;} \textbf{19}$$ En partant de \(7\), le programme A donne \(19\).
Méthode — Produire un programme de calcul
Un programme de calcul peut s'écrire à partir d'une situation : lire ce qui arrive au nombre de départ, dans l'ordre, et transformer chaque événement en une instruction. - Trouver le nombre de départ — la quantité qui peut changer : le nombre de magazines, de tickets, de tours.
- Suivre les événements dans l'ordre — chaque « fois », « de plus », « de moins » devient une instruction du programme.
- Dire le programme en mots, une instruction par ligne.
Exemple
Un trajet en minibus coûte \(4\) euros par passager, et le groupe paie aussi \(5\) euros pour les bagages. Produire le programme de calcul qui donne le prix total à partir du nombre de passagers, puis l'exécuter pour \(6\) passagers.
Le nombre de départ est le nombre de passagers. Dans l'ordre : chaque passager coûte \(4\) euros (multiplier par \(4\)), puis les bagages ajoutent \(5\) euros (ajouter \(5\)) : Prendre le nombre de passagers \(\rightarrow\) multiplier par 4 \(\rightarrow\) ajouter 5. $$\begin{aligned}[t] 6 &\rightarrow 6 \times 4 = 24 && \text{(multiplier par 4)} \\
&\rightarrow 24 + 5 = 29 && \text{(ajouter 5)} \end{aligned}$$ Pour \(6\) passagers, le trajet coûte \(29\) euros.
Compétences à pratiquer
- Exécuter des programmes
- Écrire le programme d'une situation
I.3
Le programme de construction
Définition — Programme de construction
Un programme de construction est une liste ordonnée d'instructions qui explique, étape par étape, comment tracer une figure. Chaque instruction doit dire exactement quoi tracer, sans laisser aucun choix qui change la figure. L'endroit de la feuille où elle se trouve, et le sens dans lequel elle est tournée, n'ont pas d'importance : deux personnes qui suivent le même programme avec soin obtiennent la même figure — même forme, mêmes longueurs — même si l'une l'a tracée plus haut, ou dans l'autre sens. Les étapes suivies pour construire un cercle et un triangle étaient déjà des programmes de construction. Méthode — Écrire un programme de construction
Pour écrire un programme de construction d'une figure : - Nommer les points de la figure (par exemple \(A\), \(B\), \(C\), \(D\)).
- Donner les étapes dans l'ordre, en partant d'un premier segment et en terminant par la figure achevée.
- Rendre chaque instruction précise — indiquer chaque longueur, chaque angle droit, et quel instrument utiliser (règle, équerre, compas) — pour que le lecteur puisse le suivre sans jamais voir la figure.
Exemple
Voici un programme de construction d'un rectangle \(ABCD\) avec \(AB = 4\) cm et \(BC = 2\) cm. - Tracer le segment \(\SegmentFr{AB}\) de longueur \(4\) cm.
- En \(A\), à l'équerre, tracer la droite perpendiculaire à \(\SegmentFr{AB}\) ; placer dessus le point \(D\) avec \(AD = 2\) cm.
- En \(B\), à l'équerre, tracer la droite perpendiculaire à \(\SegmentFr{AB}\) ; placer dessus, du même côté de \(\LineFr{AB}\) que \(D\), le point \(C\) avec \(BC = 2\) cm.
- Tracer le segment \(\SegmentFr{DC}\). Le quadrilatère \(ABCD\) est le rectangle demandé.
Compétences à pratiquer
- Suivre un programme de construction
- Écrire un programme de construction
II
Le langage des programmes
II.1
Le vocabulaire des programmes
Voici trois programmes. Le robot part de la case A1 en regardant vers la droite ; \(\rightarrow\) veut dire « avancer d'une case », \(\curvearrowleft\) « quart de tour à gauche ».
Quel point commun ont ces trois programmes ? Pour chacun, dire ce qui est donné au départ et ce qui est obtenu à la fin.
| Robot | Calcul | Construction |
| \(\rightarrow\ \rightarrow\ \curvearrowleft\ \rightarrow\ \rightarrow\) | Choisir un nombre. | Tracer un segment \([AB]\) de \(4\)~cm. |
| Le multiplier par \(2\). | Tracer la perpendiculaire à \((AB)\) en \(B\). | |
| Ajouter \(5\). | Placer \(C\) dessus, à \(3\)~cm de \(B\). | |
| Écrire le nombre obtenu. | Tracer le segment \([BC]\). |
Chacun des trois est une liste d'ordres, exécutés dans l'ordre, l'un après l'autre, sans rien décider : le robot se déplace, la calculatrice calcule, la main trace.
- Robot. Donné au départ : la case A1 et la direction « vers la droite ». Obtenu à la fin : la case d'arrivée — deux cases en avant jusqu'en C1, un quart de tour à gauche, le robot regarde maintenant vers le haut, deux cases en avant : C3.
- Calcul. Donné : un nombre, par exemple \(3\). Obtenu : \(3 \times 2 = 6\), \(6 + 5 = 11\) : le nombre \(11\). Avec \(10\) au départ, \(25\) à la fin : le même programme, un autre nombre.
- Construction. Donné : une feuille blanche. Obtenu : une figure — deux segments qui forment un angle droit en \(B\).
Définition — Instruction et séquence
Une instruction est un ordre assez précis pour être exécuté sans rien décider : « avancer d'une case », « multiplier par \(2\) », « tracer un segment de \(4\)~cm ». « Aller à la gare » n'est pas une instruction : celui qui la reçoit doit encore choisir le chemin.Une séquence d'instructions — un programme — est une liste d'instructions exécutées dans l'ordre, la première d'abord, la dernière en dernier. Les mêmes instructions dans un autre ordre font un autre programme : en partant de \(3\), « multiplier par \(2\), puis ajouter \(5\) » donne \(11\), tandis que « ajouter \(5\), puis multiplier par \(2\) » donne \(16\).
Définition — Entrée et sortie
L'entrée d'un programme est ce qui est donné avant de l'exécuter ; la sortie est ce qui est obtenu après. Le programme, lui, ne change pas : il est écrit une fois et fonctionne pour toute entrée permise. | Entrée | Sortie | |
| Programme du robot | la case et la direction de départ | la case et la direction d'arrivée |
| Programme de calcul | le nombre choisi | le nombre écrit |
| Programme de construction | une feuille blanche | la figure |
Méthode — Trois tâches avec une séquence
- Identifier. Cette ligne est-elle une instruction — peut-on l'exécuter sans rien choisir ? Cette liste est-elle une séquence — l'ordre compte-t-il, et est-il donné ?
- Exécuter. Exécuter une instruction à la fois, dans l'ordre, puis noter l'état après chacune : la case et la direction du robot, le nombre obtenu. Exécuter, c'est obéir exactement, même quand le programme a l'air faux.
- Produire. Pour obtenir une sortie imposée, mettre des cartes d'instructions dans l'ordre, puis exécuter la séquence obtenue pour vérifier qu'elle donne bien la sortie voulue. Si ce n'est pas le cas, c'est le programme qui est faux, pas celui qui l'exécute.
Exemple
- On dispose de trois cartes : « ajouter \(1\) », « multiplier par \(2\) », « multiplier par \(3\) ». Les mettre dans l'ordre pour que l'entrée \(4\) donne la sortie \(27\).
- Le robot part en regardant vers la droite. Lequel de ces deux programmes lui fait dessiner un carré ?
(a)\ \(\rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\ \rightarrow\) (b)\ \(\rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\ \curvearrowright\ \rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\)
- Essayer les ordres et exécuter chacun à partir de \(4\). « Multiplier par \(2\), ajouter \(1\), multiplier par \(3\) » : \(4 \times 2 = 8\), \(8 + 1 = 9\), \(9 \times 3 = 27\). Cet ordre convient. Un autre ordre, « ajouter \(1\), multiplier par \(2\), multiplier par \(3\) », donne \(4 + 1 = 5\), \(5 \times 2 = 10\), \(10 \times 3 = 30\) : pas \(27\).
- Exécuter les deux, en comptant les cases de chaque ligne droite. En (a), le robot fait \(2\) en avant, tourne à droite, \(2\) en avant, tourne à droite, \(2\) en avant, tourne à droite, \(2\) en avant : quatre côtés de \(2\) cases avec un quart de tour entre eux, il revient sur sa case de départ — un carré. En (b), les lignes droites font \(2\), \(1\), \(2\), \(1\) : un rectangle, pas un carré. Le programme (a).
Un programme n'a pas d'avis
Exécuter un programme, c'est lui obéir exactement : le robot ne devine pas où l'on voulait qu'il aille, le calcul ne se corrige pas tout seul. C'est pour cela qu'un programme se vérifie en l'exécutant, pas en le lisant et en le trouvant convaincant. Et c'est pour cela qu'on l'écrit une fois pour toutes les entrées : le même programme de calcul sert pour \(3\), pour \(10\), pour n'importe quel nombre choisi.
Compétences à pratiquer
- Identifier instructions et séquences
- Exécuter une séquence
- Produire une séquence
II.2
Répéter
Le robot part en regardant vers la droite et dessine un carré de \(3\) cases de côté : \(\rightarrow\ \rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\ \rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\ \rightarrow\ \rightarrow\ \curvearrowright\ \rightarrow\ \rightarrow\ \rightarrow\ \curvearrowright\) Seize instructions. Écrire ce programme plus court, sans changer ce que fait le robot.
Le même groupe de quatre instructions, \(\rightarrow\ \rightarrow\ \rightarrow\ \curvearrowright\), revient quatre fois : un côté, puis un quart de tour. Le programme peut donc s'écrire répéter \(4\) fois \((\rightarrow\ \rightarrow\ \rightarrow\ \curvearrowright)\) Le robot exécute toujours seize instructions — \(4\) côtés de \(3\) cases et \(4\) quarts de tour — et dessine toujours le même carré. Seule l'écriture est plus courte. En partant de B4 en regardant vers la droite, voici le carré que dessine le robot :
(Rappel : pour le robot, \(\rightarrow\) veut dire « en avant, dans la direction où je regarde », pas « vers la droite de la feuille ».)
Définition — Répéter
L'instruction « répéter \(n\) fois ( …\ ) » exécute le groupe écrit entre les parenthèses — son corps — \(n\) fois de suite, puis continue avec ce qui suit la parenthèse. Chaque exécution du corps est un tour. On l'écrit aussi \(n \times (\ldots)\) : \(4 \times (\rightarrow\ \rightarrow\ \curvearrowright)\) et « répéter \(4\) fois \((\rightarrow\ \rightarrow\ \curvearrowright)\) » disent la même chose.Un programme avec un répéter a deux comptes :
- les instructions écrites : la ligne « répéter » et les instructions de son corps — pour « répéter \(4\) fois \((\rightarrow\ \rightarrow\ \rightarrow\ \curvearrowright)\) », \(1 + 4 = 5\) instructions écrites ;
- les instructions exécutées : le corps autant de fois qu'il y a de tours — \(4 \times 4 = 16\) instructions.
Méthode — Exécuter un répéter à la main
- Numéroter les tours. Écrire « tour 1 » et exécuter le corps en entier, une instruction à la fois, en notant l'état après chacune.
- Tour suivant. Revenir au début du corps et l'exécuter de nouveau, sous « tour 2 », et ainsi de suite jusqu'au tour \(n\).
- Après le dernier tour, continuer avec l'instruction qui suit la parenthèse — ne pas exécuter le corps une fois de plus.
- Un répéter dans un répéter : à chaque tour du répéter extérieur, le répéter intérieur est exécuté en entier, avec tous ses tours.
Exemple
Le robot part de A1, en regardant vers la droite, sur un quadrillage vide, et dessine son chemin. Exécuter « répéter \(3\) fois \((\rightarrow\ \rightarrow\ \curvearrowleft\ \rightarrow\ \curvearrowright)\) ». Où arrive-t-il, et que dessine-t-il ? | tour | instructions | état (case, regarde) |
| 1 | \(\rightarrow\ \rightarrow\) ; \(\curvearrowleft\) ; \(\rightarrow\) ; \(\curvearrowright\) | C1, droite ; C1, haut ; C2, haut ; C2, droite |
| 2 | \(\rightarrow\ \rightarrow\) ; \(\curvearrowleft\) ; \(\rightarrow\) ; \(\curvearrowright\) | E2, droite ; E2, haut ; E3, haut ; E3, droite |
| 3 | \(\rightarrow\ \rightarrow\) ; \(\curvearrowleft\) ; \(\rightarrow\) ; \(\curvearrowright\) | G3, droite ; G3, haut ; G4, haut ; G4, droite |
Exemple
La suite \(1\) ; \(2\) ; \(4\) ; \(8\) ; \(16\) ; …\ passe de chaque terme au suivant avec la même instruction. L'écrire comme un programme de calcul avec un répéter, puis déterminer son onzième terme.
D'un terme au suivant, le nombre est multiplié par \(2\). Le premier terme est \(1\), et atteindre le onzième demande \(10\) pas :
Le onzième terme est \(1\,024\). Quatre instructions écrites (la ligne « répéter » et son corps comptent pour deux), douze exécutées. Le tableau des tours est exactement ce qu'afficherait une colonne de tableur.
| Partir de \(1\). |
| Répéter \(10\) fois ( multiplier par \(2\) ). |
| Écrire le nombre obtenu. |
| tour | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| nombre | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
Exemple
À la règle et à l'équerre, un carré de \(4\)~cm de côté se trace aussi en répétant. Écrire le programme et dire d'où il repart à chaque tour.
Sur le papier, il n'y a pas de robot : le programme doit dire d'où repartir et de quel côté tourner, toujours le même.
Chaque tour repart de l'extrémité du côté qu'on vient de tracer, et le quart de tour est toujours vers la gauche : quatre côtés, quatre angles droits, et le quatrième côté revient en \(A\). Tourner à gauche à certains tours et à droite à d'autres ne donnerait pas un carré.
| Marquer un point \(A\) et choisir une direction. |
| Répéter \(4\) fois ( tracer un côté de \(4\)~cm à partir du point où l'on est ; |
| à l'extrémité de ce côté, tourner d'un quart de tour vers la gauche ). |
Pourquoi répéter ?
Un répéter rend un programme plus court et plus sûr : seize flèches recopiées à la main, ce sont seize occasions d'erreur, « répéter \(4\) fois » n'en est qu'une. Il dit aussi la structure : un carré, c'est quatre fois la même chose, un escalier, trois fois la même marche. Et compter les tours est exactement ce qu'une machine fait sans jamais se lasser : « répéter \(1\,000\) fois » ne s'écrit pas plus longuement que « répéter \(4\) fois », et la machine exécute les \(1\,000\) tours sans se tromper.
Compétences à pratiquer
- Exécuter un répéter
- Écrire avec un répéter
- Un répéter dans un répéter
II.3
Programmer un chemin
De la feuille à l'écran
À l'écran, un programme s'écrit avec des blocs qui s'emboîtent, et il est exécuté par un personnage — un lutin — qui se déplace en laissant un trait derrière lui. Les instructions sont celles du robot, avec deux conventions :
- le lutin part d'une case du quadrillage, en regardant vers la droite ; le bloc « stylo en position d'écriture » lui fait dessiner son chemin ;
- « avancer de \(10\) pas » le fait avancer d'une case ; « tourner \(\circlearrowright\) de \(90\) degrés » est un quart de tour à droite et « tourner \(\circlearrowleft\) de \(90\) degrés » un quart de tour à gauche — la flèche montre de quel côté le lutin tourne, sur place.
Définition — Programme en blocs
Un programme en blocs est une séquence d'instructions écrite en blocs empilés de haut en bas : un bloc est une instruction, la pile est la séquence, et elle s'exécute depuis le haut. Un bloc répéter contient son corps ; les blocs placés à l'intérieur s'exécutent à chaque tour, le bloc placé dessous après le dernier tour. Méthode — Programmer un chemin simple
- Dessiner le chemin sur le quadrillage, de la case de départ à la case d'arrivée.
- Le découper en lignes droites et en virages. À chaque virage, décider pour le lutin si c'est à droite ou à gauche — suivre le chemin du doigt, en regardant où regarde le lutin.
- Un bloc par morceau : « avancer de \(10 \times k\) pas » pour une ligne droite de \(k\) cases, « tourner de \(90^\circ\) à droite/à gauche » pour chaque virage.
- Chercher un groupe qui revient — un côté et un virage, une marche d'escalier — et l'écrire une seule fois dans un bloc répéter.
- Exécuter le programme depuis le départ et comparer le trait obtenu au chemin voulu.
Exemple
Le bus part de l'École (case A1, \(\bullet\)), en regardant vers la droite, et doit atteindre le Stade (case E3, \(\bigstar\)).
- Écrire un programme en blocs qui fait dessiner au bus son trajet.
- Dessiner ce que trace le programme « répéter \(4\) fois ( avancer de \(20\) pas ; tourner de \(90^\circ\) à droite ) » sur un quadrillage vide, en partant de B4.
- Les cases grises sont des immeubles : le bus longe la ligne 1 jusqu'en E1, puis monte jusqu'en E3 — \(4\) cases vers la droite, un virage, \(2\) cases vers le haut. En regardant vers la droite, monter est un virage à gauche.
Exécution : A1 \(\to\) E1, virage, regarde vers le haut, E1 \(\to\) E3. Le bus est au Stade :
- Quatre lignes droites de \(2\) cases avec un virage à droite après chacune : un carré de \(2\) cases de côté, tracé depuis B4 vers la droite, puis vers le bas — et le lutin finit là où il a commencé, en regardant de nouveau vers la droite.
Le bloc faux
Quand le trait obtenu n'est pas le chemin voulu, le lutin a obéi : l'erreur est dans le programme. Pour la trouver, exécuter le programme bloc par bloc et comparer, après chaque bloc, la case atteinte et la direction à celles attendues — le premier bloc après lequel elles diffèrent est le bloc faux (un virage faux ne change pas la case : c'est la direction qui le trahit). Un virage du mauvais côté, une ligne droite d'une case de trop, un répéter d'un tour de trop : trois erreurs qui ne se voient qu'en exécutant.
Compétences à pratiquer
- Lire un programme en blocs
- Écrire un programme en blocs
- Trouver le bloc faux
III
Pour aller plus loin
Compétences à pratiquer
- Problèmes
- Quiz
Aller à la section