retour vers le sommaire du cours

Développement d'Application Informatique
et Génie Logiciel (DAIGL)
Jean HENRI

Exercice 4 : Résolution de l'équation du second degré

Énoncé - Réponse - Jeu de test

ÉnoncéRetour en haut de page

Voici la présentation mathématique de la résolution d'une équation du second degré (merci de m'indiquer les erreurs éventuelles) :

Soit à résoudre l'équation a.x^2 + b.x + c = 0a est un réel non nul, b et c sont des réels quelconques.

On calcule le discriminant, noté D : D = b^2 - 4.a.c

On discute alors de la valeur de D :
D > 0 : il existe 2 racines distinctes, notée x1 et x2.
        x1 = (-b - D^(1/2))/ (2.a)
        x2 = (-b + D^(1/2))/ (2.a)
        rem. : D^(1/2) représente la racine carrée de D
D = 0 : il existe 1 racine double, notée x3
        x3 = -b / (2.a)
D < 0 : il n'existe aucune solution réelle pour l'équation.

Rédiger une programme permettant la résolution de l'équation pour des valeurs quelconques de a, b et c (fournies par l'utilisateur du programme).

RéponseRetour en haut de page

programme EquationSecondDegre
données : CoeffA, CoeffB, CoeffC sont réels
          NbRacines est entier
          Racine1, Racine2 sont réels
début
  afficher "Résolution d'équations du second degré"
  afficher "du type ax² +bx +c = 0"
  afficher "Saisir les valeurs de a, b et c"
  saisir CoeffA, CoeffB, CoeffC

  ResoudreSecondDegre (CoeffA, CoeffB, CoeffC,
                       NbRacines, Racine1, Racine2)

  afficher "Il y a ", NbRacines, " solution(s)"
  si (NbRacines <> 0) alors
    si (NbRacines = 2) alors
      afficher "La première solution est ", Racine1
      afficher "La seconde  solution est ", Racine2
    sinon
      afficher "La solution est ", Racine1
    fin si
  fin si
fin

procedure ResoudreSecondDegre (entree : ValA, ValB, ValC sont réels
                               sortie : NbSol est entier
                                        Sol1, Sol2 sont réels)
donnée : Delta est réel
début
  Delta <-- ValB*ValB - 4*ValA*ValC

  si (Delta > 0) alors
    NbSol <-- 2
    Sol1  <-- (-ValB - RacineCarree(Delta))/(2*ValA)
    Sol2  <-- (-ValB + RacineCarree(Delta))/(2*ValA)
  sinon
    si (Delta = 0) alors
      NbSol <-- 2
      Sol1  <-- -ValB/(2*ValA)
      Sol2  <-- Sol1
    sinon
      NbSol <-- 0
      Sol1  <-- 123456789
      Sol2  <-- 987654321
    fin si
  fin si
fin

Jeu de test Retour en haut de page

a
b
c
Delta
Nb de racines
Racine 1
Racine 2
-1
1
6
25
2
3
-2
1
-2
1
0
1
1
1
-1,5
-1,1
-2,5
-13,79
0
123456789
987654321

 


Page créée en septembre 2003
Auteur : Jean HENRI