Des briques à remettre dans l'ordre, des machines à calculer mystères, la tour de Hanoï et un minigolf : quatre casse-tête pour lire, écrire et dérouler des programmes.
-
Écrire une suite d'instructions dans le bon ordre
-
Retrouver un programme de calcul à partir de ses entrées et de ses sorties
-
Traduire un programme de calcul en une seule instruction, avec ses priorités
-
Dérouler un programme à la main, boucle comprise
-
Choisir l'angle de rotation d'une boucle qui trace un polygone régulier
Les mêmes briques
Un lutin se déplace de case en case sur un quadrillage. Le triangle bleu montre sa case de départ et la direction où il regarde ; le point rouge marque son arrivée. Pour tourner, il pivote sur place, vers sa droite ou vers sa gauche.
Les figures 1, 2 et 3 se tracent chacune avec les cinq briques, en utilisant chaque brique une seule fois.
-
Écrire sous les figures 1, 2 et 3 les lettres des cinq briques, dans l'ordre où le lutin les exécute.
Le lutin avance, tourne, avance, tourne, avance : on lit la longueur de chaque segment, puis le sens de chaque virage, vu par le lutin.
Figure 3 : le lutin regarde vers le bas. Pour partir vers la gauche de la feuille, il tourne à sa droite : c'est la brique b.
Figure 1 : e, b, a, d, c
Figure 2 : a, d, c, b, e
Figure 3 : c, b, e, d, a
-
La figure 4 ne se trace pas avec ces cinq briques. Expliquer pourquoi.
Au premier virage, le lutin regarde vers le haut et part vers la gauche : il tourne à sa gauche. Au second, il regarde vers la gauche et part vers le bas : il tourne encore à sa gauche.
Il faudrait deux briques « tourner de \(90 \ [°]\) vers la gauche » ; il n'y en a qu'une.
Les machines mystères
Quatre machines à calculer ont le même programme : elles demandent un nombre \(n\), font deux calculs, puis affichent le résultat. Leurs deux calculs sont effacés, mais on connaît trois essais de chaque machine.
Les huit calculs effacés sont les huit opérations du stock, et chaque opération sert une seule fois.
-
Retrouver les deux calculs de chaque machine, en écrivant une opération du stock dans chaque case vide.
Machine 1 : quand l'entrée augmente de \(2\), la sortie augmente de \(4\) ; la machine multiplie par \(2\), après avoir ajouté \(5\). Pour l'entrée \(1\) : \(1 + 5 = 6\), puis \(6 \times 2 = 12\).
Machine 2 : \(2 \times 3 = 6\), puis \(6 - 2 = 4\). Machine 3 : \(4 - 3 = 1\), puis \(1 \times 4 = 4\). Machine 4 : \(2 \div 2 = 1\), puis \(1 + 1 = 2\).
Les huit opérations du stock sont toutes placées, chacune une fois.
-
Traduire chaque machine en une seule instruction « calculer » qui part de l'entrée \(n\).
Quand l'addition ou la soustraction passe en premier, des parenthèses l'imposent.
$$ \begin{array}{ll} \text{machine 1 :} & \text{calculer} \ \Bigl[ (n + 5) \times 2 \Bigr] \\ \text{machine 2 :} & \text{calculer} \ \Bigl[ n \times 3 - 2 \Bigr] \\ \text{machine 3 :} & \text{calculer} \ \Bigl[ (n - 3) \times 4 \Bigr] \\ \text{machine 4 :} & \text{calculer} \ \Bigl[ n \div 2 + 1 \Bigr] \end{array} $$ -
On revient à la machine 1. Hugo la traduit par calculer \(\Bigl[\) \(n + 5 \times 2\) \(\Bigr]\). Calculer ce que donne son instruction pour l'entrée \(1\), puis expliquer son erreur.
La multiplication passe avant l'addition : \(1 + 5 \times 2 = 1 + 10 = 11\), et non \(12\).
La machine 1 ajoute \(5\) avant de multiplier : il faut des parenthèses, \((n + 5) \times 2\).
La tour de Hanoï
En 1883, le mathématicien Édouard Lucas invente la tour de Hanoï : une tour de disques, du plus grand au plus petit, à reconstruire sur un autre piquet. On ne déplace qu'un disque à la fois, celui du dessus, et on ne pose jamais un disque sur un plus petit.
Un robot suit le programme ci-dessous. « Vers la droite » veut dire de A vers B, de B vers C, et de C on revient en A ; « l'autre déplacement permis » est le seul déplacement possible qui ne touche pas au petit disque.
-
Dérouler le programme pour la tour de trois disques, en dessinant les disques après chaque déplacement. Sur quel piquet la tour arrive-t-elle ?
On note P, M et G le petit, le moyen et le grand disque. 1 : P de A vers B ; 2 : M de A vers C ; 3 : P de B vers C ; 4 : G de A vers B ; 5 : P de C vers A ; 6 : M de C vers B ; 7 : P de A vers B.
Le programme s'arrête quand la tour est reconstruite, sans un déplacement de trop.
La tour arrive sur le piquet B, en \(7\) déplacements.
-
On passe à une tour de quatre disques : il faut \(15\) déplacements. Calculer combien de fois le robot répète la boucle, en justifiant.
Chaque tour de boucle fait deux déplacements, et le dernier déplacement du petit disque en ajoute un : pour trois disques, \(3 \times 2 + 1 = 7\).
$$ 15 - 1 = 14 \quad \text{et} \quad 14 \div 2 = 7 $$Le robot répète la boucle \(7\) fois.
-
On passe au calcul du nombre de déplacements. Au départ, le résultat vaut \(0\) ; ce programme calcule le nombre de déplacements pour une tour de six disques. Dérouler le programme en écrivant le résultat après chaque tour de boucle, puis entourer les deux résultats déjà trouvés aux questions 1 et 2. Combien de déplacements faut-il pour six disques ?
Après le tour \(3\), on retrouve les \(7\) déplacements de trois disques ; après le tour \(4\), les \(15\) de quatre disques.
Il faut \(63\) déplacements pour six disques.
Le minigolf du lutin
Au minigolf du collège, la balle est un lutin : elle part dans la direction de la flèche bleue, suit son programme, et tombe dans le trou si le programme est juste. Les deux parcours sont en vraie grandeur.
« Tourner de \(60 \ [°]\) » : l'angle se mesure entre le prolongement du côté qu'on vient de tracer et le côté suivant.
-
Tracer, à la règle et au rapporteur, le trajet de la balle au trou 1.
À chaque sommet, on prolonge le côté tracé et on mesure \(60 \ [°]\) vers la gauche : deux côtés du trajet font entre eux un angle de \(120 \ [°]\). Après trois côtés, la balle tombe dans le trou.
Mesurer \(60 \ [°]\) entre les deux côtés ferait tourner la balle de \(120 \ [°]\) : elle manquerait le trou.
-
On passe au trou 2. Ses côtés mesurent \(3.5 \ \text{cm}\), et la balle tourne toujours du même angle vers la droite : prolongé au-delà du trou, son trajet reviendrait au départ au bout de cinq côtés, en dessinant un pentagone régulier. Calculer l'angle dont la balle tourne à chaque sommet, en justifiant.
En cinq virages, la balle fait un tour complet sur elle-même : \(360 \ [°]\), partagés en cinq virages égaux.
$$ 360 \ [°] \div 5 = 72 \ [°] $$ -
Tracer le trajet du trou 2, côté après côté, jusqu'à ce que la balle tombe dans le trou, puis compléter son programme.
La balle tombe dans le trou au bout de quatre côtés : la boucle se répète quatre fois.
répéter \(4\) fois : \(\Bigl[\) avancer de \(3.5 \ \text{cm}\) ; tourner de \(72 \ [°]\) vers la droite \(\Bigr]\)