Algorithme pour résoudre l'équation du deuxème degré:
ax2 + bx + c = 0
Si a = 0, on se ramène à une équation du premier degré.
Si a est différent de 0,
on calcule le discriminant Delta = b2 - 4 * a * c
si Delta>0 l'équation a 2 racines réelles distinctes que l'on
calcule avec (-b+Delta)/(2*a)
et (-b-Delta)/(2*a)
si Delta=0, les 2 formules ci-dessus sont encore valables
et fournissent 2 valeurs égales -b/(2*a)
si Delta<0, les 2 formules contenant Delta ne sont
plus valables dans les réels et il faut passer dans l'ensemble des nombres complexes
pour obtenir des réponses
-b/(2*a) +i -Delta /(2*a)
-b/(2*a) -i -Delta /(2*a)
NOTE: i est un symbole tel que i2=-1
réel a, b, c Delta
écrire "Résolution de ax2 + bx + c = 0"
écrire "Introduisez le coefficient de x2:"
lire a
écrire "Introduisez le coefficient de x:"
lire b
écrire "Introduisez le terme indépendant:"
lire c
si a=0 alors écrire "Equation du premier degré."
sinon Delta <-- b*b-4a*c
si Delta>0 alors écrire "2 racines réelles distinctes:"
écrire "x1=",(-b+Delta)/(2*a)
écrire "x2=",(-b-Delta)/(2*a)
sinon si Delta=0 alors écrire "2 racines réelles égales:"
écrire "x1=x2=",-b/(2*a)
sinon écrire "2 racines complexes conjuguées:"
écrire "x1=",-b/(2*a)," + i",-Delta/(2*a)
écrire "x2=",-b/(2*a)," - i",-Delta/(2*a)
fsi
fsi
fsi
PROGRAM Eq_sec_deg;
USES CRT;
VAR A,B,C,Delta:REAL;
BEGIN
CLRSCR;
WRITELN('Résolution de ax2 + bx + c = 0');
WRITE('Introduisez le coefficient de x2: ');
READLN(A);
WRITE('Introduisez le coefficient de x: ');
READLN(B);
WRITE('Introduisez le terme indépendant: ');
READLN(C);
IF A=0 THEN IF B<>0 THEN WRITELN('L''équation est du premier degré et admet une racine: ',-C/B:5:2)
ELSE IF C<>0 THEN WRITELN('L''équation est du premier degré et n''admet pas de racine.')
ELSE WRITELN('L''équation est indéterminée.')
ELSE BEGIN
Delta:=B*B-4*A*C;
IF Delta>0 THEN WRITELN('Deux racines réelles: ',(-B+SQRT(Delta))/(2*A):5:2,' et ',(-B-SQRT(Delta))/(2*A):5:2)
ELSE IF Delta=0 THEN WRITELN('Une racine réelle double: ',-B/(2*A):5:2)
ELSE WRITELN('Deux racines complexes conjuguées: ',-B/(2*A):5:2,'+/-i*',SQRT(-Delta)/(2*A):5:2)
END
END.