Rosace de carrés avec des boucles imbriquées

On considère le programme Scratch suivant, qui utilise deux boucles imbriquées :

Programme Scratch dessinant une rosace de carrés avec deux boucles imbriquées
  1. Identifier la figure dessinée par la boucle intérieure (« répéter $ 4 $ fois ») seule. Justifier.
  2. Combien de fois la boucle intérieure est-elle exécutée au total lors d'un lancement du programme ? Combien d'instructions « avancer » sont effectuées ?
  3. À la fin de la boucle intérieure, le lutin a tourné $ 4 $ fois de $ 90° $. Quel est l'angle total de rotation effectué par la boucle intérieure ? En déduire que le lutin retrouve son orientation initiale après chaque carré.
  4. Vérifier qu'à la fin du programme, le lutin a effectué un tour complet d'orientation grâce à la boucle extérieure. Combien de carrés au total sont tracés sur la scène ?
  5. Le programme dessine la figure ci-dessous : une rosace formée de plusieurs carrés tournés autour d'un même point.

    Rosace de 6 carrés tournés autour d'un point central

    Modifier le programme pour obtenir une rosace formée de $ 8 $ carrés (et non $ 6 $) tournés régulièrement autour du point de départ. Préciser les nouvelles valeurs à utiliser dans les deux boucles.

Corrigé

  1. La boucle intérieure répète $ 4 $ fois la séquence « avancer de $ 80 $ pas, tourner de $ 90° $ ». Le lutin trace donc $ 4 $ côtés égaux séparés par des angles de rotation de $ 90° $. La figure obtenue est un carré de $ 80 $ pas de côté.
  2. La boucle extérieure s'exécute $ 6 $ fois et la boucle intérieure $ 4 $ fois à chaque passage. Le nombre total d'exécutions de la boucle intérieure est :
    $ 6 \times 4 = 24 $

    Une instruction « avancer » est effectuée à chaque passage, soit $\mathbf{24}$ instructions « avancer » au total.

  3. À chaque passage de la boucle intérieure, le lutin tourne de :
    $ 4 \times 90 = 360 $

    L'angle total est $\mathbf{360°}$, qui correspond à un tour complet. Le lutin retrouve donc bien son orientation initiale après le tracé de chaque carré.

  4. Après chaque carré, le lutin a la même orientation qu'au début ; puis l'instruction « tourner de $ 60° $ » de la boucle extérieure le fait pivoter avant le carré suivant. Au total, ces rotations supplémentaires valent :
    $ 6 \times 60 = 360 $

    Le lutin a donc bien effectué un tour complet grâce à la boucle extérieure. Comme la boucle extérieure se répète $ 6 $ fois, $ 6 $ carrés au total sont tracés sur la scène.

  5. Pour obtenir $ 8 $ carrés régulièrement répartis autour du point de départ, la boucle extérieure doit se répéter $ 8 $ fois. L'angle de rotation à la fin de chaque carré devient :
    $ 360 \div 8 = 45 $

    Il faut donc remplacer « répéter $ 6 $ fois » par répéter $ 8 $ fois et « tourner de $ 60° $ » par tourner de $ 45° $. La boucle intérieure (qui trace un carré) reste inchangée.

Pour réviser : Utiliser une boucle dans Scratch

Tracer un octogone régulier avec une boucle

On souhaite tracer un octogone régulier (polygone à $ 8 $ côtés égaux) de $ 60 $ pas de côté avec Scratch.

  1. À chaque sommet de l'octogone, le lutin tourne d'un même angle. La somme de toutes ces rotations correspond à un tour complet, soit $ 360° $. Calculer la valeur de cet angle de rotation.
  2. Compléter le programme ci-dessous en remplaçant les pointillés par les valeurs correctes :

    Programme Scratch à compléter pour tracer un octogone régulier
  3. Adapter ce programme pour tracer un dodécagone régulier (polygone à $ 12 $ côtés) de $ 40 $ pas de côté. Préciser les nouvelles valeurs à utiliser.

Corrigé

  1. L'octogone régulier a $ 8 $ côtés. À chaque sommet, le lutin effectue une rotation. Pour faire un tour complet, ces $ 8 $ rotations égales doivent valoir $ 360° $ au total :
    $ 360 \div 8 = 45 $
    L'angle de rotation à chaque sommet est de $\mathbf{45°}$.
  2. Le programme complété trace un octogone régulier de $ 60 $ pas de côté :

    Programme Scratch complété pour tracer un octogone régulier

    On répète $\mathbf{8}$ fois (un octogone a $ 8 $ côtés), on avance de $\mathbf{60}$ pas (longueur du côté) et on tourne de $\mathbf{45°}$.

  3. Pour un dodécagone régulier ($ 12 $ côtés), l'angle de rotation devient :
    $ 360 \div 12 = 30 $

    On modifie le programme : répéter $\mathbf{12}$ fois, avancer de $\mathbf{40}$ pas, tourner de $\mathbf{30°}$.

Pour réviser : Construire une figure géométrique avec Scratch

Vrai/Faux : Boucles et tracé de figures

[enonce]
Pour chaque affirmation suivante sur les boucles et le tracé de figures géométriques dans Scratch, indiquer si elle est Vraie ou Fausse.
[/enonce]

[etape]
Affirmation : Le bloc « répéter $5$ fois » exécute son contenu exactement $5$ fois.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Exact !
La boucle « répéter $N$ fois » fait $N$ passages, ni plus ni moins. C'est une boucle à nombre de répétitions fixé.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Rappel : « répéter $N$ fois » exécute le bloc d'instructions $N$ fois, dans tous les cas. C'est une boucle simple à nombre fixé.[/reponse]
[/qcm]

[solution]
Cette affirmation est vraie. La boucle « répéter $5$ fois » fait $5$ passages.
[/solution]
[/etape]

[etape]
Affirmation : Pour tracer un carré avec une boucle, l'angle de rotation est de $90°$.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Bonne réponse !
Pour un polygone régulier à $n$ côtés, l'angle de rotation extérieur est $\dfrac{360}{n}$. Pour un carré, $\dfrac{360}{4} = 90°$.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Rappel : dans Scratch, le lutin tourne de l'angle extérieur de la figure, qui vaut $\dfrac{360}{n}$ pour un polygone régulier à $n$ côtés. Pour un carré, c'est bien $90°$.[/reponse]
[/qcm]

[solution]
Cette affirmation est vraie. Pour un carré, l'angle de rotation est $\dfrac{360}{4} = 90°$.
[/solution]
[/etape]

[etape]
Affirmation : Pour tracer un triangle équilatéral, le lutin doit tourner de $60°$ après chaque côté.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Bravo !
$60°$ est l'angle intérieur d'un triangle équilatéral. Or le lutin tourne de l'angle extérieur, qui vaut $180° - 60° = 120°$ (ou $\dfrac{360}{3}$).[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Le piège ici est de confondre angle intérieur et angle extérieur. Le lutin tourne de l'angle extérieur : $\dfrac{360}{3} = 120°$, pas $60°$.[/reponse]
[/qcm]

[solution]
Cette affirmation est fausse. Le lutin tourne de l'angle extérieur, qui vaut $120°$ pour un triangle équilatéral.
[/solution]
[/etape]

[etape]
On considère le programme suivant :

Programme Scratch traçage avec angle de 30 degrés

Affirmation : Le lutin trace un polygone régulier à $12$ côtés.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]C'est bien ça !
La boucle se répète $12$ fois et la rotation totale est $12 \times 30 = 360°$ : le lutin retrouve son orientation de départ et ferme la figure. C'est un dodécagone régulier (polygone à $12$ côtés).[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Rappel : pour qu'une figure tracée par boucle soit un polygone régulier fermé, il faut (nombre de tours) × (angle) = $360°$. Ici $12 \times 30 = 360$, donc $12$ côtés réguliers.[/reponse]
[/qcm]

[solution]
Cette affirmation est vraie. La rotation totale est $12 \times 30 = 360°$ : c'est un polygone régulier à $12$ côtés.
[/solution]
[/etape]

[etape]
Affirmation : Une boucle « répéter $0$ fois » exécute une fois son contenu.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Tu as raison !
« Répéter $0$ fois » signifie ne pas exécuter du tout le contenu de la boucle. Le programme passe directement à l'instruction suivante.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Attention, « répéter $N$ fois » avec $N = 0$ ignore complètement le bloc d'instructions : aucune exécution n'a lieu.[/reponse]
[/qcm]

[solution]
Cette affirmation est fausse. « Répéter $0$ fois » n'exécute pas du tout le contenu de la boucle.
[/solution]
[/etape]

[etape]
Affirmation : Avec deux boucles imbriquées « répéter $a$ fois » à l'extérieur et « répéter $b$ fois » à l'intérieur, le bloc le plus interne est exécuté $a + b$ fois au total.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Excellent !
À chacun des $a$ passages de la boucle extérieure, la boucle intérieure exécute son contenu $b$ fois. Le total est donc $a \times b$ exécutions, et non $a + b$.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Le piège est d'additionner au lieu de multiplier. Avec deux boucles imbriquées, le bloc interne s'exécute (nombre extérieur) × (nombre intérieur) = $a \times b$ fois.[/reponse]
[/qcm]

[solution]
Cette affirmation est fausse. Le bloc le plus interne est exécuté $a \times b$ fois (le produit, pas la somme).
[/solution]
[/etape]

QCM : Boucles répéter et tracé de figures

[enonce]
Ce QCM porte sur les boucles « répéter ... fois » et le tracé de figures géométriques avec Scratch. Pour chaque question, choisir la bonne réponse parmi les 4 propositions.
[/enonce]

[etape]
A quoi sert le bloc répéter ... fois dans Scratch ?
[qcm]
[option]A créer une variable.[/option]
[option]A tester une condition.[/option]
[option correct="true"]A exécuter plusieurs fois un même groupe d'instructions.[/option]
[option]A déplacer le lutin de plusieurs pas d'un coup.[/option]
[reponse statut="correct"]Exact !
Le bloc « répéter ... fois » est une boucle : il exécute les instructions placées à l'intérieur le nombre de fois indiqué.[/reponse]
[reponse motif="A créer une variable."]Non.
Pour créer une variable, on utilise le menu Variables. Le bloc « répéter ... fois » fait partie du menu Contrôle.[/reponse]
[reponse motif="A tester une condition."]Non.
Pour tester une condition, on utilise « si ... alors » ou « si ... alors ... sinon ». Le bloc « répéter ... fois » sert à répéter un nombre fixé d'instructions.[/reponse]
[reponse motif="A déplacer le lutin de plusieurs pas d'un coup."]Non.
Pour déplacer le lutin, on utilise « avancer de ... pas ». Le bloc « répéter » sert à répéter un groupe d'instructions, qui peut contenir des déplacements ou non.[/reponse]
[reponse statut="incorrect"]Non.
Le bloc « répéter ... fois » exécute plusieurs fois les instructions qu'il contient.[/reponse]
[/qcm]
[/etape]

[etape]
On considère le programme suivant :

Programme Scratch traçant un polygone régulier

Quelle figure le lutin trace-t-il ?
[qcm]
[option]Un carré.[/option]
[option]Un pentagone régulier (5 côtés).[/option]
[option correct="true"]Un hexagone régulier (6 côtés).[/option]
[option]Un cercle.[/option]
[reponse statut="correct"]Bonne réponse !
La boucle se répète $6$ fois et l'angle de rotation est $60°$. On vérifie : $\dfrac{360}{60} = 6$, donc le lutin revient au point de départ après $6$ côtés. C'est un hexagone régulier.[/reponse]
[reponse motif="Un carré."]Non.
Un carré aurait $4$ côtés et un angle de rotation de $90°$. Ici, la boucle se répète $6$ fois et l'angle est $60°$.[/reponse]
[reponse motif="Un pentagone régulier (5 côtés)."]Non.
Un pentagone régulier nécessiterait $5$ côtés et un angle de $\dfrac{360}{5} = 72°$. Ici, on a $6$ côtés et $60°$.[/reponse]
[reponse motif="Un cercle."]Non.
Un cercle s'obtient avec un très grand nombre de côtés très courts (par exemple $360$ fois avec un angle de $1°$). Ici, le lutin trace un polygone à $6$ côtés visibles.[/reponse]
[reponse statut="incorrect"]Non.
$\dfrac{360}{60} = 6$ : le lutin trace un hexagone régulier.[/reponse]
[/qcm]
[/etape]

[etape]
On veut tracer un pentagone régulier (5 côtés) avec une boucle « répéter $5$ fois ». Quel angle de rotation faut-il choisir ?
[qcm]
[option]$60°$[/option]
[option correct="true"]$72°$[/option]
[option]$108°$[/option]
[option]$45°$[/option]
[reponse statut="correct"]Bravo !
Pour un polygone régulier à $n$ côtés, l'angle de rotation extérieur est $\dfrac{360}{n}$. Ici $\dfrac{360}{5} = 72°$.[/reponse]
[reponse motif="$60°$"]Non.
$60°$ correspondrait à $\dfrac{360}{60} = 6$ côtés, donc à un hexagone. Pour un pentagone, il faut diviser $360$ par $5$.[/reponse]
[reponse motif="$108°$"]Non.
Attention, $108°$ est l'angle intérieur d'un pentagone régulier. Dans Scratch, le lutin tourne de l'angle extérieur, qui vaut $180° - 108° = 72°$.[/reponse]
[reponse motif="$45°$"]Non.
$45°$ correspondrait à $\dfrac{360}{45} = 8$ côtés (un octogone). Pour un pentagone, l'angle est différent.[/reponse]
[reponse statut="incorrect"]Non.
L'angle de rotation pour un pentagone régulier est $\dfrac{360}{5} = 72°$.[/reponse]
[/qcm]
[/etape]

[etape]
On veut tracer un triangle équilatéral. La boucle est « répéter $3$ fois ». Que doit contenir cette boucle pour que le tracé soit correct ?
[qcm]
[option]avancer de 100 pas, puis tourner de 60 degrés[/option]
[option correct="true"]avancer de 100 pas, puis tourner de 120 degrés[/option]
[option]avancer de 100 pas, puis tourner de 90 degrés[/option]
[option]avancer de 100 pas, puis tourner de 180 degrés[/option]
[reponse statut="correct"]C'est bien ça !
Pour un polygone régulier à $n$ côtés, le lutin tourne d'un angle $\dfrac{360}{n}$ après chaque côté. Pour un triangle équilatéral, $n = 3$, donc l'angle est $\dfrac{360}{3} = 120°$.[/reponse]
[reponse motif="avancer de 100 pas, puis tourner de 60 degrés"]Non.
$60°$ est l'angle intérieur d'un triangle équilatéral. Le lutin tourne de l'angle extérieur, qui vaut $180° - 60° = 120°$.[/reponse]
[reponse motif="avancer de 100 pas, puis tourner de 90 degrés"]Non.
Avec un angle de $90°$, on tracerait un carré ($\dfrac{360}{90} = 4$ côtés). Pour un triangle, il faut un autre angle.[/reponse]
[reponse motif="avancer de 100 pas, puis tourner de 180 degrés"]Non.
Avec une rotation de $180°$, le lutin ferait demi-tour à chaque pas et resterait sur la même droite : aucun triangle ne serait tracé.[/reponse]
[reponse statut="incorrect"]Non.
Pour un triangle équilatéral, l'angle de rotation est $\dfrac{360}{3} = 120°$.[/reponse]
[/qcm]
[/etape]

[etape]
On considère le programme suivant :

Programme Scratch traçant un polygone à 12 côtés

Combien de fois le lutin tourne-t-il, et quel angle total parcourt-il ?
[qcm]
[option]$12$ fois, $30°$ au total.[/option]
[option correct="true"]$12$ fois, $360°$ au total.[/option]
[option]$1$ fois, $30°$ au total.[/option]
[option]$30$ fois, $12°$ au total.[/option]
[reponse statut="correct"]Tu as raison !
La boucle se répète $12$ fois et chaque tour fait pivoter le lutin de $30°$. L'angle total est $12 \times 30 = 360°$ : le lutin revient à son orientation de départ.[/reponse]
[reponse motif="$12$ fois, $30°$ au total."]Non.
Le lutin tourne de $30°$ à chaque passage de la boucle, mais il y a $12$ passages. Il faut multiplier : $12 \times 30 = 360°$.[/reponse]
[reponse motif="$1$ fois, $30°$ au total."]Non.
La boucle « répéter $12$ fois » exécute son contenu $12$ fois, pas une seule. Le bloc « tourner » est donc utilisé $12$ fois.[/reponse]
[reponse motif="$30$ fois, $12°$ au total."]Non.
Attention à ne pas inverser le nombre de répétitions et l'angle. Ici, la boucle se répète $12$ fois et chaque rotation fait $30°$.[/reponse]
[reponse statut="incorrect"]Non.
Le lutin tourne $12$ fois (une fois par tour de boucle) avec un angle de $30°$ : total $12 \times 30 = 360°$.[/reponse]
[/qcm]
[/etape]

[etape]
On veut tracer un carré de côté $80$ pas en utilisant une boucle « répéter $4$ fois ». Le programmeur a écrit le programme suivant :

Programme Scratch incorrect tentant de tracer un carré

Le programme trace-t-il correctement un carré ?
[qcm]
[option]Non, l'angle devrait être $60°$ pour un carré.[/option]
[option correct="true"]Oui : la boucle est correcte, peu importe l'ordre des deux instructions à l'intérieur.[/option]
[option]Non, il faut « avancer » avant « tourner » pour obtenir un carré.[/option]
[option]Non, il manque une cinquième répétition pour fermer la figure.[/option]
[reponse statut="correct"]Excellent !
Que l'on tourne avant ou après avoir avancé, le lutin parcourt bien $4$ côtés de $80$ pas et tourne $4$ fois de $90°$ : la figure tracée est un carré (orienté différemment selon l'ordre, mais carré).[/reponse]
[reponse motif="Non, l'angle devrait être $60°$ pour un carré."]Non.
Pour un carré, l'angle de rotation est $\dfrac{360}{4} = 90°$. C'est bien la valeur utilisée dans le programme.[/reponse]
[reponse motif="Non, il faut « avancer » avant « tourner » pour obtenir un carré."]Non.
L'ordre change uniquement l'orientation initiale du carré tracé, mais la figure obtenue est toujours un carré. La boucle exécute fidèlement les deux blocs $4$ fois.[/reponse]
[reponse motif="Non, il manque une cinquième répétition pour fermer la figure."]Non.
Avec $4$ côtés et $4$ rotations de $90°$, l'angle total est $4 \times 90 = 360°$ : le lutin revient à son orientation initiale et la figure est bien fermée.[/reponse]
[reponse statut="incorrect"]Non.
La boucle est correcte. L'ordre interne (tourner / avancer) modifie seulement l'orientation du carré, pas la figure obtenue.[/reponse]
[/qcm]
[/etape]