Mathematiques · 3eme

Algorithmique et programmation Scratch — Entraînement Brevet 2026

10 questions corrigées avec explications détaillées pour maîtriser ce chapitre du Brevet.

📖L'essentiel à retenir

L'algorithmique en Scratch consiste à créer des programmes en assemblant des blocs visuels. Il faut comprendre les structures de base : séquences d'instructions, boucles et conditions. Ces programmes permettent de résoudre des problèmes mathématiques simples comme calculer des périmètres ou générer des suites de nombres.

🎯 Points clés

  • 1Les boucles : Utiliser les blocs 'répéter' ou 'répéter jusqu'à' pour automatiser des actions répétitives, comme dessiner un polygone ou afficher une table de multiplication.
  • 2Les conditions : Employer les blocs 'si...alors' ou 'si...alors...sinon' pour que le programme prenne des décisions selon des critères, par exemple vérifier si un nombre est pair ou impair.
  • 3Les variables : Créer et utiliser des variables pour stocker des informations (compteurs, résultats de calculs) et les modifier pendant l'exécution du programme.

📐 Formule / Règle

Pour un script efficace : 1) Initialiser les variables au début, 2) Utiliser des boucles pour éviter la répétition de blocs, 3) Tester avec différentes valeurs.

⚠️ Piège à éviter

Oublier de réinitialiser une variable (comme un compteur ou un accumulateur) avant de relancer le programme, ce qui fausse les résultats. Toujours utiliser un bloc 'mettre [variable] à 0' au début du script si nécessaire.

Questions-Réponses

1Quel bloc Scratch permet de demander une valeur a l'utilisateur et de la stocker dans une variable ?

Voir la réponse

demander [Entrez un nombre] et attendre

Le bloc 'demander [texte] et attendre' est le seul bloc d'entrée standard dans Scratch qui permet de poser une question a l'utilisateur et de récupérer sa réponse. Cette réponse est automatiquement stockée dans la variable spéciale 'réponse'. Pour l'utiliser dans un calcul, il faut ensuite affecter cette valeur 'réponse' a une variable de ton choix avec le bloc 'mettre [variable] a [réponse]'. Pense que ce bloc s'arrete et attend que l'utilisateur ait tape sa réponse avant de continuer le script.

2Quelle boucle est adaptée pour répéter une action un nombre précis de fois, par exemple 10 fois ?

Voir la réponse

répéter [10] fois

La boucle 'répéter [10] fois' est une boucle 'Pour' (For loop). Elle execute les blocs a l'intérieur exactement le nombre de fois indique (ici 10). C'est la boucle a utiliser quand on connaît a l'avance le nombre de répétitions nécessaire. La boucle 'répéter jusqu'a' est une boucle 'Tant que' (While loop) utilisée quand on veut répéter jusqu'a ce qu'une condition devienne vraie, sans savoir combien d'iterations seront nécessaires. Le 'si alors' n'est pas une boucle, c'est une conditionnelle qui ne s'execute qu'une fois.

3On veut que le lutin dise 'Bravo !' uniquement si la variable 'score' est supérieure ou egale a 100. Quel script est correct ?

Voir la réponse

si <(score) >= [100]> alors dire [Bravo !]

L'énoncé précise 'supérieure ou egale a 100'. Il faut donc utiliser l'opérateur de comparaison '>=', qui signifie 'supérieur ou égal'. L'option B utilise '>', qui signifie 'strictement supérieur', donc un score de 100 ne déclencherait pas le message. L'option A utilise une boucle 'répéter jusqu'a', ce qui ferait répéter le message 'Bravo !' en boucle une fois la condition atteinte, ce qui n'est pas demande. L'option D utilise une boucle 'tant que' (qui n'existe pas sous ce nom en Scratch, c'est 'répéter jusqu'a'), ce qui aurait le même problème de répétition infinie.

4Quelle est la valeur finale de la variable 'compteur' après l'exécution de ce script ? Script : 'mettre [compteur] a [5]' puis 'répéter [3] fois' avec a l'intérieur 'ajouter [2] a [compteur]'.

Voir la réponse

11

Il faut dérouler l'algorithme pas a pas. 1) Initialisation : compteur = 5. 2) Boucle : elle se repete 3 fois. A chaque tour, on ajoute 2 au compteur. Premier tour : compteur = 5 + 2 = 7. Deuxième tour : compteur = 7 + 2 = 9. Troisième tour : compteur = 9 + 2 = 11. La valeur finale est donc 11. Pour éviter les erreurs, tu peux aussi calculer directement : valeur initiale + (nombre de répétitions * valeur ajoutée) = 5 + (3 * 2) = 11.

5Quel opérateur logique Scratch permet de vérifier si DEUX conditions sont vraies en même temps ? Par exemple, 'score > 50 ET vie > 0'.

Voir la réponse

< et >

L'opérateur logique 'et' (represente par '< et >' dans les blocs verts) combine deux conditions. Le bloc complet '<[condition1] et [condition2]>' ne renvoie la valeur 'vrai' que si la condition1 ET la condition2 sont toutes les deux vraies. Si au moins une est fausse, le résultat est faux. L'opérateur 'ou' (option C) renvoie vrai si au moins une des deux conditions est vraie. L'opérateur 'non' (option D) inverse une seule condition (vrai devient faux et vice-versa). L'option A n'est pas un opérateur logique standard.

6Quelle est la différence principale entre les variables et les listes (ou tableaux) en algorithmique ?

Voir la réponse

Une variable stocke une seule valeur, une liste peut en stocker plusieurs.

La différence fondamentale est liée a la quantité de données stockées. Une variable est comme une boite étiquetée qui ne peut contenir qu'une seule valeur a la fois (un nombre, un texte, etc.). Si on lui affecte une nouvelle valeur, l'ancienne est écrasée. Une liste (ou tableau) est comme une collection de boites numérotées (les indices) qui peut contenir plusieurs valeurs. On peut accéder a une valeur particulière en précisant sa position (son indice, par exemple 'élément 3 de la liste notes'). Cela est très utile pour stocker une série de scores, une liste de noms, etc. Les options A, C et D sont fausses : une liste peut contenir du texte ou des nombres, la vitesse n'est pas le critère au Brevet, et on peut parfaitement utiliser les éléments d'une liste dans des calculs.

7On execute le script suivant : 'mettre [x] a [1]' puis 'répéter [4] fois' avec a l'intérieur 'mettre [x] a ((x) * (2))'. Quelle est la valeur finale de x ?

Voir la réponse

16

Ce script calcule les puissances de 2. Il faut suivre l'évolution de x tour par tour. Initialisation : x = 1. Boucle (4 répétitions) : 1) Premier tour : x = 1 * 2 = 2. 2) Deuxième tour : x = 2 * 2 = 4. 3) Troisième tour : x = 4 * 2 = 8. 4) Quatrième tour : x = 8 * 2 = 16. La valeur finale est donc 16. On peut aussi le voir comme 1 * 2^4 = 16. Attention a ne pas confondre le nombre de répétitions (4) avec l'exposant final. Ici, on multiplie 4 fois par 2 a partir de 1, ce qui donne 2^4.

8Quelle structure algorithmique permet de choisir entre plusieurs actions en fonction de la valeur d'une variable ?

Voir la réponse

L'instruction 'si...sinon si...sinon'

Quand on a besoin de prendre une décision parmi plusieurs possibilités (par exemple, attribuer une mention en fonction d'une note : 'TB' si note >= 16, 'B' si note >= 14, etc.), une simple condition 'si...sinon' (option B) ne suffit pas car elle ne gere que deux cas. La structure 'si...sinon si...sinon' permet d'enchaîner plusieurs tests : on teste la première condition, si elle est fausse on teste la suivante avec 'sinon si', et ainsi de suite. Le 'sinon' final gere tous les cas non prévus. Les boucles (option A) servent a répéter, pas a choisir. L'initialisation (option D) est juste une affectation.

9Dans Scratch, que fait l'instruction 's'orienter a [90]' ?

Voir la réponse

Le lutin prend la direction correspondant a 90 degrés (vers l'est/la droite).

Il est crucial de distinguer 's'orienter a [angle]' et 'tourner de [angle] degrés'. 'S'orienter a' définit l'orientation ABSOLUE du lutin par rapport au système de coordonnées de la scène. 0 degré = direction haut (nord), 90 degrés = direction droite (est), 180 degrés = direction bas (sud), -90 degrés = direction gauche (ouest). 'Tourner de', quant a lui, effectue une rotation RELATIVE par rapport a la direction actuelle (ex: tourner de 90 degrés ajoute 90 a l'orientation actuelle). L'option A décrit un 'avancer de', l'option B décrit un 'tourner de'.

10On a une liste 'nombres' contenant [5, 8, 3, 12, 1]. On execute : 'mettre [max] a [0]' puis une boucle 'pour chaque [élément] dans [nombres]' avec a l'intérieur 'si <(élément) > (max)> alors mettre [max] a (élément)'. Que contient la variable 'max' a la fin ?

Voir la réponse

12

Cet algorithme est un classique : la recherche du maximum dans une liste. On initialise 'max' a une valeur faible (ici 0, mais attention si la liste ne contenait que des nombres négatifs, il faudrait l'initialiser au premier élément). Ensuite, la boucle 'pour chaque' parcourt tous les éléments de la liste. Pour chaque élément, on compare sa valeur a la valeur actuelle de 'max'. Si l'élément est plus grand, il devient le nouveau 'max'. Parcours : max=0, élément=5 (5>0? Oui -> max=5), élément=8 (8>5? Oui -> max=8), élément=3 (3>8? Non), élément=12 (12>8? Oui -> max=12), élément=1 (1>12? Non). La valeur finale de max est donc 12, le plus grand nombre de la liste.

Prêt(e) à tester tes connaissances ?

Passe au quiz interactif pour voir si tu maîtrises ce chapitre !

Lancer le quiz →

Continue ta révision

Ketty