Exercices — Algorithmique / Scratch (avec corrigés)
20 exercices progressifs sur les instructions, les variables, les tests, les boucles, les scripts Scratch, le repérage d’erreurs et la compréhension de programmes simples.
Exercice 1 — Vocabulaire de base
Compléter :
1. Une suite ordonnée d’instructions s’appelle un ________.
2. Une grandeur qui peut changer pendant l’exécution s’appelle une ________.
3. Une instruction répétée plusieurs fois peut être gérée par une ________.
1. Une suite ordonnée d’instructions s’appelle un ________.
2. Une grandeur qui peut changer pendant l’exécution s’appelle une ________.
3. Une instruction répétée plusieurs fois peut être gérée par une ________.
Corrigé :
1. un algorithme ou un programme ;
2. une variable ;
3. une boucle.
2. une variable ;
3. une boucle.
Exercice 2 — Ordre des instructions
On veut demander un nombre, puis l’afficher, puis ajouter 1 et afficher le résultat.
Pourquoi l’ordre des instructions est-il important ?
Pourquoi l’ordre des instructions est-il important ?
Corrigé :
L’ordre est important car un programme exécute les instructions l’une après l’autre.
Si on change l’ordre, on peut afficher un mauvais résultat ou utiliser une valeur qui n’a pas encore été définie.
Si on change l’ordre, on peut afficher un mauvais résultat ou utiliser une valeur qui n’a pas encore été définie.
Exercice 3 — Lire un script simple
Un script fait :
demander "Donne un nombre"
mettre n à la réponse
dire n
Que fait ce script ?mettre n à la réponse
dire n
Corrigé :
Le script demande un nombre à l’utilisateur, stocke ce nombre dans la variable \(n\), puis affiche ce nombre.
Exercice 4 — Variable et calcul
On donne le script :
mettre n à 5
mettre n à n + 3
dire n
Quelle valeur est affichée ?mettre n à n + 3
dire n
Corrigé :
Au départ :
\[
n=5
\]
puis :
\[
n=5+3=8
\]
La valeur affichée est :
\[
8
\]
Exercice 5 — Instruction répétée
On veut avancer de 10 pas, 4 fois de suite dans Scratch.
Quelle structure est la plus adaptée : une variable, une boucle ou un test ?
Quelle structure est la plus adaptée : une variable, une boucle ou un test ?
Corrigé :
La structure la plus adaptée est une boucle, car on répète la même action plusieurs fois.
Exercice 6 — Comprendre une boucle
On donne le script :
mettre s à 0
répéter 3 fois
ajouter 2 à s
dire s
Quelle valeur finale de \(s\) obtient-on ?répéter 3 fois
ajouter 2 à s
dire s
Corrigé :
Au départ :
\[
s=0
\]
Après 3 répétitions de “ajouter 2” :
\[
s=0+2+2+2=6
\]
La valeur finale affichée est :
\[
6
\]
Exercice 7 — Test simple
On donne le script :
demander "Donne un nombre"
si réponse > 0 alors
dire "positif"
sinon
dire "nul ou négatif"
Que dit le script si l’utilisateur entre \(-3\) ?si réponse > 0 alors
dire "positif"
sinon
dire "nul ou négatif"
Corrigé :
Comme :
\[
-3 \not> 0
\]
le test est faux.
Le script dit :
Le script dit :
nul ou négatif
Exercice 8 — Programme de calcul
Un script demande un nombre \(x\), calcule \(2x+5\), puis affiche le résultat.
Quel résultat obtient-on si \(x=7\) ?
Quel résultat obtient-on si \(x=7\) ?
Corrigé :
On calcule :
\[
2\times 7 + 5 = 14 + 5 = 19
\]
Le script affiche :
\[
19
\]
Exercice 9 — Compléter un script
On veut calculer le triple d’un nombre saisi. Quelle instruction manque ?
demander "Donne un nombre"
mettre n à la réponse
mettre r à ________
dire r
mettre n à la réponse
mettre r à ________
dire r
Corrigé :
Il faut écrire :
3 × n
ou, en écriture logique :
\[
r=3n
\]Exercice 10 — Répétition et tracé
Dans Scratch, on répète 4 fois :
avancer de 50 pas
tourner de 90°
Quelle figure est tracée ?tourner de 90°
Corrigé :
Le script trace un carré, car on effectue 4 côtés avec un angle droit à chaque fois.
Exercice 11 — Débogage simple
Un élève veut calculer \(n+1\) mais il a écrit :
mettre n à la réponse
mettre n à 1
dire n
Expliquer l’erreur.mettre n à 1
dire n
Corrigé :
L’élève remplace la valeur de \(n\) par \(1\), au lieu d’ajouter \(1\) à \(n\).
Il aurait fallu écrire une instruction du type :
Il aurait fallu écrire une instruction du type :
mettre n à n + 1
Exercice 12 — Suivre les valeurs
On donne le script :
mettre a à 2
mettre b à 5
mettre a à a + b
dire a
Quelle valeur est affichée ?mettre b à 5
mettre a à a + b
dire a
Corrigé :
Au départ :
\[
a=2,\quad b=5
\]
Puis :
\[
a=2+5=7
\]
La valeur affichée est :
\[
7
\]
Exercice 13 — Programme à interpréter
On donne le script :
demander "Nombre ?"
mettre x à la réponse
mettre y à x × x
dire y
Que calcule ce programme ?mettre x à la réponse
mettre y à x × x
dire y
Corrigé :
Le programme calcule le carré du nombre saisi.
En effet : \[ y=x\times x=x^2 \]
En effet : \[ y=x\times x=x^2 \]
Exercice 14 — Test pair / impair
On veut écrire un script qui dit si un nombre est pair ou impair.
Quelle idée mathématique faut-il utiliser ?
Quelle idée mathématique faut-il utiliser ?
Corrigé :
Il faut tester le reste dans la division par \(2\).
Un nombre est pair si son reste dans la division par \(2\) est nul, sinon il est impair.
Un nombre est pair si son reste dans la division par \(2\) est nul, sinon il est impair.
Exercice 15 — Boucle de comptage
On donne le script :
mettre c à 1
répéter 5 fois
mettre c à c + 2
dire c
Quelle valeur finale obtient-on ?répéter 5 fois
mettre c à c + 2
dire c
Corrigé :
On part de :
\[
c=1
\]
On ajoute \(2\), 5 fois :
\[
c=1+5\times 2=11
\]
La valeur finale est :
\[
11
\]
Exercice 16 — Comparer deux scripts
Script A :
mettre x à 3
mettre y à 2 × x + 1
Script B :mettre y à 2 × x + 1
mettre x à 3
mettre y à 2 × (x + 1)
Les deux scripts donnent-ils le même résultat ?mettre y à 2 × (x + 1)
Corrigé :
Script A :
\[
y=2\times 3+1=7
\]
Script B :
\[
y=2\times (3+1)=8
\]
Les deux scripts ne donnent donc pas le même résultat.
Exercice 17 — Construction d’un algorithme
Écrire en phrases un algorithme qui demande un nombre, lui ajoute \(4\), multiplie le résultat par \(3\), puis affiche le résultat final.
Corrigé :
Algorithme possible :
1. demander un nombre ;
2. stocker ce nombre dans une variable ;
3. ajouter \(4\) à cette variable ;
4. multiplier le résultat par \(3\) ;
5. afficher le résultat.
1. demander un nombre ;
2. stocker ce nombre dans une variable ;
3. ajouter \(4\) à cette variable ;
4. multiplier le résultat par \(3\) ;
5. afficher le résultat.
Exercice 18 — Figure répétitive
Dans Scratch, on répète 3 fois :
avancer de 60 pas
tourner de 120°
Quelle figure est tracée ?tourner de 120°
Corrigé :
Le script trace un triangle équilatéral, car les 3 côtés sont identiques et les rotations successives de \(120^\circ\) permettent de fermer la figure.
Exercice 19 — Erreur logique
Un script veut afficher les nombres de \(1\) à \(5\), mais il commence par mettre \(n\) à \(0\), puis répète 5 fois :
dire n
ajouter 1 à n
Quels nombres affiche-t-il réellement ?ajouter 1 à n
Corrigé :
Le script affiche d’abord la valeur actuelle de \(n\), puis ajoute \(1\).
Il affiche donc : \[ 0,\;1,\;2,\;3,\;4 \] et non \(1\) à \(5\).
Il affiche donc : \[ 0,\;1,\;2,\;3,\;4 \] et non \(1\) à \(5\).
Exercice 20 — Problème final
On considère le script suivant :
2. Quel résultat affiche-t-il pour \(n=6\) ?
demander "Donne un nombre"
mettre n à la réponse
mettre r à 0
répéter 4 fois
ajouter n à r
dire r
1. Que calcule ce script ?mettre n à la réponse
mettre r à 0
répéter 4 fois
ajouter n à r
dire r
2. Quel résultat affiche-t-il pour \(n=6\) ?
Corrigé :
1. Le script ajoute \(n\) à \(r\), 4 fois de suite, donc il calcule :
\[
4n
\]
2. Pour \(n=6\), on obtient :
\[
4\times 6=24
\]
Le script affiche :
\[
24
\]