Cours NF01
Cours

Exemple de passage par adresse

program essai;

var

    i : integer;

procedure double (x : integer ; var res : integer);

begin

    res := 2 * x;

end;

begin

    i := 1; { i=1 }

    double (5,i); {i=10}

end;

Dans cet exemple, x est un paramètre transmis par valeur, alors que res est un paramètre passé par adresse.

reprenons et corrigeons le programme qui échange les valeurs de deux variables saisies par l'utilisateur.

program TEST_BIS;

var

    A, B : real;

procedure ECHANGE (var X, Y : real);

var

    T : real;

begin

    T := X;

    X := Y;

    Y := T;

    writeln(X,Y);

end;

begin

    readln (A, B);

    ECHANGE (A, B);

    writeln (A, B);

end.

Une simulation du déroulement du programme donnera :

A = 5 B = 7 (saisie)

X = 7 Y = 5

A = 7 B = 5 (A et B ont été modifiés !)

Le résultat de l'action de la procédure a été transmis au programme appelant.

Cas des fonctionsPassage de paramètre par adresse
AccueilRéalisé avec SCENARI