Variables et compteurs (4e) Tuto

Variables et compteurs

Durée estimée
10 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Ce tuto fait suite à Dessiner avec le stylo. Jusqu'à présent, tous les nombres écrits dans nos programmes étaient figés (le côté valait $80$, l'angle $90$…). On va découvrir un outil très puissant pour rendre un programme flexible : la variable. Avec une variable, un seul programme peut tracer un triangle, un carré, un pentagone ou un dodécagone — il suffit de changer une valeur.

À quoi sert une variable

Une variable, en programmation, est une boîte étiquetée qui retient un nombre (ou un texte). On donne un nom à cette boîte (par exemple score ou N), et on peut à tout moment :

  • y déposer une valeur (« mettre score à $0$ ») ;
  • en lire la valeur courante (« avancer de côté pas ») ;
  • la modifier (« ajouter $10$ à score »).

Remarque

Le nom « variable » vient du fait que sa valeur peut varier au cours du programme. Contraste avec un nombre comme $80$ : celui-là est constant, il ne peut pas changer.

Créer une variable

Dans la palette de blocs, cliquer sur la catégorie Variables (orange). Au-dessus de la liste des blocs apparaît un bouton Créer une variable.

  1. Cliquer sur Créer une variable. Une boîte de dialogue s'ouvre.
  2. Saisir le nom souhaité (par exemple score).
  3. Garder l'option par défaut Pour tous les lutins (la variable sera utilisable partout dans le projet).
  4. Valider avec OK.
Boîte de dialogue Scratch Nouvelle variable, avec un champ de saisie pour le nom et deux options de portée (Pour tous les lutins, Pour ce lutin uniquement)

Une fois validée, la variable apparaît dans la palette accompagnée d'une case à cocher et de nouveaux blocs spécifiques. La case à cocher permet d'afficher ou non la valeur de la variable sur la scène — très utile pour suivre ce qui se passe pendant l'exécution.

Affecter et modifier une valeur

Deux blocs sont essentiels pour manipuler une variable :

mettre … à …Affectation : remplace la valeur courante de la variable par celle indiquée
ajouter … à …Incrément : ajoute la valeur indiquée à la valeur courante (sans la remplacer)

Attention

Ne pas confondre les deux : mettre score à $5$ efface l'ancienne valeur et la remplace par $5$, tandis que ajouter $5$ à score augmente l'ancienne valeur de $5$. Si score valait $10$, le premier bloc donne $5$, le second donne $15$.

Un petit compteur

On veut afficher un compteur qui démarre à $0$ et augmente de $10$ toutes les secondes, pendant $5$ secondes.

Programme Scratch créant une variable score, l'initialisant à 0 puis ajoutant 10 toutes les secondes pendant cinq répétitions

À l'exécution, l'affichage de la variable sur la scène passe de $0$ à $10$, puis $20$, $30$, $40$ et enfin $50$, une valeur par seconde.

Projet : compteur .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Afficher une variable sur la scène

Quand une variable est créée, Scratch l'affiche automatiquement en haut à gauche de la scène, dans un petit cadre. On peut :

  • Cocher / décocher la case à côté du nom (palette Variables) pour afficher ou cacher l'étiquette ;
  • Cliquer droit sur l'étiquette dans la scène pour choisir le format : normal, grand affichage (uniquement la valeur, sans le nom) ou curseur (un slider qu'on peut bouger à la souris) ;
  • Déplacer l'étiquette en la glissant ailleurs sur la scène.
Scène Scratch montrant en haut à gauche l'étiquette d'affichage de la variable score, avec la valeur 30 à droite du nom

Remarque

Les blocs montrer la variable et cacher la variable permettent aussi de contrôler l'affichage depuis le programme, ce qui est pratique pour ne montrer le score qu'à la fin d'une partie, par exemple.

Utiliser la valeur d'une variable

L'étiquette d'une variable dans la palette est un petit bloc rond (par exemple le bloc rond orange étiqueté « score »). On peut le faire glisser à l'intérieur du champ rond de n'importe quel autre bloc, à la place d'un nombre.

Avancer d'un nombre variable de pas

Programme Scratch dans lequel le bloc avancer prend en argument la valeur de la variable côté à la place d'un nombre fixe

Le lutin avance de $50$ pas. Si on remplace plus tard $50$ par $120$ dans le bloc mettre, il avancera de $120$ pas — sans modifier le bloc avancer.

Paramétrer un polygone

C'est ici que les variables deviennent vraiment utiles. Dans le tuto précédent, on a écrit quatre programmes différents pour tracer le triangle, le carré, le pentagone et l'hexagone. Avec une variable N, on peut tout faire avec un seul programme.

Polygone régulier paramétré

Pour tracer un polygone régulier à $N$ côtés, on utilise une variable N et le programme :

  • mettre N à la valeur souhaitée ;
  • répéter N fois : avancer de la longueur du côté, tourner de $\dfrac{360}{N}$ degrés.

Polygone universel

Programme Scratch traçant un polygone régulier à N côtés, où N est une variable que l'on règle à 6 pour obtenir un hexagone

Pour passer d'un polygone à un autre, il suffit maintenant de changer une seule valeur : celle de N. Le bloc « $360 / N$ » utilise le bloc opérateur (vert clair) qui effectue la division. Le calcul s'adapte automatiquement.

Scène Scratch montrant l'affichage de la variable N à 6 en haut et un hexagone bleu tracé au centre

Projet : polygone paramétré (touches 3 à 8) .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Astuce

Dans le projet téléchargeable, cinq préréglages sont disponibles au clavier : touches 3, 4, 5, 6 et 8. Chaque touche règle la valeur de N correspondante ; l'angle $360 / N$ est recalculé automatiquement par l'opérateur. Il suffit ensuite de cliquer sur le drapeau vert pour tracer le polygone et observer comment il change de forme.

Attention

Le polygone sort de la scène pour N grand — Avec une longueur de côté fixée à $80$ pas, le polygone grandit avec $N$ : le diamètre vaut environ $\dfrac{80}{\sin(180°/N)}$, soit environ $310$ pixels dès $N = 12$, à comparer à la scène qui mesure $480$ pixels de large et $360$ de haut. Au-delà de $N = 8$ ou $9$, le lutin sort par le haut ou le côté pendant le tracé.

Important : les calculs internes restent corrects — la position du lutin est mise à jour normalement, même hors scène, et il revient bien à son point de départ à la fin. Seul le rendu du stylo est coupé : Scratch ne dessine rien en dehors du cadre, d'où l'impression visuelle que le polygone « part en biais » et ne se referme pas.

Pour qu'un polygone à $N$ grand rentre dans la scène, il faut réduire la longueur du côté. La formule $\text{côté} = 200 \times \sin(180° / N)$ maintient un rayon constant de $100$ pixels (côté $\approx 100$ pour l'hexagone, $\approx 52$ pour le dodécagone). C'est exactement l'idée de l'exercice de fin de tuto avec deux variables.

Demander à l'utilisateur

Pour rendre un programme interactif, on peut demander à l'utilisateur de saisir une valeur. Le bloc demander … et attendre se trouve dans la catégorie Capteurs (bleu clair). Il affiche une question en bas de la scène et stocke la réponse dans la variable spéciale réponse.

Quel polygone veux-tu ?

Programme Scratch qui demande à l'utilisateur le nombre de côtés du polygone, stocke la réponse dans une variable et trace le polygone correspondant

À l'exécution, le lutin pose la question en bas de la scène. L'utilisateur tape un nombre (par exemple $5$), appuie sur Entrée, et le programme trace le pentagone correspondant.

Scène Scratch avec en bas la barre de question du bloc demander affichant Combien de côtés ? et un champ de saisie

Remarque

La variable réponse est créée automatiquement par Scratch : on n'a pas besoin de la déclarer. Elle est mise à jour à chaque fois qu'un bloc demander est exécuté et que l'utilisateur saisit une valeur.

Récapitulatif des blocs Variables

Bloc Effet
mettre … à … Remplace la valeur de la variable par celle indiquée (affectation)
ajouter … à … Augmente la valeur de la variable de la quantité indiquée
montrer la variable … Affiche l'étiquette de la variable sur la scène
cacher la variable … Cache l'étiquette de la variable
Bloc rond nom de la variable Représente la valeur courante ; à glisser dans un champ rond

À toi de jouer

Modifier le programme « polygone universel » pour qu'il utilise deux variables : N (nombre de côtés) et cote (longueur en pas). Tester avec un hexagone de côté $40$, puis un octogone de côté $60$.

Corrigé

Il suffit de créer une seconde variable cote et de la fixer en début de programme, puis de l'utiliser à la place du nombre $80$ dans le bloc avancer :

Programme Scratch traçant un polygone régulier paramétré par deux variables N pour le nombre de côtés et cote pour la longueur

Pour l'octogone de côté $60$, on remplace simplement le $6$ par $8$ et le $40$ par $60$ dans les deux blocs mettre.

Astuce

Projet tout-en-un — Le fichier ci-dessous regroupe les programmes du tuto : compteur (touche c), polygone paramétré (drapeau vert), choix du nombre de côtés au clavier (touches 3, 4, 5, 6 ou 8). Ouvrir le projet dans Scratch avec Fichier > Importer depuis votre ordinateur.

Projet tout-en-un .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Remarque

Avec une variable, on peut maintenant écrire un seul programme qui s'adapte à plusieurs situations. Mais on ne sait pas encore réagir différemment selon la valeur d'une variable — par exemple, n'autoriser que les valeurs $N \geq 3$ pour le polygone. Pour cela, il faut découvrir les instructions conditionnelles : c'est le sujet du tuto suivant, Si… alors : les conditions.