Vous êtes sur la page 1sur 4

programme

(* Entête *)
program ResoudreEquationDuSecondDegreDansC ;
uses cthreads,
var coeff_a, coeff_b, coeff_c, delta, solutionz, solutionz1, solutionz2 : real ;
(* Instructions *)
begin
(* Saisie des variables à introduire *)
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
writeln ('Saisir les coefficients') ;
writeln; (*saut de ligne*)
writeln ('coeff_a =') ; readln (coeff_a) ;
writeln ('coeff_b =') ; readln (coeff_b) ;
writeln ('coeff_c =') ; readln (coeff_c) ;
(* Affichages des coefficients entrés *)
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
writeln ('Les coefficients entrés') ;
writeln;(*saut de ligne*)
writeln ('coeff_a =',coeff_a) ;
writeln ('coeff_b =',coeff_b) ;
writeln ('coeff_c =',coeff_c) ;
writeln; (*saut de ligne*)
(* Traitement des données et affichage des résultats *)
if coeff_a = 0 then
begin
if coeff_b = 0 then
begin
writeln ('b=0 => Solution impossible, division par ZERO');
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
end
else
begin
writeln ('a = 0 => L''équation est ramenée au 1er degré, la solution réelle est z=-c/b');
writeln; (*saut de ligne*)
solutionx := -coeff_c / coeff_b ;
writeln ('solutionz = ', solutionz) ;
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
end;
end
else
1 begin
delta := sqr(coeff_b) - 4 * coeff_a * coeff_c ;
if delta < 0 then (* Δ négatif *)
begin
if coeff_b = 0 then
begin
writeln ('Delta < 0 & coeff_b = 0 => L''équation a deux solutions complexes imaginaires pures');
writeln; (*saut de ligne*)
writeln ('Delta = ',delta) ;
writeln ('solutionz1 = +i',sqrt(-delta) / (2 * coeff_a)) ;
writeln ('solutionz2 = -i',sqrt(-delta) / (2 * coeff_a)) ;
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
end
else
begin
writeln ('Delta < 0 & coeff_b <> 0 => L''équation a deux solutions complexes');
writeln; (*saut de ligne*)
writeln ('Delta = ',delta) ;
writeln ('solutionz1 = ',(- coeff_b) / (2 * coeff_a),' +i',sqrt (-delta) / (2 * coeff_a)) ;
writeln ('solutionz2 = ',(- coeff_b) / (2 * coeff_a),' -i',sqrt (-delta) / (2 * coeff_a)) ;
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
end;
end
else
begin
if delta = 0 then
begin
writeln ('Delta = 0 => L''équation a une solution unique réelle dite double aussi');
solutionz := (- coeff_b ) / (2 * coeff_a) ;
writeln; (*saut de ligne*)
writeln ('Delta = ',delta) ;
writeln ('solutionz = ',solutionz) ;
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
end
else (*Pour Delta >0*)
begin
writeln ('Delta > 0 => L''équation a deux solutions réelles');
solutionz1 := (- coeff_b + sqrt(delta)) / (2 * coeff_a) ;
solutionz2 := (- coeff_b - sqrt(delta)) / (2 * coeff_a) ;
writeln; (*saut de ligne*)
writeln ('Delta = ',delta) ;
writeln ('solutionz1 = ',solutionz1) ;
writeln ('solutionz2 = ',solutionz2) ;
writeln; (*saut de ligne*)
writeln; (*saut de ligne*)
end;
end;
1 end;

writeln ('Press [Enter] To Quit'); readln();


end.

Vous aimerez peut-être aussi