Affecter une variable
Affecter une variable, c’est lui attribuer une valeur. C’est d’ailleurs la seule chose que l’on sache faire avec une variable.
En pseudo-code, nous allons affecter une variable avec ce symbole : ←. Dans certaines littératures, vous pourriez aussi trouver le symbole d’affectation emprunté au Pascal « := ».
ALGORITHM example1 VAR toto, tutu : NUMBER BEGIN toto ← 24 tutu ← toto END
Notez que cet algorithme ne sert à rien, si ce n’est de montrer l’affectation d’une variable. Pour comprendre le rôle de l’affectation, et comme souvent en informatique, il faut lire la ligne de la droite vers la gauche. Ainsi, on lit :
- mettre 24 dans toto.
- mettre (la valeur de) toto dans tutu1.
Vous pouvez aussi affecter une variable dès sa déclaration. De cette manière, on peut donner une valeur initiale à la variable. Voici l’écriture en pseudo-code :
ALGORITHM example2 VAR toto : Number ← 24 tutu : Number BEGIN tutu ← toto END
Bien entendu, il faut que tutu soit de même type que toto. Si tutu a été défini dans un autre type, il faut bien comprendre que cette instruction provoquera une erreur. C’est un peu comme si, en donnant un ordre à quelqu’un, on accolait un verbe et un complément incompatibles, du genre « Épluchez la casserole ». Même dotée de la meilleure volonté du monde, la ménagère lisant cette phrase ne pourrait qu’interrompre dubitativement sa tâche. Alors, un ordinateur, vous pensez bien…
Voilà pour la théorie sur l’affectation des variables. Passons aux exercices.
Exercices
ALGORITHM Ex1 /* Que valent fifi et riri ? */ VAR fifi, riri : STRING BEGIN riri ← "Loulou" fifi ← "Riri" END
ALGORITHM Ex2 /* Que valent fifi et riri ? */ VAR fifi, riri : STRING BEGIN riri ← "Loulou" fifi ← riri END
ALGORITHM Ex3 /* Que vaut a ? */ VAR a : INTEGER BEGIN a ← 34 a ← 12 END
ALGORITHM Ex4 /* Que valent a et b ? */ VAR a, b: NUMBER BEGIN a ← 1 b ← a + 3 a ← 3 END
ALGORITHM Ex5 /* Que valent a , b et c ? */ VAR a, b, c: NUMBER BEGIN a ← 5 b ← 3 c ← a + b a ← 2 c ← b - a END
ALGORITHM Ex6 /* Que valent a et b ? */ VAR a, b: NUMBER BEGIN a ← 5 b ← a + 4 a ← a + 1 b ← a - 4 END
ALGORITHM Ex7 /* Que valent a, b et c ? */ VAR a, b, c: NUMBER BEGIN a ← 3 b ← 10 c ← a + b b ← a + b a ← c END
ALGORITHM Ex8 /* Que valent a et b ? les deux dernières instructions permettent-elles d’échanger les deux valeurs de B et A ? Si l’on inverse les deux dernières instructions, cela change-t-il quelque chose ? */ VAR a, b: NUMBER BEGIN a ← 5 b ← 2 a ← b b ← a END
ALGORITHM Ex9 /* Écrire un algorithme permettant d’échanger les valeurs de deux variables entières a et b, et ce quel que soit leur contenu préalable */
ALGORITHM Ex10 /* Écrire un algorithme permettant d’échanger les valeurs de trois variables entières a, b et c, et ce quel que soit leur contenu préalable. a ira dans b, b dans c et c dans a. */
On ne fait pas de flowchart ? Comment affecte-t-on une variable dans un flowchart ?
Un flowchart est un diagramme qui montre le déroulement des différentes étapes du programme, pas comment il est géré.
1Sans mauvais jeu de mots.