Vrai/Faux : Idées reçues sur Scratch

[enonce]
Pour chaque affirmation suivante portant sur les erreurs fréquentes en programmation Scratch, indiquer si elle est Vraie ou Fausse.
[/enonce]

[etape]
Affirmation : Une variable contient la valeur $10$. Après le bloc « mettre la variable à $5$ », elle contient $5$.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Exact !
Le bloc « mettre ... à ... » écrase l'ancienne valeur : peu importe ce que contenait la variable, elle prend désormais la nouvelle valeur indiquée.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Attention à ne pas confondre « mettre à » et « ajouter à ». Le bloc « mettre ... à ... » ne tient pas compte de la valeur précédente : il la remplace.[/reponse]
[/qcm]

[solution]
Cette affirmation est vraie. Le bloc « mettre ... à ... » remplace l'ancienne valeur par la nouvelle ; la variable contient donc $5$.
[/solution]
[/etape]

[etape]
Affirmation : Une variable contient la valeur $10$. Après le bloc « ajouter $3$ à la variable », elle contient $3$.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Bonne réponse !
Le bloc « ajouter ... à ... » ne remplace pas la valeur : il l'augmente. La variable contient donc $10 + 3$, c'est-à-dire $13$.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Il ne faut pas confondre « ajouter à » et « mettre à ». « Ajouter ... à ... » cumule : on garde la valeur existante et on lui ajoute le nombre indiqué.[/reponse]
[/qcm]

[solution]
Cette affirmation est fausse. Le bloc « ajouter ... à ... » cumule : la variable passe de $10$ à $10 + 3 = 13$, et non à $3$.
[/solution]
[/etape]

[etape]
Affirmation : Pour tracer un hexagone régulier (6 côtés) à la boucle, l'angle à placer dans le bloc « tourner de ... degrés » est $120^{\circ}$, car c'est l'angle d'un sommet de l'hexagone.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]C'est bien ça !
L'angle du bloc « tourner de » n'est pas l'angle intérieur du polygone, mais l'angle dont le lutin pivote en arrivant au sommet. Pour un polygone régulier à $n$ côtés, il vaut $\dfrac{360}{n}$ degrés, soit ici $\dfrac{360}{6} = 60^{\circ}$.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Le piège est de prendre l'angle d'un coin du polygone. Or le lutin ne tourne pas de l'angle intérieur : il pivote de l'angle extérieur, donné par $\dfrac{360}{n}$.[/reponse]
[/qcm]

[solution]
Cette affirmation est fausse. L'angle de rotation vaut $\dfrac{360}{6} = 60^{\circ}$, et non $120^{\circ}$ : ce n'est pas l'angle intérieur du polygone mais l'angle dont le lutin pivote à chaque sommet.
[/solution]
[/etape]

[etape]
Affirmation : Dans une instruction conditionnelle, la condition « réponse $=$ $0$ » se contente de comparer la valeur de la variable à $0$, sans la modifier.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Bravo !
Dans un test, le symbole $=$ pose une question (« la valeur vaut-elle $0$ ? ») dont la réponse est « vrai » ou « faux ». Il ne range aucune valeur dans la variable : pour cela, il faudrait le bloc « mettre ... à ... ».[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Il ne faut pas confondre tester et affecter. Dans une condition, le $=$ compare deux valeurs et renvoie « vrai » ou « faux » ; affecter une valeur se fait avec un bloc du menu Variables.[/reponse]
[/qcm]

[solution]
Cette affirmation est vraie. Dans une condition, le symbole $=$ sert à tester une égalité (réponse « vrai » ou « faux ») ; il ne modifie pas la variable.
[/solution]
[/etape]

[etape]
Affirmation : On peut échanger l'ordre de deux instructions « mettre la variable à $3$ » et « ajouter $5$ à la variable » sans changer la valeur finale.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Tu as raison !
L'ordre change le résultat. Dans un ordre, on obtient $3 + 5 = 8$ ; dans l'autre, le bloc « mettre à $3$ » efface tout ce qui précède et la variable finit à $3$.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Le piège est de croire que les instructions sont indépendantes. Dans un algorithme, elles s'exécutent l'une après l'autre : intervertir deux blocs modifie en général ce qui est obtenu.[/reponse]
[/qcm]

[solution]
Cette affirmation est fausse. Selon l'ordre, on obtient $8$ ou bien $3$ : l'ordre des instructions est déterminant dans un algorithme.
[/solution]
[/etape]

[etape]
Affirmation : Avant une boucle qui accumule des nombres dans une variable « somme », il faut donner à cette variable une valeur de départ.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Parfait !
Sans initialisation, la variable garde la valeur d'une exécution précédente, et le total accumulé est faux. On la met donc à $0$ avant d'entrer dans la boucle.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Rappel : une variable qui n'a pas reçu de valeur de départ conserve son ancien contenu. Une variable d'accumulation doit être préparée avant la boucle pour repartir d'une base sûre.[/reponse]
[/qcm]

[solution]
Cette affirmation est vraie. Une variable d'accumulation doit être initialisée (par exemple à $0$) avant la boucle, sinon elle conserve sa valeur précédente et le résultat est faux.
[/solution]
[/etape]