Aller au contenu

Exercices corrigés — Algorithmique et programmation (5e)

Quatre niveaux de difficulté, du plus simple au plus exigeant. Chaque exercice a sa correction détaillée, étape par étape.

8 exercices, classés par difficulté croissante.

Exercice 1 Découverte

Quel est le résultat affiché par ce script ? Détailler la valeur de x après chaque instruction.

mettre [x] à (5)
ajouter (3) à [x]
mettre [x] à ((x) * (2))
dire (x)
Voir la correction
Correction détaillée

On exécute les instructions une à une, dans l'ordre, en notant la valeur de la variable x.
Après « mettre [x] à (5) » : x = 5. Après « ajouter (3) à [x] » : x = 5 + 3 = 8. Après « mettre [x] à ((x) * (2)) » : x = 8 × 2 = 16.
Le lutin dit 16.
Si l'on échangeait les deux instructions du milieu, on obtiendrait 5 × 2 + 3 = 13 : l'ordre des instructions change le résultat.

Exercice 2 Découverte

Le lutin part du point (0 ; 0), orienté à 90 (vers la droite). Il exécute le script suivant. Quelles sont son orientation et sa position finales ?

avancer de (50) pas
tourner de (90) degrés
avancer de (30) pas
Voir la correction
Correction détaillée

Orienté à 90, le lutin regarde vers la droite : « avancer de (50) pas » l'amène au point (50 ; 0).
« tourner de (90) degrés » le fait pivoter de 90° dans le sens des aiguilles d'une montre : son orientation devient 90 + 90 = 180, c'est-à-dire vers le bas.
« avancer de (30) pas » vers le bas diminue y de 30 : il arrive en (50 ; −30).
Position finale : x = 50, y = −30, orientation 180. Sur la scène Scratch, y diminue quand on descend, et l'origine est au centre.

Exercice 3 Application

Écrire un script qui trace un hexagone régulier de côté 60 pas. Expliquer le choix de l'angle.

Voir la correction
Correction détaillée

Un hexagone régulier a 6 côtés de même longueur ; à chaque sommet, le lutin tourne du même angle. En faisant le tour complet de la figure, il tourne de 360° en tout, donc de 360 ÷ 6 = 60° à chaque sommet.

quand le drapeau vert est cliqué
effacer tout
stylo en position d'écriture
répéter (6) fois
    avancer de (60) pas
    tourner de (60) degrés
fin répéter
relever le stylo

L'angle de rotation est l'angle extérieur (60°), et non l'angle intérieur de l'hexagone (120°) : tourner de 120° tracerait un triangle équilatéral. La boucle évite d'écrire 6 fois les deux mêmes instructions.

Exercice 4 Application

Combien de fois le lutin dit-il « Coucou » ? Combien de temps dure l'exécution ?

répéter (4) fois
    répéter (3) fois
        dire [Coucou] pendant (1) secondes
    fin répéter
fin répéter
Voir la correction
Correction détaillée

La boucle intérieure « répéter (3) fois » fait dire « Coucou » 3 fois de suite.
La boucle extérieure « répéter (4) fois » exécute 4 fois la boucle intérieure tout entière : à chaque tour, 3 « Coucou ».
Nombre total : 4 × 3 = 12 fois. Chaque « Coucou » dure 1 seconde, donc l'exécution dure 12 secondes.
Avec des boucles imbriquées, on multiplie les nombres de répétitions ; on ne les additionne pas (4 + 3 = 7 serait faux).

Exercice 5 Maîtrise

Que dit le lutin à la fin de ce script ? Présenter les valeurs de a dans un tableau.

mettre [a] à (1)
répéter (4) fois
    mettre [a] à ((a) * (3))
    ajouter (1) à [a]
fin répéter
dire (a)
Voir la correction
Correction détaillée

À chaque tour, on multiplie a par 3, puis on ajoute 1. On part de a = 1.
Tour 1 : 1 × 3 = 3, puis 3 + 1 = 4. Tour 2 : 4 × 3 = 12, puis 12 + 1 = 13. Tour 3 : 13 × 3 = 39, puis 39 + 1 = 40. Tour 4 : 40 × 3 = 120, puis 120 + 1 = 121.

ÉtapeDépartAprès le tour 1Après le tour 2Après le tour 3Après le tour 4
Valeur de a141340121

Le lutin dit 121. Bien respecter l'ordre des deux instructions dans la boucle : « ajouter 1 » puis « multiplier par 3 » donnerait 6, 21, 66, 201.

Exercice 6 Maîtrise

Écrire un script qui demande une note, puis affiche « Reçu » si la note est supérieure ou égale à 10, et « Non reçu » sinon.

Voir la correction
Correction détaillée

Scratch propose les tests < et > mais pas « supérieur ou égal ». « Note supérieure ou égale à 10 » est le contraire de « note strictement inférieure à 10 » : on utilise le bloc « non ».

quand le drapeau vert est cliqué
demander [Quelle est ta note ?] et attendre
si < non < (réponse) < (10) > > alors
    dire [Reçu]
sinon
    dire [Non reçu]
fin si

Vérification : pour 10, « 10 < 10 » est faux, donc « non » le rend vrai et le lutin dit « Reçu », comme attendu. Pour 9,5, « 9,5 < 10 » est vrai, « non » le rend faux : « Non reçu ».
Autre écriture correcte : si < (réponse) > (10) > ou < (réponse) = (10) > alors. Écrire « si réponse > 10 » serait faux, car la note 10 serait refusée.

Exercice 7 Challenge

Que vaut la variable s à la fin de ce script ? Que calcule-t-il ?

mettre [s] à (0)
mettre [k] à (1)
répéter (5) fois
    ajouter (k) à [s]
    ajouter (1) à [k]
fin répéter
Voir la correction
Correction détaillée

On suit les deux variables tour après tour. Départ : s = 0, k = 1.
Tour 1 : s = 0 + 1 = 1, puis k = 2. Tour 2 : s = 1 + 2 = 3, k = 3. Tour 3 : s = 3 + 3 = 6, k = 4. Tour 4 : s = 6 + 4 = 10, k = 5. Tour 5 : s = 10 + 5 = 15, k = 6.
À la fin, s = 15 (et k = 6).
Le script calcule la somme 1 + 2 + 3 + 4 + 5 = 15 : k prend successivement les valeurs 1 à 5 et s les accumule. En remplaçant 5 par 100, il calculerait 1 + 2 + … + 100.

Exercice 8 Challenge

On veut un script qui demande un nombre, calcule A = 2 × nombre + 3 et B = 5 × nombre − 6, puis dit « égaux » si A et B sont égaux et dit la valeur de A sinon. a) Écrire ce script. b) Que dit le lutin si l'on tape 4 ? c) Pour quel nombre le lutin dit-il « égaux » ? Vérifier.

Voir la correction
Correction détaillée

a) On range le nombre saisi dans une variable, puis on calcule les deux résultats avant de les comparer.

quand le drapeau vert est cliqué
demander [Choisis un nombre] et attendre
mettre [nombre] à (réponse)
mettre [A] à ((2) * (nombre) + (3))
mettre [B] à ((5) * (nombre) - (6))
si < (A) = (B) > alors
    dire [égaux]
sinon
    dire (A)
fin si

b) Pour 4 : A = 2 × 4 + 3 = 11 et B = 5 × 4 − 6 = 14. Les deux valeurs sont différentes, le lutin dit 11.
c) On cherche le nombre pour lequel 2 × nombre + 3 = 5 × nombre − 6. En essayant 3 : A = 2 × 3 + 3 = 9 et B = 5 × 3 − 6 = 9. Les deux résultats sont égaux : pour 3, le lutin dit « égaux ». On peut vérifier que 1 et 2 ne conviennent pas (A = 5, B = −1 ; A = 7, B = 4) : à chaque unité en plus, B augmente de 5 et A de 2, l'écart de 6 au départ se réduit de 3 par unité et s'annule pour 3 exactement.