Equation du 2ème degré.


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.


Page précédente.

Page d'accueil.