Leçon 7:

Variables et expressions

Variables

Les données manipulées par un programme sont stockées dans la mémoire de l'ordinateur. Pour accéder à la zone de mémoire correspondant à une donnée, le programmeur associe une variable à la donnée.

Le nom d'une variable est défini par le programmeur. Ce nom permet à l'ordinateur de retrouver la donnée associée dans sa mémoire. Le nom correspond à l'adresse de la donnée dans la mémoire. Un nom de variable est formé de lettres et de chiffres sans espaces, doit commencer par une lettre et contenir au maximum 32 caractères. Il doit être différent des mots-clefs du langage du robot. Les lettres majuscules et minuscules sont considérées comme étant identiques. Dans cette leçon, nous déterminerons le nombre de pas effectués par le robot. Pour cela nous utiliserons une variable de nom nbPas. On n'aurait pas pu utiliser le nom Pas, car c'est un mot-clef du langage.

La valeur d'une variable est le contenu de la zone de mémoire référencée par le nom de la variable.

Pour simplifier, on peut voir les variables comme des "boîtes". Le nom de la variable permet d'identifier la boîte. La valeur de la boîte est son contenu.

Dans RobotProg les variables sont définies pour l'ensemble du programme et des sous-programmes, les valeurs des variables sont des nombres entiers. Toutes les variables ont la valeur 0 au début de l'exécution du programme.

Expressions numériques

Les expressions numériques sont des formules de calcul pouvant contenir des variables, des nombres entiers, des parenthèses et des signes d'opération. Le résultat du calcul est un nombre entier. En supposant que la variable nbPas contient la valeur 5, l'expression nbPas + 2 donnera comme résultat la valeur 7.
Une expression numérique peut aussi contenir des fonctions numériques prédéfinies par des mots-clefs, comme DistanceMur qui donne le nombre de cases entre le robot et le mur en face de lui, ou bien xRobot et yRobot qui donnent la position du robot. Si, par exemple, le robot se trouve à 4 cases du mur en face, l'expression 2 * DistanceMur donnera comme résultat 8.

Affectation d'une valeur à une variable

On change la valeur d'une variable avec l'instruction d'affectation qui a la forme suivante : nom de la variable = expression numérique. Par exemple : nbPas = DistanceMur + 2.
Quand l'instruction est exécutée, la valeur de l'expression est calculée, puis cette valeur est placée dans la variable dont le nom figure à gauche du signe = .

Le signe = est utilisé dans de nombreux langages de programmation pour l'instruction d'affectation. Mais attention! Ce signe n'a pas la même signification que le signe = utilisé en mathématiques. On peut ainsi écrire une instruction de la forme suivante : nbPas = nbPas + 1.
En supposant que nbPas a la valeur 5 avant l'exécution de l'instruction, l'expression nbPas + 1 est calculée, ce qui donne 6, puis ce résultat 6 est affecté à la variable nbPas. On a ainsi augmenté la valeur de nbPas d'une unité, cette opération s'appelle une incrémentation.
Si on reprend l'image des boîtes, cela donne ceci: on va chercher la boîte de nom nbPas, on regarde son contenu, on y ajoute 1, et on remet dans la même boîte la nouvelle valeur, qui remplacera l'ancienne.
Dans un organigramme, l'instruction d'affectation s'écrit dans un bloc affectation:

 

L'affectation est utilisable à partir du niveau 3: choisissez en conséquence un niveau supérieur ou égal à 3. Utilisez le terrain Terrain9x9SansObstacles.
Reprenez votre programme de la leçon 4 qui faisait aller votre robot dans un coin, et modifiez-le pour que le robot compte le nombre de ses pas depuis sa position initiale jusqu'à sa position finale. Le principe est simple: chaque fois que le robot avancera, on incrémentera la variable nbPas.
Sauvegardez ce programme sous le nom AllerCoinEnComptant.
Lancez l'exécution et cliquez sur le bouton Montrer les variables pour afficher l'état courant. Vous pourrez ainsi suivre l'évolution de la valeur de la variable nbPas pendant les déplacements du robot.

AllerCoinEnComptant.bop


Didier Müller, 8.3.05