Programme Scratch : boucle et condition

[enonce]
On considère le programme Scratch suivant :

Programme Scratch : boucle répéter 10 fois avec condition si n fois n est inférieur à 50

Suivre les étapes pour déterminer ce que dit le lutin à la fin du programme.
[/enonce]

[etape]
La boucle contient une condition « si $n \times n < 50$ alors ». Quel est son rôle ?
[qcm]
[option]Elle arrête la boucle dès que $n \times n$ dépasse $50$[/option]
[option]Elle empêche $n$ de dépasser $50$[/option]
[option correct="true"]Elle n'ajoute $n \times n$ à somme que si ce carré est inférieur à $50$[/option]
[option]Elle ajoute $50$ à somme quand la condition est fausse[/option]
[reponse statut="correct"]Correct !
La condition filtre les valeurs : seuls les carrés strictement inférieurs à $50$ sont ajoutés à somme. Quand $n \times n \geqslant 50$, le programme passe directement à l'instruction suivante sans modifier somme.[/reponse]
[reponse motif="Elle arrête la boucle dès que $n \times n$ dépasse $50$"]Non, la boucle ne s'arrête pas.
Un bloc « si ... alors » à l'intérieur d'une boucle ne stoppe pas la boucle. Les $10$ tours s'exécutent toujours, mais certains n'ajoutent rien à somme.[/reponse]
[reponse motif="Elle empêche $n$ de dépasser $50$"]Non.
Le bloc « ajouter à n 1 » est en dehors du « si ... alors » : il s'exécute à chaque tour, que la condition soit vraie ou fausse. La variable $n$ n'est pas bloquée par la condition.[/reponse]
[reponse motif="Elle ajoute $50$ à somme quand la condition est fausse"]Non.
Quand la condition est fausse, rien n'est ajouté à somme. Il n'y a pas de bloc « sinon » dans ce programme.[/reponse]
[reponse statut="incorrect"]Non.
Observer que le bloc « ajouter à somme » est à l'intérieur du « si ... alors », mais « ajouter à n 1 » est en dehors. La boucle tourne toujours $10$ fois.[/reponse]
[/qcm]
[/etape]

[etape]
On commence le déroulement du programme.

Tour 1 : $n = 1$, $1^2 = 1 < 50$, donc somme $= 0 + 1 = 1$, puis $n = 2$.
Tour 2 : $n = 2$, $2^2 = 4 < 50$, donc somme $= 1 + 4 = 5$, puis $n = 3$.
Tour 3 : $n = 3$, $3^2 = 9 < 50$, donc somme $= 5 + 9 = 14$, puis $n = 4$.

Calculer la valeur de somme après le quatrième tour.

somme $=$ [[s4]]
[math id="s4" attendu="30"]
[reponse statut="correct"]Bonne réponse !
Au quatrième tour : $4^2 = 16 < 50$, donc somme $= 14 + 16 = 30$.[/reponse]
[reponse motif="18"]Attention, on ajoute le carré de $n$, c'est-à-dire $n \times n$, pas $n$ lui-même.
Pour $n = 4$, calculer $4 \times 4$ puis l'ajouter à la somme.[/reponse]
[reponse motif="16"]La variable somme ne repart pas de $0$ : elle accumule les valeurs.
Somme valait $14$ après le tour 3, et on y ajoute le carré de $4$.[/reponse]
[reponse statut="incorrect"]La somme valait $14$ après le tour 3. Au tour 4, $n = 4$ et $4^2 = 16$.
Comme $16 < 50$, on ajoute $16$ à somme.[/reponse]
[aide essai="2"]La somme vaut $14$ après le tour 3. Au tour 4, il faut calculer $4^2$ et l'ajouter.[/aide]
[aide essai="3"]Calculer $14 + 4^2 = 14 + 16$.[/aide]
[/math]
[solution]Tour 4 : $n = 4$, $4^2 = 16 < 50$, somme $= 14 + 16 = 30$.[/solution]
[/etape]

[etape]
La condition ajoute $n^2$ à somme uniquement si $n^2 < 50$.

Quelle est la plus petite valeur de $n$ pour laquelle le carré n'est plus ajouté à somme ?

$n =$ [[nseuil]]
[math id="nseuil" attendu="8"]
[reponse statut="correct"]Exactement !
On a $7^2 = 49 < 50$ (la condition est encore vraie) et $8^2 = 64 \geqslant 50$ (la condition est fausse). Le premier $n$ qui n'ajoute rien est $n = 8$.[/reponse]
[reponse motif="7"]Presque, mais $7^2 = 49$ est strictement inférieur à $50$.
La condition est donc encore vraie pour $n = 7$. Tester la valeur suivante.[/reponse]
[reponse motif="50"]Attention, on cherche la valeur de $n$, pas de $n^2$.
Trouver le plus petit entier $n$ tel que $n^2 \geqslant 50$.[/reponse]
[reponse motif="9"]Vérifier : $8^2 = 64 \geqslant 50$, donc la condition est déjà fausse pour $n = 8$.
Comparer $7^2$ et $8^2$ avec $50$.[/reponse]
[reponse statut="incorrect"]Calculer les carrés successifs : $6^2 = 36$, $7^2 = 49$, $8^2 = 64$.
Lequel est le premier à atteindre ou dépasser $50$ ?[/reponse]
[aide essai="2"]Calculer les carrés des entiers à partir de $6$ : $6^2 = 36$, $7^2 = 49$, $8^2 = \ldots$[/aide]
[aide essai="3"]$7^2 = 49 < 50$ (condition vraie). $8^2 = 64 \geqslant 50$ (condition fausse).[/aide]
[/math]
[solution]$7^2 = 49 < 50$ : le carré est ajouté.
$8^2 = 64 \geqslant 50$ : le carré n'est pas ajouté.
La première valeur de $n$ qui n'ajoute rien est $n = 8$.[/solution]
[/etape]

[etape]
Les tours 8, 9 et 10 (pour $n = 8, 9, 10$) n'ajoutent rien car $n^2 \geqslant 50$.

Combien de carrés sont ajoutés à somme au total ?

Nombre de carrés ajoutés : [[nb]]
[math id="nb" attendu="7"]
[reponse statut="correct"]Bravo !
Les carrés ajoutés sont ceux de $n = 1$ à $n = 7$, soit $7$ carrés au total.[/reponse]
[reponse motif="8"]La condition est fausse dès $n = 8$, donc le carré de $8$ n'est pas ajouté.
Combien de valeurs de $n$ satisfont $n^2 < 50$ ?[/reponse]
[reponse motif="10"]La boucle fait bien $10$ tours, mais la condition filtre certains tours.
Seuls les tours où $n^2 < 50$ ajoutent un carré à somme.[/reponse]
[reponse motif="6"]Le tour $n = 7$ ajoute bien un carré, car $7^2 = 49 < 50$.
Compter les valeurs de $n$ de $1$ jusqu'au dernier qui vérifie la condition.[/reponse]
[reponse statut="incorrect"]Les valeurs de $n$ qui vérifient $n^2 < 50$ vont de $1$ à $7$.
Compter le nombre d'entiers dans cet intervalle.[/reponse]
[aide essai="2"]La condition est vraie pour $n = 1, 2, 3, 4, 5, 6, 7$ et fausse à partir de $n = 8$.[/aide]
[aide essai="3"]De $n = 1$ à $n = 7$, combien y a-t-il d'entiers ?[/aide]
[/math]
[solution]La condition $n^2 < 50$ est vérifiée pour $n = 1, 2, 3, 4, 5, 6, 7$.
Il y a $7$ carrés ajoutés à somme.[/solution]
[/etape]

[etape]
Les $7$ carrés ajoutés sont $1^2, 2^2, 3^2, 4^2, 5^2, 6^2$ et $7^2$.

Que dit le lutin à la fin du programme ?

Le lutin dit [[total]]
[math id="total" attendu="140"]
[reponse statut="correct"]Tu as raison !
$1 + 4 + 9 + 16 + 25 + 36 + 49 = 140$.[/reponse]
[reponse motif="91"]Il manque le dernier carré : $7^2 = 49$.
Reprendre la somme en ajoutant ce terme après $36$.[/reponse]
[reponse motif="204"]Le carré $8^2 = 64$ n'est pas ajouté car $64 \geqslant 50$.
La somme s'arrête à $7^2 = 49$. Recalculer sans ce terme.[/reponse]
[reponse motif="28"]Attention, on additionne les carrés de $n$, pas les valeurs de $n$.
Calculer $1^2 + 2^2 + 3^2 + \ldots + 7^2$.[/reponse]
[reponse statut="incorrect"]Additionner les sept carrés : $1 + 4 + 9 + 16 + 25 + 36 + 49$.
Procéder par étapes en cumulant les sommes partielles.[/reponse]
[aide essai="2"]La somme est $1 + 4 + 9 + 16 + 25 + 36 + 49$. Calculer par étapes : $1 + 4 = 5$, $5 + 9 = 14$, etc.[/aide]
[aide essai="3"]Les sommes partielles sont $5$, $14$, $30$, $55$, $91$. Il reste à ajouter $7^2$.[/aide]
[/math]
[solution]$1 + 4 + 9 + 16 + 25 + 36 + 49 = 140$.
Le lutin dit $140$.[/solution]
[/etape]

[etape]
Si on remplace $50$ par $20$ dans la condition, quels sont les carrés ajoutés à somme ?
[qcm]
[option]$1$, $4$ et $9$[/option]
[option correct="true"]$1$, $4$, $9$ et $16$[/option]
[option]$1$, $4$, $9$, $16$ et $25$[/option]
[option]$1$ et $4$[/option]
[reponse statut="correct"]C'est bien ça !
On vérifie : $4^2 = 16 < 20$ (ajouté) et $5^2 = 25 \geqslant 20$ (pas ajouté).
Les carrés ajoutés sont $1$, $4$, $9$ et $16$, soit une somme de $30$.[/reponse]
[reponse motif="$1$, $4$ et $9$"]Non, il en manque un.
Vérifier : $4^2 = 16$. Est-ce que $16 < 20$ ? Si oui, ce carré est ajouté.[/reponse]
[reponse motif="$1$, $4$, $9$, $16$ et $25$"]Non.
$5^2 = 25$ et $25 \geqslant 20$ : la condition est fausse, donc $25$ n'est pas ajouté.[/reponse]
[reponse motif="$1$ et $4$"]Non.
$3^2 = 9 < 20$ : la condition est vraie, donc $9$ est aussi ajouté. Continuer à vérifier les carrés suivants.[/reponse]
[reponse statut="incorrect"]Non.
Tester chaque carré : $1, 4, 9, 16, 25, \ldots$ et garder ceux qui sont strictement inférieurs à $20$.[/reponse]
[/qcm]
[/etape]

QCM : Conditions et boucles dans Scratch

[enonce]
Ce QCM porte sur les conditions et les boucles dans Scratch. Pour chaque question, lire attentivement le programme proposé puis choisir la bonne réponse parmi les 4 propositions.
[/enonce]

[etape]
On considère le programme Scratch suivant, dans lequel l'utilisateur entre le nombre $0$ :

Programme Scratch : condition si alors sinon avec test de signe

Si l'utilisateur entre $0$, que dit le lutin ?
[qcm]
[option]« positif »[/option]
[option correct="true"]« négatif ou nul »[/option]
[option]« 0 »[/option]
[option]Rien n'est affiché[/option]
[reponse statut="correct"]Exact !
La condition teste si $0 > 0$, ce qui est faux (car $0$ n'est pas strictement positif). Le programme exécute le bloc « sinon » et affiche « négatif ou nul ».[/reponse]
[reponse motif="« positif »"]Non.
Attention : la condition est $n > 0$ (strictement supérieur). Comme $0$ n'est pas strictement supérieur à $0$, la condition est fausse et le programme passe au « sinon ».[/reponse]
[reponse motif="« 0 »"]Non.
Le programme n'affiche pas la valeur de la variable. Il affiche l'un des deux messages prévus dans le « si ... alors ... sinon », selon que la condition est vraie ou fausse.[/reponse]
[reponse motif="Rien n'est affiché"]Non.
La structure « si ... alors ... sinon » couvre les deux cas possibles. L'un des deux messages sera toujours affiché.[/reponse]
[reponse statut="incorrect"]Non.
La condition $0 > 0$ est fausse, donc le bloc « sinon » s'exécute : le lutin dit « négatif ou nul ».[/reponse]
[/qcm]
[/etape]

[etape]
On considère le programme Scratch suivant :

Programme Scratch : boucle répéter jusqu'à avec doublement

Que dit le lutin ?
[qcm]
[option]$32$[/option]
[option]$50$[/option]
[option correct="true"]$64$[/option]
[option]$128$[/option]
[reponse statut="correct"]Bonne réponse !
On double $n$ tant qu'il ne dépasse pas $50$ : $n = 1, 2, 4, 8, 16, 32, 64$.
Quand $n = 64$, la condition $64 > 50$ est vraie : la boucle s'arrête et le lutin dit $64$.[/reponse]
[reponse motif="$32$"]Non.
Quand $n = 32$, la condition $32 > 50$ est encore fausse. La boucle continue et double $n$ une fois de plus : $32 \times 2 = 64$.[/reponse]
[reponse motif="$50$"]Non.
La boucle ne s'arrête pas à exactement $50$. Les valeurs de $n$ sont des puissances de $2$ : $1, 2, 4, 8, 16, 32, 64$. La première à dépasser $50$ est $64$.[/reponse]
[reponse motif="$128$"]Non.
La boucle s'arrête dès que $n > 50$. Quand $n = 64$, la condition est déjà vraie : on ne multiplie pas par $2$ une fois de plus.[/reponse]
[reponse statut="incorrect"]Non.
Les valeurs successives de $n$ sont : $1, 2, 4, 8, 16, 32, 64$. Quand $n = 64 > 50$, la boucle s'arrête.[/reponse]
[/qcm]
[/etape]

[etape]
On considère le programme Scratch suivant :

Programme Scratch : tracé d'un octogone régulier

Quelle figure géométrique est tracée ?
[qcm]
[option]Un hexagone (6 côtés)[/option]
[option correct="true"]Un octogone (8 côtés)[/option]
[option]Un décagone (10 côtés)[/option]
[option]Un carré (4 côtés)[/option]
[reponse statut="correct"]C'est bien ça !
La boucle trace $8$ côtés avec un angle de $45°$. On vérifie : $\dfrac{360}{45} = 8$.
Le lutin revient au point de départ après $8$ côtés : c'est un octogone régulier.[/reponse]
[reponse motif="Un hexagone (6 côtés)"]Non.
Un hexagone régulier nécessite un angle de $\dfrac{360}{6} = 60°$. Ici l'angle est $45°$, ce qui correspond à $\dfrac{360}{45} = 8$ côtés.[/reponse]
[reponse motif="Un décagone (10 côtés)"]Non.
Un décagone régulier nécessite un angle de $\dfrac{360}{10} = 36°$. Ici l'angle est $45°$, ce qui correspond à $\dfrac{360}{45} = 8$ côtés.[/reponse]
[reponse motif="Un carré (4 côtés)"]Non.
L'angle de $45°$ ne correspond pas à un carré (qui nécessite $90°$). Ici, $\dfrac{360}{45} = 8$ : le polygone a $8$ côtés.[/reponse]
[reponse statut="incorrect"]Non.
Pour trouver le nombre de côtés : $\dfrac{360}{45} = 8$. C'est un octogone régulier.[/reponse]
[/qcm]
[/etape]

[etape]
On considère le programme Scratch suivant :

Programme Scratch : boucle avec accumulation de nombres impairs

Que dit le lutin ?
[qcm]
[option]$10$[/option]
[option correct="true"]$16$[/option]
[option]$8$[/option]
[option]$9$[/option]
[reponse statut="correct"]Bravo !
A chaque tour, on ajoute $i$ à $s$ puis on augmente $i$ de $2$ :
Tour 1 : $i = 1$, $s = 0 + 1 = 1$, puis $i = 3$.
Tour 2 : $i = 3$, $s = 1 + 3 = 4$, puis $i = 5$.
Tour 3 : $i = 5$, $s = 4 + 5 = 9$, puis $i = 7$.
Tour 4 : $i = 7$, $s = 9 + 7 = 16$, puis $i = 9$.
Le lutin dit $16$ (la somme $1 + 3 + 5 + 7$).[/reponse]
[reponse motif="$10$"]Non.
Attention, la variable $i$ ne vaut pas $1, 2, 3, 4$. Elle commence à $1$ et augmente de $2$ à chaque tour : $i = 1, 3, 5, 7$. La somme est $1 + 3 + 5 + 7$.[/reponse]
[reponse motif="$8$"]Non.
Il faut dérouler la boucle pas à pas. La variable $i$ prend les valeurs $1, 3, 5, 7$ (elle augmente de $2$, pas de $1$). La somme est $1 + 3 + 5 + 7$.[/reponse]
[reponse motif="$9$"]Non.
La boucle fait bien $4$ tours, pas $3$. Il faut additionner les quatre valeurs de $i$ : $1 + 3 + 5 + 7$.[/reponse]
[reponse statut="incorrect"]Non.
La variable $i$ prend les valeurs $1, 3, 5, 7$ et la somme vaut $s = 1 + 3 + 5 + 7 = 16$.[/reponse]
[/qcm]
[/etape]

[etape]
On considère le programme Scratch suivant :

Programme Scratch : échange de deux variables

Que dit le lutin ?
[qcm]
[option]$5$[/option]
[option]$7$[/option]
[option correct="true"]$2$[/option]
[option]$3$[/option]
[reponse statut="correct"]Exactement !
Suivons pas à pas : $x = 2$, $y = 5$, puis $x = 2 + 5 = 7$, puis $y = 7 - 5 = 2$.
Le lutin dit $2$ (l'ancienne valeur de $x$).[/reponse]
[reponse motif="$5$"]Non.
La variable $y$ est modifiée par la dernière instruction. Après $x = 2 + 5 = 7$, on calcule $y = x - y = 7 - 5$.[/reponse]
[reponse motif="$7$"]Non.
Le lutin affiche la variable $y$, pas $x$. Après $x = 7$, on calcule $y = x - y = 7 - 5$.[/reponse]
[reponse motif="$3$"]Non.
Attention, à l'avant-dernière étape, $x$ a déjà changé de valeur. Il faut utiliser $x = 7$ (pas $x = 2$) pour calculer $y = x - y$.[/reponse]
[reponse statut="incorrect"]Non.
Pas à pas : $x = 2$, $y = 5$, $x = 7$, $y = 7 - 5 = 2$. Le lutin dit $2$.[/reponse]
[/qcm]
[/etape]

[etape]
On considère le programme Scratch suivant, dans lequel l'utilisateur entre la note $8$ :

Programme Scratch : conditions imbriquées pour évaluation

Si l'utilisateur entre la note $8$, que dit le lutin ?
[qcm]
[option]« Admis »[/option]
[option correct="true"]« Rattrapage »[/option]
[option]« Refusé »[/option]
[option]« Admis » puis « Rattrapage »[/option]
[reponse statut="correct"]Tu as raison !
Première condition : $8 > 9$ est faux, on passe au « sinon ».
Deuxième condition : $8 > 7$ est vrai, le lutin dit « Rattrapage ».[/reponse]
[reponse motif="« Admis »"]Non.
La première condition teste $8 > 9$, ce qui est faux. Le programme passe au « sinon » et teste la deuxième condition.[/reponse]
[reponse motif="« Refusé »"]Non.
La deuxième condition teste $8 > 7$, ce qui est vrai. Le programme n'arrive pas jusqu'au dernier « sinon ».[/reponse]
[reponse motif="« Admis » puis « Rattrapage »"]Non.
Dans une structure « si ... alors ... sinon », on n'exécute qu'une seule branche, jamais les deux en même temps.[/reponse]
[reponse statut="incorrect"]Non.
$8 > 9$ est faux (pas « Admis »), mais $8 > 7$ est vrai : le lutin dit « Rattrapage ».[/reponse]
[/qcm]
[/etape]

Vrai/Faux : Conditions dans Scratch

[enonce]
Pour chaque affirmation suivante, lire attentivement le programme Scratch proposé puis indiquer si l'affirmation est Vraie ou Fausse.
[/enonce]

[etape]
On considère le programme Scratch suivant :

Programme Scratch A : condition si alors sinon avec test supérieur

Affirmation : Si l'utilisateur entre le nombre 15, le lutin dit « Grand ».
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Exact !
On a $15 > 10$, la condition est vraie, donc le lutin dit « Grand ».[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Il suffit de tester la condition : $15 > 10$ est vrai.
Le programme exécute alors le bloc « si » et le lutin dit « Grand ».[/reponse]
[/qcm]
[solution]
Cette affirmation est vraie. Comme $15 > 10$, la condition est vérifiée et le lutin dit « Grand ».
[/solution]
[/etape]

[etape]
On considère le même programme que précédemment.

Affirmation : Si l'utilisateur entre le nombre 10, le lutin dit « Grand ».
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Bonne réponse !
La condition teste $n > 10$ (strictement supérieur). Or $10$ n'est pas strictement supérieur à $10$, donc la condition est fausse et le lutin dit « Petit ».[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Attention à la différence entre « supérieur strict » et « supérieur ou égal ».
$10 > 10$ est faux (10 n'est pas strictement supérieur à 10). C'est le bloc « sinon » qui s'exécute : le lutin dit « Petit ».[/reponse]
[/qcm]
[solution]
Cette affirmation est fausse. $10 > 10$ est faux, donc le lutin dit « Petit ».
[/solution]
[/etape]

[etape]
On considère le programme Scratch suivant :

Programme Scratch B : condition si alors avec test d'égalité

Affirmation : Si l'utilisateur entre 1234, le lutin dit « Accès autorisé ».
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]C'est bien ça !
La variable code vaut 1234. La réponse 1234 est égale à code, donc la condition est vraie et le lutin dit « Accès autorisé ».[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
La condition teste si la réponse est égale à la variable code (qui vaut 1234).
Comme $1234 = 1234$, la condition est vraie et le bloc « si » s'exécute.[/reponse]
[/qcm]
[solution]
Cette affirmation est vraie. La réponse 1234 est égale à la variable code (1234), la condition est vérifiée.
[/solution]
[/etape]

[etape]
On considère le même programme que précédemment.

Affirmation : Si l'utilisateur entre 5678, le lutin dit « Accès refusé ».
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Correct !
Le programme utilise un bloc « si ... alors » sans « sinon ». Si la condition est fausse ($5678 \neq 1234$), aucune instruction ne s'exécute : le lutin ne dit rien du tout.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Il ne faut pas confondre « si ... alors » et « si ... alors ... sinon ».
Ce programme n'a pas de bloc « sinon ». Si la réponse est fausse, rien ne se passe : le lutin ne dit rien. Pour afficher « Accès refusé », il faudrait ajouter un bloc « sinon ».[/reponse]
[/qcm]
[solution]
Cette affirmation est fausse. Le programme n'a pas de bloc « sinon » : si la condition est fausse, le lutin ne dit rien.
[/solution]
[/etape]

[etape]
On considère le programme Scratch suivant :

Programme Scratch C : conditions imbriquées si alors sinon pour catégorie d'âge

Affirmation : Si l'utilisateur entre 15, le lutin dit « Adolescent ».
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Bravo !
La première condition $15 < 12$ est fausse, donc on passe au « sinon ». La deuxième condition $15 < 18$ est vraie, donc le lutin dit « Adolescent ».[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Il faut suivre les conditions dans l'ordre.
$15 < 12$ est faux : on va dans le « sinon ». Ensuite, $15 < 18$ est vrai : le lutin dit « Adolescent ».[/reponse]
[/qcm]
[solution]
Cette affirmation est vraie. $15 < 12$ est faux (sinon), puis $15 < 18$ est vrai : le lutin dit « Adolescent ».
[/solution]
[/etape]

[etape]
On considère le même programme que précédemment.

Affirmation : Si l'utilisateur entre 12, le lutin dit « Enfant ».
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Exactement !
La condition $12 < 12$ est fausse (12 n'est pas strictement inférieur à 12). Le programme passe au « sinon », puis teste $12 < 18$ qui est vrai : le lutin dit « Adolescent ».[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Le piège ici est la valeur limite.
$12 < 12$ est faux car 12 n'est pas strictement inférieur à 12. Le programme passe dans le « sinon », où $12 < 18$ est vrai : le lutin dit « Adolescent », pas « Enfant ».[/reponse]
[/qcm]
[solution]
Cette affirmation est fausse. $12 < 12$ est faux, donc le lutin ne dit pas « Enfant ». Il dit « Adolescent » car $12 < 18$.
[/solution]
[/etape]

Vrai/Faux : Raisonner sur un algorithme

[enonce]
Pour chaque affirmation suivante, exécuter mentalement l'algorithme proposé puis indiquer si l'affirmation est Vraie ou Fausse.
[/enonce]

[etape]
On considère l'algorithme suivant :

  • Mettre $a$ à 3
  • Mettre $b$ à $a + 2$
  • Mettre $a$ à $a + b$

Affirmation : A la fin de cet algorithme, la variable $a$ vaut 5.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Correct !
Suivons l'exécution pas à pas :
$a = 3$, puis $b = 3 + 2 = 5$, puis $a = 3 + 5 = 8$.
A la fin, $a$ vaut 8 (et non 5).[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
La troisième instruction modifie la variable $a$.
Exécution : $a = 3$, $b = 3 + 2 = 5$, puis $a = 3 + 5 = 8$.
La valeur 5, c'est celle de $b$, pas de $a$ à la fin.[/reponse]
[/qcm]
[solution]
Cette affirmation est fausse. Après exécution : $a = 3$, $b = 5$, $a = 3 + 5 = 8$. La variable $a$ vaut 8.
[/solution]
[/etape]

[etape]
On considère l'algorithme suivant :

  • Mettre $s$ à 0
  • Répéter 4 fois : ajouter 3 à $s$

Affirmation : A la fin de cet algorithme, la variable $s$ vaut 12.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Bonne réponse !
La boucle ajoute 3 à $s$ quatre fois : $s = 0$, puis $3$, $6$, $9$, $12$.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Il suffit de dérouler la boucle.
La variable $s$ part de 0 et on lui ajoute 3 quatre fois : $0 + 3 + 3 + 3 + 3 = 12$.[/reponse]
[/qcm]
[solution]
Cette affirmation est vraie. La boucle ajoute 3 quatre fois à $s = 0$, donc $s = 4 \times 3 = 12$.
[/solution]
[/etape]

[etape]
On considère l'algorithme suivant :

  • Demander un nombre $n$
  • Si $n < 14$ alors afficher « tarif réduit »
  • Sinon afficher « tarif plein »

Affirmation : Si l'utilisateur entre le nombre 14, l'algorithme affiche « tarif réduit ».
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]C'est bien ça !
La condition est $n < 14$ (strictement inférieur). Or $14$ n'est pas strictement inférieur à $14$, donc c'est le « sinon » qui s'exécute : l'algorithme affiche « tarif plein ».[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Le piège ici est la différence entre « inférieur strict » et « inférieur ou égal ».
La condition teste $n < 14$. Comme $14$ n'est pas strictement inférieur à $14$, la condition est fausse et l'algorithme passe au « sinon » : il affiche « tarif plein ».[/reponse]
[/qcm]
[solution]
Cette affirmation est fausse. La condition $14 < 14$ est fausse, donc l'algorithme affiche « tarif plein ».
[/solution]
[/etape]

[etape]
On considère l'algorithme suivant :

  • Mettre $a$ à 2
  • Répéter 3 fois : mettre $a$ à $a \times 2$

Affirmation : A la fin de cet algorithme, la variable $a$ vaut 16.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Bravo !
On double $a$ trois fois : $a = 2$, puis $4$, $8$, $16$.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Il faut dérouler la boucle pas à pas.
Départ : $a = 2$.
Tour 1 : $a = 2 \times 2 = 4$.
Tour 2 : $a = 4 \times 2 = 8$.
Tour 3 : $a = 8 \times 2 = 16$.
La variable $a$ vaut bien 16.[/reponse]
[/qcm]
[solution]
Cette affirmation est vraie. En doublant 3 fois : $a = 2$, puis $4$, $8$, $16$.
[/solution]
[/etape]

[etape]
On considère l'algorithme suivant :

  • Mettre $n$ à 1
  • Tant que $n < 20$ : ajouter 5 à $n$

Affirmation : La boucle s'exécute 3 fois.
[qcm]
[option]Vrai[/option]
[option correct="true"]Faux[/option]
[reponse statut="correct"]Exact !
Déroulons la boucle :
$n = 1$ (1 < 20, on ajoute 5) : $n = 6$
$n = 6$ (6 < 20, on ajoute 5) : $n = 11$
$n = 11$ (11 < 20, on ajoute 5) : $n = 16$
$n = 16$ (16 < 20, on ajoute 5) : $n = 21$
$n = 21$ (21 < 20 est faux, on s'arrête).
La boucle s'exécute 4 fois, pas 3.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est fausse.
Attention, il faut vérifier la condition à chaque tour.
$n = 1, 6, 11, 16$ : à chaque étape, $n < 20$ est vrai, donc on continue. Après le 4e tour, $n = 21$ et la condition est fausse.
La boucle s'exécute bien 4 fois.[/reponse]
[/qcm]
[solution]
Cette affirmation est fausse. La boucle s'exécute 4 fois : $n$ passe par $1, 6, 11, 16, 21$ et s'arrête quand $n = 21$.
[/solution]
[/etape]

[etape]
On considère le programme de calcul suivant :

  • Choisir un nombre
  • Ajouter 4
  • Multiplier le résultat par 3
  • Soustraire 12

Affirmation : Ce programme de calcul donne toujours le triple du nombre de départ.
[qcm]
[option correct="true"]Vrai[/option]
[option]Faux[/option]
[reponse statut="correct"]Tu as raison !
En appelant $x$ le nombre de départ : $(x + 4) \times 3 - 12 = 3x + 12 - 12 = 3x$.
Le résultat est bien toujours le triple du nombre de départ.[/reponse]
[reponse statut="incorrect"]Non, cette affirmation est vraie.
Pour le vérifier, on peut utiliser le calcul littéral.
En appelant $x$ le nombre de départ : $(x + 4) \times 3 - 12 = 3x + 12 - 12 = 3x$.
On peut aussi tester avec $x = 5$ : $5 + 4 = 9$, $9 \times 3 = 27$, $27 - 12 = 15 = 3 \times 5$.[/reponse]
[/qcm]
[solution]
Cette affirmation est vraie. En développant : $(x + 4) \times 3 - 12 = 3x + 12 - 12 = 3x$, le résultat est toujours le triple du nombre de départ.
[/solution]
[/etape]

Digicode et probabilités – Brevet Centres étrangers 2025

Un digicode commande l'ouverture de la porte d'entrée de la maison de la grand-mère de Léna.
Léna a oublié le code. Elle sait qu'il est composé d'une lettre A, B, ou C, suivie d'un chiffre compris entre 0 et 9.

  1. Proposer deux codes différents que Léna peut tester.
  2. Quelle est la probabilité que la grand-mère de Léna ait choisi la lettre C dans son code ?
  3. Montrer que la probabilité que la grand-mère de Léna ait choisi le chiffre 7 dans son code est $ \dfrac{1}{10} $.
  4. Léna se souvient que sa grand-mère, enseignante de mathématiques à la retraite, aime bien les nombres premiers. Quelle est la probabilité que le code choisi par sa grand-mère comporte un nombre premier ?
    1. Léna décide de tester tous les codes possibles. Elle estime qu'il lui faut 5 secondes pour essayer un code. Réussira-t-elle à ouvrir la porte de la maison en moins de 3 minutes ?
    2. Le format de ce code garantit-il la sécurité de la maison ? Comment pourrait-on améliorer ce système de code ?
  5. Chaque fois qu'un utilisateur saisit un code, un programme lui annonce si le code est correct ou faux. Le programme utilisé est noté ci-dessous.

    Programme Scratch : quand drapeau cliqué, demander Saisir une lettre parmi A B et C et attendre, mettre lettre saisie à réponse, demander Saisir un nombre entre 0 et 9 et attendre, mettre chiffre saisi à réponse, si lettre saisie = B et chiffre saisi = 7 alors dire Code correct pendant 2 secondes sinon dire Code faux pendant 2 secondes
    1. Léna saisit le code B5. Qu'affiche le programme ?
    2. D'après ce programme, quel est le code qui permet d'entrer dans l'immeuble de la grand-mère de Léna ?

Corrigé

  1. On peut proposer par exemple A3 et C8.

    (Tout code formé d'une lettre parmi A, B, C suivie d'un chiffre de 0 à 9 convient.)

  2. Il y a 3 lettres possibles (A, B et C) et chacune a la même probabilité d'être choisie.

    La probabilité que la grand-mère ait choisi la lettre C est $\mathbf{\dfrac{1}{3}}$.

  3. Il y a 10 chiffres possibles (de 0 à 9) et chacun a la même probabilité d'être choisi.

    La probabilité que le chiffre soit 7 vaut donc :

    $ \dfrac{1}{10} $
  4. Les nombres premiers compris entre 0 et 9 sont : 2, 3, 5 et 7. Il y en a 4.

    La probabilité que le code comporte un nombre premier est $\mathbf{\dfrac{4}{10} = \dfrac{2}{5}}$.

    1. Le nombre total de codes possibles est :
      $ 3 \times 10 = 30 $

      Le temps nécessaire pour tester tous les codes est :
      $ 30 \times 5 = 150 $ secondes

      Or $ 3 $ minutes $ = 180 $ secondes. Comme $ 150 < 180 $, Léna aura le temps de tester tous les codes en moins de 3 minutes.

      Oui, elle réussira à ouvrir la porte en moins de 3 minutes.

    2. Ce format de code ne garantit pas la sécurité de la maison car il n'y a que 30 codes possibles, ce qui est très peu. On pourrait améliorer le système en augmentant le nombre de caractères du code (par exemple 4 chiffres au lieu d'une lettre et un chiffre), en utilisant un clavier complet (26 lettres et 10 chiffres), ou en bloquant l'accès après un certain nombre de tentatives.
    1. Léna saisit la lettre B puis le chiffre 5. Le programme teste si « lettre saisie = B et chiffre saisi = 7 ». Ici, la lettre est bien B, mais le chiffre est 5 (et non 7). La condition « et » n'est donc pas vérifiée.

      Le programme affiche « Code faux ».

    2. D'après la condition du programme (lettre saisie = B et chiffre saisi = 7), le code qui permet d'entrer est B7.

Motifs géométriques et probabilité – Brevet Amérique du Nord 2025

Dans cet exercice, aucune justification n'est attendue

Partie 1 : les motifs

On définit trois scripts :

Script 1 : définir Motif 1, stylo en position d'écriture, répéter 3 fois avancer de 30 pas tourner droite de 120 degrés, relever le stylo
Script 2 : définir Motif 2, stylo en position d'écriture, répéter 6 fois avancer de 30 pas tourner droite de 60 degrés, relever le stylo
Script 3 : définir Motif 3, stylo en position d'écriture, répéter 2 fois avancer de 30 pas puis partie effacée, relever le stylo
  1. Les scripts 1 et 2 permettent chacun d'obtenir un des dessins ci-dessous. Associer chacun des scripts à son dessin.

    Dessin 1 : un hexagone régulier. Dessin 2 : un triangle équilatéral.
  2. Le script 3 permet d'obtenir le losange ci-dessous.
    La partie du script effacée contient les 3 instructions A, B et C ci-dessous.
    Sur votre copie, recopier dans le bon ordre les instructions cachées. Chaque instruction ne doit être utilisée qu'une seule fois.

    Losange avec côtés de 30 pas, angles 120 degrés et 60 degrés, départ en bas à gauche vers la droite
    Instruction A : tourner droite de 60 degrés. Instruction B : tourner droite de 120 degrés. Instruction C : avancer de 30 pas.

Partie 2 : le script principal

Script principal : quand drapeau cliqué, aller à x:-200 y:0, effacer tout, s'orienter à 90, mettre Motif à nombre aléatoire entre 1 et 3, si Motif=3 alors répéter 6 fois Motif 3 avancer de 60 pas, dire Voici le dessin, sinon dire Perdu

Rappels :

  • « nombre aléatoire entre 1 et 3 » donne un nombre entier au hasard parmi 1 ; 2 et 3.
  • « s'orienter à 90 » oriente le lutin horizontalement vers la droite.
  1. Quelles sont les coordonnées du point de départ du lutin ?
  2. Parmi les 5 captures d'écran proposées ci-dessous, seules deux sont possibles. Lesquelles ?

    Capture d'écran Résultat
    Capture n°1 Voici le dessin ! (6 losanges en frise, accolés, inclinés)
    Capture n°2 Voici le dessin ! (7 losanges séparés régulièrement)
    Capture n°3 Perdu !
    Capture n°4 Voici le dessin ! (3 losanges séparés)
    Capture n°5 Voici le dessin ! (hexagone formé de 6 losanges)
  3. On clique sur le drapeau vert, et on observe le message affiché.
    Quelle est la probabilité que le message affiché soit « Voici le dessin ! » ?
  4. On lance de nouveau le programme 100 fois et on regroupe les résultats obtenus dans le tableau suivant :

    Message du lutin « Voici le dessin ! » « Perdu ! »
    Effectif 40 60
    1. Calculer la fréquence de l'affichage « Voici le dessin ! ».
    2. Pourquoi ce résultat est-il différent de celui obtenu à la question 5 ?

Corrigé

Partie 1 : les motifs

  1. Le script 1 répète 3 fois « avancer de 30 pas » et « tourner de 120° ». Comme l'angle extérieur d'un triangle équilatéral vaut $ 120° $, le script 1 trace un triangle équilatéral.

    Le script 2 répète 6 fois « avancer de 30 pas » et « tourner de 60° ». Comme l'angle extérieur d'un hexagone régulier vaut $ 60° $, le script 2 trace un hexagone régulier.

    Donc : le script 1 correspond au dessin 2 (triangle) et le script 2 correspond au dessin 1 (hexagone).

  2. Le losange a deux angles de $ 120° $ et deux angles de $ 60° $.

    Le lutin part vers la droite (orientation 90°). Il avance de 30 pas (premier côté horizontal). Ensuite, il doit tourner pour tracer le côté qui monte : l'angle extérieur est $ 180° - 120° = 60° $, donc il tourne à droite de $ 60° $. Puis il avance de 30 pas. Ensuite, il tourne de $ 120° $ pour le côté qui redescend, puis avance de 30 pas, et enfin tourne de $ 60° $ pour revenir à l'horizontale.

    La boucle « répéter 2 fois » contient déjà « avancer de 30 pas » en première instruction. Les 3 instructions cachées complètent chaque itération.

    L'ordre est : Instruction A (tourner de 60°), Instruction C (avancer de 30 pas), Instruction B (tourner de 120°).

    Le script 3 complet :

    Script 3 complet pour tracer le losange

Partie 2 : le script principal

  1. Le bloc « aller à x : -200 y : 0 » indique les coordonnées du point de départ.

    Les coordonnées du point de départ sont $\mathbf{(-200\,;\,0)}$.

  2. Le programme tire un nombre aléatoire entre 1 et 3 :

    • Si Motif = 3 : le programme trace 6 losanges (Motif 3) en avançant de 60 pas entre chaque losange, et affiche « Voici le dessin ! »
    • Sinon (Motif = 1 ou Motif = 2) : le programme affiche « Perdu ! » sans rien dessiner

    Quand Motif = 3, les 6 losanges sont tracés côte à côte en avançant de 60 pas (soit 2 fois la longueur du côté horizontal du losange, $ 30 \times 2 = 60 $). Cela produit une frise de 6 losanges accolés (capture n°1).

    Quand Motif = 1 ou 2, le programme affiche seulement « Perdu ! » (capture n°3).

    Les deux captures possibles sont la capture n°1 et la capture n°3.

  3. Le nombre aléatoire est tiré parmi 1, 2 et 3 avec la même probabilité pour chaque valeur. Le message « Voici le dessin ! » s'affiche uniquement quand Motif = 3, soit dans 1 cas sur 3.

    La probabilité est $\mathbf{\dfrac{1}{3}}$.

    1. Sur 100 lancers, le message « Voici le dessin ! » est apparu 40 fois.

      La fréquence est :
      $ \dfrac{40}{100} = 0{,}4 $

      La fréquence d'affichage de « Voici le dessin ! » est $\mathbf{0{,}4}$ (soit $ 40\,\% $).

    2. La probabilité théorique est $ \dfrac{1}{3} \approx 0{,}333 $ alors que la fréquence observée est $ 0{,}4 $. Ces deux valeurs sont différentes car la fréquence est un résultat expérimental : elle dépend du hasard et fluctue d'une série d'expériences à l'autre. Plus le nombre de lancers augmente, plus la fréquence tend à se rapprocher de la probabilité théorique.

Tarif réduit au cinéma avec Scratch

Un cinéma applique les tarifs suivants :

  • Tarif réduit ($ 6 $ euros) pour les personnes de moins de 14 ans
  • Tarif plein ($ 11 $ euros) pour les autres

On a écrit le programme Scratch suivant :

Programme Scratch : tarif cinéma selon l'âge avec instruction conditionnelle
  1. Quel message le lutin affiche-t-il si l'utilisateur entre l'âge 10 ? Justifier.
  2. Quel message le lutin affiche-t-il si l'utilisateur entre l'âge 14 ? Et pour l'âge 17 ?
  3. Le directeur du cinéma modifie sa politique : le tarif réduit s'applique désormais aux personnes de 14 ans ou moins (au lieu de « moins de 14 ans »). Quelle modification faut-il apporter à la condition du programme ?
  4. Le directeur ajoute un tarif senior : les personnes de 65 ans ou plus bénéficient aussi du tarif réduit. Écrire le programme Scratch modifié qui gère les trois cas (jeune, senior, et tarif plein pour les autres).

Corrigé

  1. Si l'utilisateur entre 10, la condition « $ 10 < 14 $ » est vraie. Le lutin affiche donc « Tarif réduit : 6 euros ».
  2. Si l'utilisateur entre 14, la condition « $ 14 < 14 $ » est fausse (14 n'est pas strictement inférieur à 14). Le lutin affiche « Tarif plein : 11 euros ».

    Pour l'âge 17, la condition « $ 17 < 14 $ » est fausse. Le lutin affiche « Tarif plein : 11 euros ».

  3. Pour inclure les personnes de 14 ans, il faut que la condition soit « âge inférieur ou égal à 14 ». Comme Scratch ne dispose pas d'un opérateur $ \leqslant $, on peut remplacer la condition par :

    • $ \text{âge} < 15 $ (car pour des âges entiers, « inférieur à 15 » est équivalent à « inférieur ou égal à 14 »)
  4. On utilise une condition combinée avec l'opérateur « ou » :

    Programme Scratch modifié avec tarif senior et opérateur ou

    La condition « âge $ < 15 $ ou âge $ > 64 $ » est vraie si l'utilisateur a 14 ans ou moins, ou s'il a 65 ans ou plus.

Pour réviser : Utiliser une instruction conditionnelle dans Scratch