next up previous
Next: Les types de données Up: Les procédures Previous: La programmation procédurale

Variables locales, variables globales, effets de bord

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.



Frederic Mesnard
mardi, 15 décembre 1998, 16:13:24 GMT+4