next up previous
Next: Variables localesvariables globales, Up: Les procédures Previous: Différence entre paramètre valeur

La programmation procédurale

 : le programme doit se ramener à une succession d'appels de procédures.

On va essayer d'appliquer cette règle sur un exemple simple, la résolution d'une équation du second degré

displaymath1250

Ce problème peut être décomposé en plusieurs sous-problèmes :

program equ2dg;

var coeff1, coeff2, coeff3, discriminant : real;
    reelle, imaginaire : real;

procedure lecturedonnees(var a, b, c : real);
  begin
    writeln('c1=');
    readln(a);
    writeln('c2=');
    readln(b);
    writeln('c3=');
    readln(c);
  end;

procedure calculdelta(a, b, c : real; var delta : real);
  begin
    delta:=sqr(b)-4*a*c;
  end;

procedure calculx(a, b : real; var x : real);
   begin
      x:=-b/(2*a);
   end;

procedure calculy(a, delta : real; var y : real);
   begin
      y:=sqrt(abs(delta))/(2*a);
   end;

procedure affichage(x, y, delta : real);
   begin
      if delta>0 then 
        writeln('solutions reelles X1=', x+y,'; X2=',x-y);
      if delta<0 then 
	writeln('solutions complexes Z1=', x,'+i',y,';Z2=',x,'-i',y);
      if delta=0 then 
        writeln('solution double X=',x);
end;

(* programme principal *)
begin
  lecturedonnees(coeff1, coeff2, coeff3);
  calculdelta(coeff1, coeff2, coeff3, discriminant);
  calculx(coeff1, coeff2, reelle);
  calculy(coeff1, discriminant, imaginaire);
  affichage(reelle, imaginaire, discriminant);
end.


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