Les variables du programme principal sont accessibles dans une procédure à moins que celles-ci ne soient redéclarées en variables locales ou en paramètres formels.
program ex1;
var n, x : integer;
procedure P1(var a : integer);
begin
a:=x+1;
end;
begin
n:=0;
x:=1;
P1(n);
writeln(n);
end.
est différent de
program ex1; var n, x : integer; procedure P1(var a : integer); var x : integer; begin a:=x+1; end; begin n:=0; x:=1; P1(n); writeln(n); end.
: Modifier une variable globale dans une procédure s'appelle un effet de bord. A éviter car peut induire des erreurs très difficiles à retrouver.
program ex1; var n, x : integer; procedure P1(var a : integer); begin x:=x+1; a:=x+1; end; begin n:=0; x:=1; P1(n); writeln(n); end.