MATHÉMATIQUES · 4ᵉ

Algorithmique et programmation — exercices corrigés

62 exercices pour t'entraîner sur Algorithmique et programmation en 4ᵉ, du QCM à la démonstration. 20 corrigés en détail ci-dessous. Revoir le cours.

Découvrir20 exercices

01Découvrir

Qu'est-ce qu'un algorithme ?

  • A

    Un logiciel de dessin sur ordinateur

  • B

    Une suite finie d'instructions précises destinées à accomplir une tâche

  • C

    Un nombre très grand utilisé en calcul scientifique

  • D

    Un type de variable qui ne change jamais

Correction
Réponse.

B

Un algorithme est une suite finie d'instructions précises et non ambiguës, qui permettent d'accomplir une tâche. Quand on traduit cet algorithme en blocs Scratch, on obtient un programme. Si tu as répondu A, tu confonds l'algorithme avec le logiciel qui l'exécute. Si tu as répondu D, tu décris une constante, pas un algorithme.

S'entraîner sur cet exercice en interactif →
02Découvrir

On affirme : « Dans une séquence d'instructions Scratch, changer l'ordre des blocs ne change jamais le résultat. »

Est-ce vrai ?

  • A

    Vrai

  • B

    Faux

Correction
Réponse.

B

L'ordre des instructions est fondamental. « Avancer de 100 pas, puis tourner de 90° » ne trace pas la même chose que « tourner de 90°, puis avancer de 100 pas » : dans le premier cas le lutin avance vers l'avant puis pivote ; dans le second il pivote d'abord et avance ensuite dans une autre direction. La séquence signifie précisément que les instructions s'exécutent dans l'ordre exact, de haut en bas.

S'entraîner sur cet exercice en interactif →
03Découvrir

Voici un programme Scratch :

mettre [x] à 3
ajouter 4 à [x]

Quelle est la valeur de la variable x à la fin de ce programme ?

Correction
Réponse.

7

La première instruction place la valeur 3 dans la boîte x. La deuxième instruction ajoute 4 à la valeur actuelle de x : 3+4=7. La variable x contient donc 7 à la fin. Si tu as répondu 4, tu as oublié la valeur initiale. Si tu as répondu 3, tu n'as pas appliqué la deuxième instruction.

S'entraîner sur cet exercice en interactif →
04Découvrir

Le programme suivant est exécuté dans Scratch :

répéter 4 fois :
  avancer de 80 pas
  tourner de 90 degrés

Quelle figure le lutin trace-t-il ?

  • A

    Un triangle équilatéral

  • B

    Un hexagone régulier

  • C

    Un carré de côté 80 pas

  • D

    Un cercle

Correction
Réponse.

C

La boucle répète 4 fois le geste « avancer de 80 pas, puis tourner de 90° ». Quatre côtés égaux et quatre angles droits (4×90°=360°, un tour complet) : c'est un carré. Si tu as répondu A, un triangle demande 3 répétitions et des angles de 120°. Si tu as répondu B, un hexagone demande 6 répétitions et des angles de 60°.

S'entraîner sur cet exercice en interactif →
05Découvrir

On affirme : « Une variable Scratch part automatiquement de 0 sans qu'on ait besoin de l'initialiser. »

Est-ce vrai ?

  • A

    Vrai

  • B

    Faux

Correction
Réponse.

B

Une variable ne part pas de 0 de façon garantie. Tant qu'on n'a pas écrit « mettre [variable] à 0 » (ou à toute autre valeur de départ), sa valeur initiale n'est pas fixée de manière fiable. Il faut toujours initialiser une variable avant de l'utiliser, sinon le programme peut se comporter de façon imprévisible.

S'entraîner sur cet exercice en interactif →
06Découvrir

Dans Scratch, une condition peut valoir :

  • A

    N'importe quel nombre entier

  • B

    Uniquement 0 ou 1

  • C

    Vrai ou faux, uniquement

  • D

    Un texte quelconque

Correction
Réponse.

C

Une condition est une expression booléenne : elle vaut soit vrai, soit faux, et jamais autre chose. C'est sur ce résultat que le bloc « si … alors … » décide d'exécuter ou non les instructions à l'intérieur. Si tu as répondu B (0 ou 1), tu mélanges le codage interne et la notion de condition : en Scratch, on parle de vrai/faux, pas de 0/1.

S'entraîner sur cet exercice en interactif →
07Découvrir

Voici un programme Scratch :

mettre [n] à 2
ajouter 3 à [n]

Quelle est la valeur de n à la fin ?

Correction
Réponse.

5

La première instruction place 2 dans n. La deuxième ajoute 3 à la valeur actuelle de n : 2+3=5. À la fin, n vaut 5. Si tu as répondu 3, tu n'as pas tenu compte de la valeur initiale. Si tu as répondu 2, tu n'as pas appliqué la deuxième instruction.

S'entraîner sur cet exercice en interactif →
08Découvrir

Amine veut dessiner un triangle équilatéral avec le lutin Scratch. Chaque côté est tracé par « avancer de 100 pas, tourner de 120 degrés ». Combien de répétitions faut-il dans la boucle ?

  • A

    2

  • B

    3

  • C

    4

  • D

    6

Correction
Réponse.

B

Un triangle a 3 côtés. Pour fermer la figure, il faut répéter le geste (avancer + tourner) exactement 3 fois. On vérifie : 3×120°=360°, un tour complet, ce qui ramène le lutin à son orientation initiale. Si tu as répondu 4, tu pensais à un carré. Si tu as répondu 2, tu n'as tracé que 2 côtés et la figure reste ouverte.

S'entraîner sur cet exercice en interactif →
09Découvrir

Salma affirme : « L'instruction Scratch "mettre [x] à (x) + 1" est impossible, car l'équation x=x+1 n'a pas de solution. »

A-t-elle raison ?

  • A

    Vrai, elle a raison

  • B

    Faux, elle a tort

Correction
Réponse.

B

Salma confond deux choses différentes. En mathématiques, x=x+1 est bien une équation sans solution. Mais en programmation, « mettre [x] à (x) + 1 » est une affectation : on lit la valeur actuelle de x, on lui ajoute 1, et on range le résultat dans x. Si x valait 3, il vaut maintenant 4. C'est une opération sur une boîte, pas une égalité mathématique.

S'entraîner sur cet exercice en interactif →
10Découvrir

Dans Scratch, le bloc « si (condition) alors : [instructions] » exécute les instructions :

  • A

    Toujours, quoi qu'il arrive

  • B

    Uniquement si la condition est fausse

  • C

    Uniquement si la condition est vraie

  • D

    Un nombre fixe de fois déterminé à l'avance

Correction
Réponse.

C

Le bloc « si … alors … » n'exécute les instructions à l'intérieur que lorsque la condition est évaluée à vrai. Si la condition est fausse, le programme passe directement à la suite sans rien exécuter à l'intérieur du bloc. Si tu as répondu B, tu as inversé la logique. Si tu as répondu D, tu décris une boucle « répéter n fois », pas une condition.

S'entraîner sur cet exercice en interactif →
11Découvrir

Dans le vocabulaire du chapitre, qu'est-ce qu'un programme ?

  • A

    La traduction d'un algorithme en blocs Scratch (ou dans un autre langage)

  • B

    Une variable qui mémorise un score

  • C

    Un test qui vaut toujours vrai

  • D

    Une figure géométrique tracée par le lutin

Correction
Réponse.

A

Un algorithme est une suite finie d'instructions précises ; quand on le traduit en blocs Scratch, on obtient un programme. L'un est l'idée, l'autre sa réalisation dans un langage. Si tu as répondu B, tu décris une variable, pas un programme. Si tu as répondu D, tu confonds le programme avec son résultat à l'écran : le motif dessiné n'est pas le programme, c'est ce que le programme produit.

S'entraîner sur cet exercice en interactif →
12Découvrir

Karim affirme : « Les deux programmes ci-dessous donnent exactement le même tracé, car ils contiennent les mêmes blocs. »

avancer de 100 pas
tourner de 90 degrés
tourner de 90 degrés
avancer de 100 pas

A-t-il raison ?

  • A

    Vrai

  • B

    Faux

Correction
Réponse.

B

Un programme est une séquence : l'ordre des instructions compte. Dans le premier cas, le lutin avance d'abord puis pivote ; dans le second, il pivote d'abord et avance ensuite dans une direction différente. Mêmes blocs, ordre différent, tracé différent. Si tu as répondu A, tu es tombé dans le piège de Karim : croire que seul l'ensemble des instructions compte, jamais leur ordre.

S'entraîner sur cet exercice en interactif →
13Découvrir

Que signifie initialiser une variable ?

  • A

    Lui donner un nom dans le menu « Variables »

  • B

    Fixer sa valeur de départ avant de l'utiliser

  • C

    Supprimer la variable à la fin du programme

  • D

    Afficher sa valeur à l'écran

Correction
Réponse.

B

Initialiser une variable, c'est lui fixer une valeur de départ avant de s'en servir, par exemple « mettre [compteur] à 0 ». Tant qu'on ne l'a pas fait, sa valeur initiale est inconnue. Si tu as répondu A, tu décris l'étape de création (déclarer le nom), qui vient avant l'initialisation. Si tu as répondu D, tu décris l'affichage, qui n'a rien à voir avec la valeur de départ.

S'entraîner sur cet exercice en interactif →
14Découvrir

Voici un programme Scratch :

mettre [prix] à 8
mettre [prix] à 12

Quelle est la valeur de la variable prix à la fin de ce programme ?

Correction
Réponse.

12

La première instruction range 8 dans la boîte prix. La deuxième instruction est une affectation directe : elle remplace complètement le contenu de la boîte par 12. L'ancienne valeur 8 est écrasée et perdue. À la fin, prix vaut 12. Si tu as répondu 20, tu as additionné les deux valeurs : mais « mettre à » remplace, il n'ajoute pas. Pour ajouter, il faudrait écrire « ajouter 12 à [prix] ».

S'entraîner sur cet exercice en interactif →
15Découvrir

Yasmine veut tracer un triangle équilatéral (3 côtés identiques) avec une boucle. Combien de fois doit-elle répéter le geste « avancer puis tourner » ?

  • A

    2 fois

  • B

    3 fois

  • C

    4 fois

  • D

    6 fois

Correction
Réponse.

B

Un triangle a 3 côtés : il faut donc répéter 3 fois le geste « avancer d'un côté, puis tourner ». La boucle « répéter 3 fois » suffit. Si tu as répondu C (4 fois), tu pensais à un carré. Si tu as répondu A (2 fois), tu es tombé dans l'erreur de un : avec seulement 2 répétitions, la figure reste ouverte, il manque un côté.

S'entraîner sur cet exercice en interactif →
16Découvrir

On affirme : « Une condition dans un programme peut être soit vraie, soit fausse, mais jamais les deux à la fois. »

Est-ce vrai ?

  • A

    Vrai

  • B

    Faux

Correction
Réponse.

A

Une condition est une expression qui vaut toujours exactement vrai ou faux, jamais les deux en même temps. Par exemple, « le lutin touche le bord » est soit vraie (il le touche), soit fausse (il ne le touche pas). C'est ce caractère exclusif qui permet au « si… alors… sinon… » de choisir une seule branche. Si tu as répondu B, tu as peut-être confondu la condition (le test) avec l'action qu'elle déclenche, qui, elle, peut être de n'importe quelle nature.

S'entraîner sur cet exercice en interactif →
17Découvrir

Voici un programme Scratch :

mettre [compteur] à 0
ajouter 1 à [compteur]
ajouter 1 à [compteur]
ajouter 1 à [compteur]

Quelle est la valeur de compteur à la fin de ce programme ?

Correction
Réponse.

3

On part de compteur = 0. Chaque instruction « ajouter 1 » augmente la valeur actuelle d'une unité. Trace : après la 1ʳᵉ instruction d'ajout, compteur vaut 1 ; puis 2 ; puis 3. Comme on ajoute 1 trois fois de suite, on obtient 0+1+1+1=3. Si tu as répondu 1, tu n'as appliqué qu'un seul ajout. Si tu as répondu 4, tu as compté l'instruction d'initialisation comme un ajout, alors qu'elle se contente de poser la valeur de départ 0.

S'entraîner sur cet exercice en interactif →
18Découvrir

Amine ne connaît pas à l'avance le nombre de pas nécessaires pour que le lutin atteigne le bord de la scène. Quel type de boucle convient le mieux à cette situation ?

  • A

    Une boucle « répéter 10 fois »

  • B

    Une boucle « répéter jusqu'à ce que (le lutin touche le bord) »

  • C

    Aucune boucle, une simple séquence suffit

  • D

    Une boucle « répéter 4 fois » comme pour un carré

Correction
Réponse.

B

Quand on ne sait pas à l'avance combien de répétitions seront nécessaires, on utilise la boucle « répéter jusqu'à ce que » (boucle « tant que ») : elle s'arrête dès que la condition devient vraie. Ici, le nombre de pas dépend de la position de départ du lutin, donc on ne peut pas fixer un nombre fixe. Si tu as répondu A ou D, tu as choisi une boucle « répéter n fois », qui exige de connaître n d'avance — ce n'est pas le cas ici.

S'entraîner sur cet exercice en interactif →
19Découvrir

Voici un extrait de programme :

si (score) > 10 alors :
  dire « Bien joué »
sinon :
  dire « Continue d'essayer »

Si la variable score vaut 7, que dit le lutin ?

  • A

    « Bien joué »

  • B

    « Continue d'essayer »

  • C

    Les deux messages, l'un après l'autre

  • D

    Aucun message

Correction
Réponse.

B

On évalue d'abord la condition : « 7 > 10 » est fausse. Dans une structure « si… alors… sinon… », quand la condition est fausse, c'est la branche sinon qui s'exécute. Le lutin dit donc « Continue d'essayer ». Si tu as répondu A, tu as choisi la branche « alors », réservée au cas où la condition est vraie. Si tu as répondu C, rappelle-toi que les deux branches s'excluent : une seule s'exécute, jamais les deux.

S'entraîner sur cet exercice en interactif →
20Découvrir

Salma affirme : « Une variable nouvellement créée dans Scratch vaut forcément 0 au début, donc il est inutile de l'initialiser. »

A-t-elle raison ?

  • A

    Vrai

  • B

    Faux

Correction
Réponse.

B

C'est faux et c'est un piège classique. Tant qu'on n'a pas écrit explicitement « mettre [x] à 0 », la valeur de départ d'une variable est inconnue : on ne doit jamais compter dessus. Initialiser une variable avant de l'utiliser est une règle fondamentale, sinon le comportement du programme devient imprévisible — une boucle « tant que » peut, par exemple, ne jamais s'arrêter. Si tu as répondu A, tu as fait l'erreur n°3 des pièges classiques : croire qu'une variable part de 0 toute seule.

S'entraîner sur cet exercice en interactif →

Comprendre22 exercices

21Comprendre

Karim veut que le lutin trace un pentagone régulier (5 côtés, angle 72°). Il affirme : « Il y a 5 virages à faire, alors j'écris "répéter 4 fois", puisque entre 5 côtés il n'y a que 4 coins. »

répéter 4 fois :
  avancer de 50 pas
  tourner de 72 degrés

A-t-il raison ?

  • A

    Oui, 5 côtés font 4 virages, donc 4 répétitions

  • B

    Non, il faut répéter 5 fois : la figure reste ouverte avec 4

  • C

    Non, il faut répéter 6 fois pour être sûr de fermer

  • D

    Oui, peu importe le nombre, le lutin ferme toujours la figure

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →
22Comprendre

Dans le programme ci-dessous, Salma désigne la partie « tourner de 180 degrés » et affirme : « Ça, c'est la condition du bloc "si". »

si (le lutin touche le bord) alors :
  tourner de 180 degrés

A-t-elle raison ?

  • A

    Oui, « tourner de 180 degrés » est la condition

  • B

    Non, la condition est « le lutin touche le bord » ; « tourner de 180 degrés » est l'action

  • C

    Oui, dans un « si », condition et action sont la même chose

  • D

    Non, il n'y a aucune condition dans ce programme

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →

Approfondir20 exercices

02Approfondir

Karim veut écrire un programme qui dessine 3 carrés de côté 80 pas et compte combien il en a tracé. Voici son programme :

répéter 3 fois :
  répéter 4 fois :
    avancer de 80 pas
    tourner de 90 degrés
  ajouter 1 à [compteur]
dire [compteur]

Quand il teste son programme, le lutin dit un nombre imprévisible (parfois 4, parfois 11, parfois autre chose). Identifie l'erreur de Karim et récris le programme corrigé.

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →
04Approfondir

Yasmine veut créer un motif de zellige avec Scratch : elle veut dessiner 5 carrés de côtés de plus en plus grands. Le premier carré a un côté de 20 pas, et chaque carré suivant a un côté 20 pas plus grand que le précédent (20, 40, 60, 80, 100).

Elle utilise deux variables : cote (la longueur du côté courant) et nb (le nombre de carrés déjà dessinés).

Écris le programme complet. Indique clairement l'initialisation des variables, la boucle principale et la sous-boucle pour dessiner chaque carré.

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →
06Approfondir

Amine veut écrire un programme qui calcule 2+4+6+8+10 (la somme des 5 premiers entiers pairs positifs). Voici son programme :

mettre [somme] à 0
mettre [k] à 2
répéter 4 fois :
  ajouter (k) à [somme]
  ajouter 2 à [k]

Quelle est la valeur de somme à la fin, et Amine a-t-il atteint son objectif ?

  • A

    somme vaut 20, objectif atteint

  • B

    somme vaut 30, objectif atteint

  • C

    somme vaut 20, objectif non atteint (il manque le terme 10)

  • D

    somme vaut 14, objectif non atteint (il manque les termes 8 et 10)

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →
09Approfondir

Salma a écrit un programme Scratch qui doit afficher « Bravo » si le lutin a tracé plus de 3 carrés, et « Essaie encore » sinon. Voici son programme :

mettre [nb_carres] à 0
répéter 5 fois :
  répéter 4 fois :
    avancer de 60 pas
    tourner de 90 degrés
  ajouter 1 à [nb_carres]
si nb_carres > 3 alors :
  dire « Bravo »
si nb_carres < 3 alors :
  dire « Essaie encore »

Quand Salma teste son programme, le lutin ne dit rien du tout à la fin. Identifie l'erreur et propose le programme corrigé.

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →
12Approfondir

Yasmine veut programmer le lutin pour qu'il monte un escalier de 5 marches : à chaque marche, il avance de 20 pas puis monte de 20 pas (deux traits perpendiculaires). Elle veut aussi compter les marches montées et afficher le total. Voici son programme :

mettre [marches] à 5
répéter (marches) fois :
  avancer de 20 pas
  tourner de 90 degrés
  avancer de 20 pas
  tourner de 90 degrés
  ajouter 1 à [marches]
dire [marches]

Quand elle lance le programme, le lutin ne s'arrête jamais. Identifie l'erreur et récris le programme pour qu'il dessine exactement 5 marches et affiche 5.

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →
20Approfondir

Salma veut que le lutin trace un carré de côté 60, puis affiche « fini ». Voici son programme :

stylo en position d'écriture
répéter 4 fois :
  avancer de 60 pas
  tourner de 90 degrés
  dire « fini »

Quand elle teste, le lutin dessine bien un carré, mais affiche « fini » quatre fois au lieu d'une. Quelle est la cause exacte, et comment la corriger ?

  • A

    L'instruction « dire fini » est à l'intérieur de la boucle ; il faut la sortir et la placer après les 4 répétitions

  • B

    Il faut remplacer « répéter 4 fois » par « répéter 1 fois »

  • C

    Le carré est faux : il faut tourner de 60 degrés et avancer de 90 pas

  • D

    Il faut ajouter une variable compteur pour limiter les affichages

Correction pas à pasCrée un compte gratuit pour voir la correction détaillée et t'entraîner →