Je réserve ici
Mathématiques 4ᵉ

Ressources · 4ᵉ · Mathématiques

Programmation : tests, variables et boucles

Rappels de 5e et de 6e (blocs, directions, coordonnées du lutin, blocs opérateurs, boucle « répéter n fois », polygones réguliers), conditions et instructions conditionnelles « si … alors … sinon », variables (mettre à, ajouter à, compteur, somme), programmes de calcul avec des variables et expression littérale, événements, écrire, modifier et corriger un programme.

À propos de cette page
Ce cours de 4e sur la programmation avec Scratch reprend d’abord les acquis de 5e et de 6e (directions, coordonnées du lutin, blocs opérateurs, boucle « répéter n fois », polygones réguliers), puis enseigne les conditions et le bloc « si … alors … sinon », les variables (mettre à, ajouter à, compteur), les programmes de calcul écrits avec des variables et leur expression littérale, et l’écriture d’un programme déclenché par des touches.
1

Rappels de 5e et de 6e : blocs, coordonnées, calculs et boucle

Ce qu’il faut savoir Un algorithme est une suite finie et ordonnée d’instructions ; écrit dans un langage que comprend une machine, il devient un programme. Dans Scratch, chaque instruction est un bloc ; les blocs emboîtés forment un script, qui commande le lutin sur la scène. Un script s’exécute bloc par bloc, de haut en bas : l’ordre compte.
• Direction (6e) : 90 = vers la droite, 0 = vers le haut, 180 = vers le bas, −90 = vers la gauche. « tourner ↻ de … degrés » (sens des aiguilles d’une montre) ou « tourner ↺ de … degrés » change la direction sans déplacer le lutin ; « avancer de … pas » le déplace dans sa direction ; stylo en position d’écriture, il trace.
• Coordonnées (5e) : la scène est un repère d’origine (0 ; 0) au centre, x va de −240 à 240 et y de −180 à 180. « aller à x: … y: … » et « mettre x à … » recopient un nombre ; « ajouter … à x » (ou « à y ») ajoute un nombre à la coordonnée.
• Entrée et sortie (5e) : « demander … et attendre » range le nombre tapé dans « réponse » ; « dire … » l’affiche. Dans des blocs opérateurs emboîtés (écrits entre parenthèses dans le texte de cette page), le bloc le plus à l’intérieur est calculé en premier ; × s’écrit * et ÷ s’écrit /.
• Boucle (5e) : « répéter n fois » exécute n fois les blocs qu’elle contient. Un polygone régulier à n côtés se referme quand le lutin tourne de 360 ÷ n degrés à chaque coin.
quand le drapeau vert est cliquéaller à x: −150 y: −40demander Combien de pas ? et attendrerépéter 3 foisajouter réponse * 2 à xajouter 25 à y
Exemples
départaprès le 1ᵉʳ touraprès le 2ᵉ touraprès le 3ᵉ tour
x−150−701090
y−40−151035

On tape 40 : « réponse » vaut 40 et le bloc « réponse * 2 » vaut 40 × 2 = 80. Chaque tour ajoute 80 à x et 25 à y.

Après 3 tours : x = −150 + 3 × 80 = 90 et y = −40 + 3 × 25 = 35. Le lutin finit en (90 ; 35).

Directions, calculs et polygones

Exemples

Le lutin est orienté à 180 (vers le bas). Après « tourner ↻ de 90 degrés », il regarde vers la gauche : direction −90.

On tape 7. « dire ((réponse - 3) * réponse) » : le bloc intérieur donne 7 − 3 = 4, puis 4 × 7 = 28. Le lutin dit 28.

« répéter 6 fois [ avancer de 35 pas ; tourner ↺ de 60 degrés ] », stylo en position d’écriture : 6 × 60 = 360, le lutin fait un tour complet et la figure se referme. C’est un hexagone régulier : 6 × 35 = 210 pas de trait, et 6 × 2 = 12 blocs exécutés dans la boucle.

Réflexe — je lis le script de haut en bas et je note dans un tableau pas à pas ce qui change (direction, x, y, trait) ; pour une boucle, je calcule ce que fait un tour, puis je multiplie par le nombre de tours.

Attention — « ajouter 50 à x » n’est pas « mettre x à 50 » ; « tourner » ne fait pas avancer ; et pour un polygone régulier, l’angle dont tourne le lutin n’est pas l’angle du polygone : pour un hexagone régulier, le lutin tourne de 60 degrés alors que les angles de l’hexagone mesurent 120 degrés.

1 / 5

2

Conditions et instructions conditionnelles

Ce qu’il faut savoir Une condition est une affirmation qui est soit vraie, soit fausse : « réponse < 10 », « x > 200 », « réponse = 7 ». Dans Scratch, ce sont des blocs verts à bouts pointus ; on compare deux nombres avec < (strictement inférieur), > (strictement supérieur) ou =.
• « si condition alors [ A ] » : les blocs A sont exécutés seulement si la condition est vraie ; si elle est fausse, il ne se passe rien.
• « si condition alors [ A ] sinon [ B ] » : A si la condition est vraie, B si elle est fausse. Une seule des deux branches est exécutée, jamais les deux.
• Dans les deux cas, le script continue ensuite avec le bloc placé sous le « si ». La condition est évaluée avec les valeurs du moment où le bloc s’exécute.
quand le drapeau vert est cliquédemander Ta note sur 20 ? et attendresi réponse < 10 alorsdire Sous la moyennesinondire Moyenne atteinte
Exemples
nombre tapéréponse < 10le lutin dit
1414 < 10 : fausseMoyenne atteinte
1010 < 10 : fausseMoyenne atteinte
7,5 (Scratch : 7.5)7,5 < 10 : vraieSous la moyenne

Avec 10, la condition est fausse car « < » est strict : c’est la branche « sinon » qui est exécutée, et une note de 10 est bien comptée comme « moyenne atteinte ».

Une condition dans un déplacement

si abscisse x > 200 alorsmettre x à −200
Exemples

Le lutin est en (215 ; 30) : 215 > 200 est vraie, il passe en (−200 ; 30) : il ressort du côté gauche de la scène.

Le lutin est en (180 ; 30) : 180 > 200 est fausse, rien ne se passe : il reste en (180 ; 30).

Écrire la bonne condition

Exemples

Scratch n’a pas de bloc « ⩾ ». Pour « au moins 10 », on écrit la condition contraire, « réponse < 10 », et on place le message « au moins 10 » dans la branche « sinon », comme dans le script ci-dessus.

Si l’on ne tape que des nombres entiers, « réponse > 9 » convient aussi pour « au moins 10 » : un entier plus grand que 9 vaut 10 ou plus.

« si réponse < 14 alors dire 5 € sinon dire 8 € » (tarif réduit avant 14 ans) : pour 13, 13 < 14 est vraie, le lutin dit 5 € ; pour 14, 14 < 14 est fausse, il dit 8 €.

La condition peut contenir un calcul : « (réponse * 4) > 50 » est fausse pour 12 (48 > 50 est faux) et vraie pour 13 (52 > 50).

Avec des relatifs : pour −0,5, « réponse < 0 » est vraie ; pour 0, elle est fausse, car 0 n’est pas strictement inférieur à 0.

Réflexe — je remplace dans la condition chaque nom par sa valeur du moment, je décide « vraie » ou « fausse », puis j’exécute une seule branche et je continue sous le bloc « si ».

Attention — « < » et « > » sont stricts : 10 < 10 est fausse. Avec un « si … alors » sans « sinon », une condition fausse ne déclenche rien : ce n’est pas une erreur du programme.

2 / 5

3

Les variables : mettre à, ajouter à, compteur

Ce qu’il faut savoir Une variable informatique est une case de la mémoire qui porte un nom (score, total, jetons…) et contient une valeur qui peut changer pendant le programme. On la crée dans la catégorie « Variables » : ses blocs sont orange.
• « mettre jetons à 20 » : la variable prend la valeur 20 ; l’ancienne valeur est effacée. Au début d’un script, on initialise ainsi chaque variable.
• « ajouter 5 à jetons » : la nouvelle valeur est l’ancienne plus 5 ; « ajouter −3 à jetons » enlève 3.
• Le bloc rond « jetons » donne la valeur du moment : on peut l’utiliser dans un calcul, une condition, un déplacement ou « dire ». « mettre jetons à (jetons * 2) » double la valeur.
• Une variable qui augmente de 1 à chaque fois qu’un événement se produit est un compteur. « réponse » est une variable particulière, remplie par « demander ».
quand le drapeau vert est cliquémettre jetons ▾ à 20répéter 4 foisajouter −3 à jetons ▾mettre jetons ▾ à jetons * 2dire jetons
Exemples
après le blocjetons
mettre jetons à 2020
1ᵉʳ tour : ajouter −317
2ᵉ tour14
3ᵉ tour11
4ᵉ tour8
mettre jetons à (jetons * 2)16

La boucle enlève 4 × 3 = 12 jetons : 20 − 12 = 8. Puis le dernier « mettre » remplace 8 par 8 × 2 = 16. Le lutin dit 16.

Une somme calculée dans une boucle

quand le drapeau vert est cliquémettre n ▾ à 5mettre somme ▾ à 0répéter 4 foisajouter n à somme ▾ajouter 5 à n ▾dire somme
Exemples
départ1ᵉʳ tour2ᵉ tour3ᵉ tour4ᵉ tour
somme00 + 5 = 55 + 10 = 1515 + 15 = 3030 + 20 = 50
n510152025

À chaque tour, on ajoute d’abord la valeur de n à somme, puis on augmente n de 5. Le lutin dit 50 (5 + 10 + 15 + 20).

Si l’on échange les deux blocs de la boucle, n augmente avant d’être ajouté : somme = 10 + 15 + 20 + 25 = 70.

Copier une valeur

Exemples

« mettre a à 8 ; mettre b à a ; ajouter 3 à a » : b reçoit la valeur 8 au moment du deuxième bloc ; ensuite a passe à 11, mais b reste 8. Une variable ne « suit » pas celle dont elle a copié la valeur.

Réflexe — je fais un tableau d’état : une colonne par variable, une ligne par bloc (ou par tour de boucle), et je n’écris la nouvelle valeur qu’après avoir fait le calcul avec l’ancienne.

Attention — « mettre … à » remplace, « ajouter … à » cumule. Une variable qu’on oublie d’initialiser garde la valeur laissée par l’exécution précédente. Et dans une boucle, l’ordre des blocs change le résultat (50 ou 70 ci-dessus).

3 / 5

4

Programmes de calcul avec des variables

Ce qu’il faut savoir Dans un programme de calcul écrit avec des variables, on range le nombre choisi dans une variable (« mettre n à réponse »), puis chaque bloc modifie une variable résultat r.
• Avec un nombre : on déroule le script dans un tableau d’état et on obtient ce que dit le lutin.
• Avec une lettre : on déroule le script en gardant la lettre n ; on obtient une expression littérale, que l’on peut réduire. « mettre r à (r * 3) » multiplie toute la valeur de r : on écrit des parenthèses.
• Retrouver le nombre choisi : on écrit que l’expression est égale au résultat annoncé, et on résout l’équation.
• Deux scripts qui donnent la même expression réduite donnent le même résultat pour tous les nombres choisis.
quand le drapeau vert est cliquédemander Choisis un nombre et attendremettre n ▾ à réponsemettre r ▾ à n + 6mettre r ▾ à r * 3mettre r ▾ à r - ndire r
Exemples
blocavec 5avec −4avec la lettre n
mettre n à réponse5−4n
mettre r à (n + 6)112n + 6
mettre r à (r * 3)3363(n + 6)
mettre r à (r - n)28103(n + 6) − n

3(n + 6) − n = 3n + 18 − n = 2n + 18. Vérification avec 5 : 2 × 5 + 18 = 28, comme dans le tableau.

Retrouver le nombre choisi

Exemples

Le lutin a dit 40. Il faut 2n + 18 = 40, donc 2n = 22 et n = 11. Vérification : 11 + 6 = 17, 17 × 3 = 51, 51 − 11 = 40.

Deux scripts équivalents

quand le drapeau vert est cliquédemander Choisis un nombre et attendremettre n ▾ à réponsemettre r ▾ à n * 2ajouter 18 à r ▾dire r
Exemples

Ce script calcule 2n + 18 directement : « mettre r à (n * 2) » puis « ajouter 18 à r ».

Les deux scripts ont la même expression réduite, 2n + 18 : ils disent le même nombre, quel que soit le nombre choisi.

Réflexe — pour trouver l’expression, je déroule le script avec la lettre n, puis je la vérifie avec une valeur simple ; pour retrouver le nombre choisi, je résous une équation et je vérifie en relançant le script à la main.

Attention — « mettre r à (r * 3) » après « mettre r à (n + 6) » donne 3(n + 6) = 3n + 18, pas 3n + 6. Et la variable n ne change pas quand r change : dans le dernier bloc, n vaut toujours le nombre choisi.

4 / 5

5

Écrire et modifier un programme : événements, déplacements et figures

Ce qu’il faut savoir • Un événement déclenche un script : « quand le drapeau vert est cliqué », « quand la touche … est pressée ». Chaque appui sur la touche exécute le script une fois, en entier. Plusieurs scripts peuvent commander le même lutin et utiliser les mêmes variables.
• Pour écrire un programme : je découpe l’objectif en étapes ; ce qui se répète va dans une boucle, ce qui dépend d’une situation dans un « si », ce qui change ou se compte dans une variable ; puis je teste à la main avec des valeurs.
• Pour modifier un programme : je change un paramètre, ou je remplace un nombre par une variable (par exemple le nombre de côtés tapé par l’utilisateur).
• « nombre aléatoire entre 1 et 6 » (bloc vert) donne un entier au hasard de 1 à 6 : on simule ainsi le lancer d’un dé.
• Corriger (déboguer) un programme : je le déroule à la main pour trouver le bloc mal placé ou le mauvais nombre.
quand le drapeau vert est cliquéaller à x: −60 y: −100mettre appuis ▾ à 0quand la touche flèche droite est presséeajouter 40 à xajouter 1 à appuis ▾si abscisse x > 200 alorsmettre x à −200
Exemples
appui sur la flèche droite1234567
x−202060100140180−200
appuis1234567

Au 7ᵉ appui, x passe de 180 à 220 ; 220 > 200 est vraie, donc x est remis à −200. Le compteur « appuis » vaut 7.

Un polygone choisi par l’utilisateur

quand le drapeau vert est cliquédemander Nombre de côtés ? et attendremettre n ▾ à réponsestylo en position d’écriturerépéter n foisavancer de 40 pastourner de 360 / n degrés
Exemples

On tape 8 : n vaut 8, le lutin tourne de 360 ÷ 8 = 45 degrés à chaque coin et trace un octogone régulier : 8 × 40 = 320 pas de trait.

On tape 3 : 360 ÷ 3 = 120 degrés, un triangle équilatéral de 3 × 40 = 120 pas de trait. Le même script trace tous les polygones réguliers.

Trouver et corriger une erreur

quand le drapeau vert est cliquérépéter 5 foismettre points ▾ à 0ajouter 2 à points ▾dire points
Exemples

On veut ajouter 2 points cinq fois, donc obtenir 10. Mais « mettre points à 0 » est dans la boucle : à chaque tour, points repart de 0 et vaut 2. Le lutin dit 2.

Correction : placer « mettre points à 0 » avant la boucle. Le lutin dit alors 5 × 2 = 10.

Réflexe — boucle pour ce qui se répète, « si » pour un choix, variable pour ce qui change ou se compte ; je teste mon programme à la main, appui par appui ou tour par tour.

Attention — un bloc « mettre … à » placé dans une boucle remet la variable à sa valeur de départ à chaque tour ; et un script lancé par une touche s’exécute à chaque appui, pas une seule fois.

5 / 5

+

Pour aller plus loin

Avant et après ce chapitre — multiplier des nombres relatifs (« réponse * réponse » avec un nombre négatif) : Relatifs : multiplier, diviser, enchaîner les opérations ; développer et réduire l’expression d’un programme de calcul : Calcul littéral : développer, factoriser, réduire ; retrouver le nombre choisi : Équations : résoudre une équation du premier degré ; simuler une expérience aléatoire : Probabilités : événement contraire et issues non équiprobables.

Se verra en 3e — les conditions composées : « (x > 0) et (x < 10) » est vraie seulement si les deux conditions le sont ; « (C1) ou (C2) » est vraie dès qu’au moins une l’est ; « non (x < 5) » est vraie quand x < 5 est fausse (pour x = 5 par exemple). La boucle « répéter jusqu’à ce que … » recommence tant que sa condition est fausse et s’arrête dès qu’elle devient vraie : « mettre n à 1 ; répéter jusqu’à ce que n > 50 [ mettre n à (n * 2) ] » s’arrête avec n = 64 ; si la condition ne devient jamais vraie, la boucle ne s’arrête pas. La boucle « répéter indéfiniment » sert aux jeux. On y place aussi une boucle dans une autre pour répéter un motif (une rosace de carrés), et l’on crée ses propres blocs pour découper un problème.

À retenir
  • Un script s’exécute bloc par bloc, de haut en bas, à partir d’un événement ; pour une boucle « répéter n fois », on calcule un tour puis on multiplie. Polygone régulier à n côtés : 360 ÷ n degrés à chaque coin.
  • Une condition est vraie ou fausse ; « < » et « > » sont stricts. « si … alors … sinon » exécute une seule des deux branches.
  • Une variable porte un nom et une valeur : « mettre … à » remplace, « ajouter … à » cumule. On initialise ses variables au début du script.
  • Un programme de calcul déroulé avec la lettre n donne une expression littérale ; on retrouve le nombre choisi en résolvant une équation.
  • Pour écrire un programme : boucle pour ce qui se répète, « si » pour un choix, variable pour ce qui change ou se compte ; on le teste à la main pour le corriger.

Questions fréquentes

Comment prévoir ce que fait un script Scratch sans l’exécuter ?

On le lit de haut en bas et on note dans un tableau pas à pas ce qui change : direction, coordonnées du lutin, valeurs des variables. Pour une boucle « répéter n fois », on calcule ce que fait un tour, puis on multiplie : « répéter 4 fois [ ajouter 15 à x ] » ajoute 4 × 15 = 60 à l’abscisse.

Comment fonctionne le bloc « si … alors … sinon » dans Scratch ?

Il évalue une condition, c’est-à-dire une affirmation vraie ou fausse comme « réponse > 15 ». Si elle est vraie, Scratch exécute les blocs de « alors » ; si elle est fausse, ceux de « sinon » : jamais les deux. Les signes sont stricts : pour 15, « réponse > 15 » est fausse.

Quelle est la différence entre « mettre score à 0 » et « ajouter 1 à score » ?

« mettre score à 0 » remplace la valeur de la variable par 0 : on l’utilise au début du script pour l’initialiser. « ajouter 1 à score » part de la valeur du moment : si score vaut 7, il passe à 8. Une variable qui augmente de 1 à chaque événement est un compteur.

Comment trouver l’expression littérale d’un programme de calcul écrit en Scratch ?

On déroule le script avec une lettre n à la place du nombre choisi : « mettre r à (n - 2) » puis « mettre r à (r * 5) » donne r = 5(n − 2) = 5n − 10. On vérifie avec une valeur : pour 4, le script donne (4 − 2) × 5 = 10, et 5 × 4 − 10 = 10.

Comment écrire ou corriger un programme Scratch ?

On découpe l’objectif en étapes : une boucle pour ce qui se répète, un « si » pour un choix, une variable pour ce qui change ou se compte. On le teste à la main avec des valeurs. Une erreur fréquente : un « mettre … à 0 » placé dans la boucle, qui remet la variable à 0 à chaque tour.

Bloqué sur ce chapitre ?

Moi c'est Ben, j'ai créé ce site pour aider le plus d'élèves possible, partout en France. Je peux aussi reprendre avec toi ce qui coince en cours particulier : en visio, ou à domicile si tu es à Marseille.

Prof de maths à Marseille · Cours particuliers au collège · Aide aux devoirs