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.