Les variables

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. Cest un peu comme si, en donnant un ordre à quelquun, 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 quinterrompre 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
Solution

riri = Loulou, fifi = Riri

ALGORITHM Ex2
/* Que valent fifi et riri ? */
VAR
    fifi, riri : STRING
BEGIN
    riri ← "Loulou"
    fifi ← riri
END
Solution

riri = Loulou, fifi = Loulou

Eh oui, la seconde ligne montre une affectation d’une variable via une autre, pas une affectation de texte !

ALGORITHM Ex3
/* Que vaut a ? */
VAR
    a : INTEGER
BEGIN
    a ← 34
    a ← 12
END
Solution

a = 12

Attention à l’ordre des instructions. Vous n’obtiendrez pas le même résultat en intervertissant les deux lignes.

ALGORITHM Ex4
/* Que valent a et b ? */
VAR
    a, b: NUMBER
BEGIN
    a ← 1
    b ← a + 3
    a ← 3
END
Solution

a = 3 et b=4

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
Solution

a = 2, b=3, c=4

ALGORITHM Ex6
/* Que valent a et b ? */
VAR
    a, b: NUMBER
BEGIN
    a ← 5
    b ← a + 4
    a ← a + 1
    b ← a - 4

END
Solution

a = 6 et b=2

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
Solution

a = 13, b=13, c=13

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
Solution

a = 2 et b=2

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 */
Solution
VAR
    a, b,c : INTEGER
BEGIN
    c ← a
    a ← b
   b ← c
END
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. */
Solution
VAR
    a, b,c,d : INTEGER
BEGIN
    d ← a
    a ← b
    b ← c
    c ← d
END

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.

Print Friendly, PDF & Email