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'entree standard dans Scratch qui permet de poser une question a l'utilisateur et de recuperer sa reponse. Cette reponse est automatiquement stockee dans la variable speciale 'reponse'. Pour l'utiliser dans un calcul, il faut ensuite affecter cette valeur 'reponse' a une variable de ton choix avec le bloc 'mettre [variable] a [reponse]'. Pense que ce bloc s'arrete et attend que l'utilisateur ait tape sa reponse avant de continuer le script.

2Quelle boucle est adaptee pour repeter une action un nombre precis de fois, par exemple 10 fois ?

Voir la réponse

repeter [10] fois

La boucle 'repeter [10] fois' est une boucle 'Pour' (For loop). Elle execute les blocs a l'interieur exactement le nombre de fois indique (ici 10). C'est la boucle a utiliser quand on connait a l'avance le nombre de repetitions necessaire. La boucle 'repeter jusqu'a' est une boucle 'Tant que' (While loop) utilisee quand on veut repeter jusqu'a ce qu'une condition devienne vraie, sans savoir combien d'iterations seront necessaires. 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 superieure ou egale a 100. Quel script est correct ?

Voir la réponse

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

L'enonce precise 'superieure ou egale a 100'. Il faut donc utiliser l'operateur de comparaison '>=', qui signifie 'superieur ou egal'. L'option B utilise '>', qui signifie 'strictement superieur', donc un score de 100 ne declencherait pas le message. L'option A utilise une boucle 'repeter jusqu'a', ce qui ferait repeter 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 'repeter jusqu'a'), ce qui aurait le meme probleme de repetition infinie.

4Quelle est la valeur finale de la variable 'compteur' apres l'execution de ce script ? Script : 'mettre [compteur] a [5]' puis 'repeter [3] fois' avec a l'interieur 'ajouter [2] a [compteur]'.

Voir la réponse

11

Il faut derouler 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. Deuxieme tour : compteur = 7 + 2 = 9. Troisieme tour : compteur = 9 + 2 = 11. La valeur finale est donc 11. Pour eviter les erreurs, tu peux aussi calculer directement : valeur initiale + (nombre de repetitions * valeur ajoutee) = 5 + (3 * 2) = 11.

5Quel operateur logique Scratch permet de verifier si DEUX conditions sont vraies en meme temps ? Par exemple, 'score > 50 ET vie > 0'.

Voir la réponse

< et >

L'operateur 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 resultat est faux. L'operateur 'ou' (option C) renvoie vrai si au moins une des deux conditions est vraie. L'operateur 'non' (option D) inverse une seule condition (vrai devient faux et vice-versa). L'option A n'est pas un operateur logique standard.

6Quelle est la difference 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 difference fondamentale est liee a la quantite de donnees stockees. Une variable est comme une boite etiquetee 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 ecrasee. Une liste (ou tableau) est comme une collection de boites numerotees (les indices) qui peut contenir plusieurs valeurs. On peut acceder a une valeur particuliere en precisant sa position (son indice, par exemple 'element 3 de la liste notes'). Cela est tres utile pour stocker une serie 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 critere au Brevet, et on peut parfaitement utiliser les elements d'une liste dans des calculs.

7On execute le script suivant : 'mettre [x] a [1]' puis 'repeter [4] fois' avec a l'interieur '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'evolution de x tour par tour. Initialisation : x = 1. Boucle (4 repetitions) : 1) Premier tour : x = 1 * 2 = 2. 2) Deuxieme tour : x = 2 * 2 = 4. 3) Troisieme tour : x = 4 * 2 = 8. 4) Quatrieme 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 repetitions (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 decision parmi plusieurs possibilites (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 premiere condition, si elle est fausse on teste la suivante avec 'sinon si', et ainsi de suite. Le 'sinon' final gere tous les cas non prevus. Les boucles (option A) servent a repeter, 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 degres (vers l'est/la droite).

Il est crucial de distinguer 's'orienter a [angle]' et 'tourner de [angle] degres'. 'S'orienter a' definit l'orientation ABSOLUE du lutin par rapport au systeme de coordonnees de la scene. 0 degre = direction haut (nord), 90 degres = direction droite (est), 180 degres = direction bas (sud), -90 degres = direction gauche (ouest). 'Tourner de', quant a lui, effectue une rotation RELATIVE par rapport a la direction actuelle (ex: tourner de 90 degres ajoute 90 a l'orientation actuelle). L'option A decrit un 'avancer de', l'option B decrit 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 [element] dans [nombres]' avec a l'interieur 'si <(element) > (max)> alors mettre [max] a (element)'. 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 negatifs, il faudrait l'initialiser au premier element). Ensuite, la boucle 'pour chaque' parcourt tous les elements de la liste. Pour chaque element, on compare sa valeur a la valeur actuelle de 'max'. Si l'element est plus grand, il devient le nouveau 'max'. Parcours : max=0, element=5 (5>0? Oui -> max=5), element=8 (8>5? Oui -> max=8), element=3 (3>8? Non), element=12 (12>8? Oui -> max=12), element=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