Boucles imbriquées
Emboiter deux boucles, et prévoir combien de fois la seconde tourne.
Avant celle-ci
Cette notion s'appuie sur 3 autres, parfois d'un niveau plus bas. Si ça coince ici, c'est souvent là que ça se joue.
- Boucles (5e)
- Variables et tests (4e)
- Déplacements et programmes (6e)
Une boucle rangée dans une autre
Un robot doit poser une grille de points : six rangées de quatre points. Une boucle sait déjà poser une rangée : répéter quatre fois « pose un point ».
Reste à faire six rangées. Tu ne recopies pas six fois la boucle : tu la ranges à l’intérieur d’une seconde boucle qui, elle, tourne six fois.
C’est tout ce qu’est une boucle imbriquée : une boucle placée dans le corps d’une autre. Celle du dedans s’appelle la boucle intérieure, celle du dehors la boucle extérieure.
Pour lire un tel programme, repère d’abord jusqu’où va chaque répétition. La ligne qui travaille vraiment est celle qui se trouve dans les deux à la fois.
La boucle intérieure repart du début à chaque tour
Voici le fait nouveau du chapitre, et le seul. La boucle intérieure ne reprend pas là où elle s’était arrêtée.
À chaque tour de la boucle extérieure, elle recommence entièrement, de son premier tour à son dernier. Elle a fini ses quatre tours ? Le tour suivant du dehors les relance tous les quatre.
Les passages se multiplient donc. Dix tours dehors et cinq tours dedans, cela fait 10 fois 5 égale 50 passages sur la ligne du corps.
La grille du robot dit la même chose autrement. Six rangées de quatre points, ce sont vingt-quatre points posés, un par passage.
Compter les passages avant de calculer
Pour prévoir ce que contient une variable à la fin, ne calcule pas tout de suite. Commence par compter les passages sur la ligne qui la modifie.
Ce nombre de passages est le produit des deux nombres de tours. Ensuite seulement, tu multiplies par ce qu’un passage ajoute, et tu repars de la valeur de départ.
Si le compte t’échappe, déroule les deux premiers tours du dehors à la main. Tu écris ce que contient la variable à la fin du tour 1, puis à la fin du tour 2. La régularité se voit là.
Voici où presque tout le monde se trompe
Dix tours dehors et cinq tours dedans : beaucoup répondent quinze passages. Ce n’est pas de l’étourderie, et ce n’est pas non plus une hésitation entre deux opérations.
Celui qui additionne voit les deux boucles côte à côte, l’une après l’autre. Avec cette image en tête, additionner est le calcul juste : dix tours ici, cinq tours là, quinze en tout.
L’image est donc à changer avant le calcul. Les deux boucles ne se suivent pas : la seconde est rangée DANS la première, et repart à chacun de ses tours.
Le moyen de trancher tient en une question, à poser à voix haute. Pendant UN seul tour du dehors, combien de passages ? Ce nombre se répète ensuite autant de fois que le dehors tourne.
Deuxième glissement, plus discret : oublier que la boucle extérieure tourne, elle aussi. Elle n’est écrite qu’une fois, comme en cinquième, et tout ce qu’elle contient recommence à chacun de ses tours.
À retenir
- Deux boucles emboîtées multiplient leurs tours : 10 dehors et 5 dedans font 50 passages.
- À chaque tour de la boucle extérieure, la boucle intérieure repart de son premier tour.
- Compte les passages d’abord, multiplie par ce qu’un passage ajoute, ajoute le départ.
Un exercice, tout de suite
Cherche d'abord, ouvre la correction ensuite. Se tromper ici ne coûte rien.
Exercice 1
Voici un programme. Fais-le tourner à la main.
total prend la valeur 33
Répéter 11 fois :
Répéter 9 fois :
total prend la valeur total + 14
Fin de la répétition intérieure
Fin de la répétition extérieure
Quelle valeur contient total à la fin du programme ?
Voir la correction
Regarde d’abord un seul tour de la boucle extérieure. Pendant ce tour, la boucle intérieure fait ses 9 passages, et chacun ajoute 14 : 9 fois 14 égale 126.
La boucle extérieure tourne 11 fois. À chacun de ses tours, la boucle intérieure repart de son premier tour et refait tout.
Le nombre de passages sur la ligne du corps est donc 11 fois 9 égale 99.
Chaque passage ajoute 14, donc les deux boucles ajoutent en tout 99 fois 14 égale 1386.
La première ligne, elle, est en dehors des deux boucles : total partait de 33. 33 plus 1386 égale 1419. À la fin, total contient 1419.
Ce que ça ouvre ensuite
Vous êtes parent ? Cette page dit ce qu'il faut savoir. Elle ne dit pas si votre enfant le sait. C'est la question à laquelle Canopée répond dans son atelier : une notion ne compte comme acquise que le jour où l'élève réussit seul, sans indice, et qu'elle tient encore plusieurs jours plus tard. L'atelier ouvre aujourd'hui la sixième ; le parcours de troisième arrivera avec la prépa brevet 2027. Voir comment.