Le mode de passage des paramètres par nom permet une généralisation très intéressante d'une procédure, que nous allons discuter sur un exemple concret.
Exemple: Soit la procédure:
PROCEDURE Sum (NAME Step, I: Integer; N: Integer;
VAR S: Integer );
BEGIN
I := 1;
S := 0;
WHILE I<=N DO
BEGIN
S := S+Step;
I := I+1;
END {-- WHILE, I>N}
END; {-- Sum}
L'appel
Sum( K, K, M, Res );
fait exécuter le bloc de la procédure dans la version suivante:
K := 1;
S := 0;
WHILE K<=N DO
BEGIN
S := S+K;
K := K+1;
END {-- WHILE, K>N}
L'effet-net de cette procédure est le calcul de la somme des M premiers nombres entiers. Le résultat retourné est contenu dans la cellule-mémoire ayant pour identificateur Res.
L'appel
Sum( A[K], K, M, Res );
où A est du type ARRAY [1..M] OF Integer, fait exécuter le bloc de la procédure dans la version suivante:
K := 1;
S := 0;
WHILE K<=N DO
BEGIN
S := S+A[K];
K := K+1;
END {-- WHILE, K>N}
Dans ce cas, l'effet-net est le calcul de la somme des éléments du tableau A.
© Aflo Informatique , 2003-2004