Calcul des solutions d'une équation du second degré en C
Calcul des solutions réelles d'une équation du second degré en C
Une équation du second degré a la forme générale suivante :
ax2 + bx + c = 0
Pour résoudre cette équation, nous utilisons le discriminant, noté Δ, qui est calculé comme suit :
Δ = b2 - 4ac
Les solutions de l'équation dépendent de la valeur de Δ :
- Δ > 0 : L'équation a deux solutions réelles distinctes.
- Δ = 0 : L'équation a une solution réelle double.
- Δ < 0 : L'équation n'a pas de solution réelle (les solutions sont complexes).
Programme en C
Le code C suivant calcule les solutions réelles d'une équation du second degré :
#include <stdio.h>
#include <math.h> // Inclure cette bibliothèque pour la fonction sqrt (racine carrée)
int main() {
// Déclaration des variables
double a, b, c; // Coefficients de l'équation
double delta; // Discriminant
double solution1, solution2; // Solutions de l'équation
// Demande des coefficients a, b et c à l'utilisateur
printf("Entrez le coefficient a (non nul) : ");
scanf("%lf", &a);
printf("Entrez le coefficient b : ");
scanf("%lf", &b);
printf("Entrez le coefficient c : ");
scanf("%lf", &c);
// Calcul du discriminant
delta = b * b - 4 * a * c;
// Vérification de la valeur du discriminant et calcul des solutions
if (delta > 0) {
// Deux solutions réelles distinctes
solution1 = (-b + sqrt(delta)) / (2 * a);
solution2 = (-b - sqrt(delta)) / (2 * a);
printf("L'équation a deux solutions réelles distinctes :\n");
printf("Solution 1 : %.2lf\n", solution1);
printf("Solution 2 : %.2lf\n", solution2);
} else if (delta == 0) {
// Une seule solution réelle double
solution1 = -b / (2 * a);
printf("L'équation a une solution réelle double :\n");
printf("Solution : %.2lf\n", solution1);
} else {
// Aucune solution réelle
printf("L'équation n'a pas de solution réelle.\n");
}
return 0;
}
Explications
Le programme commence par demander à l'utilisateur de saisir les coefficients a, b, et c. Il calcule ensuite le discriminant Δ à l'aide de la formule Δ = b2 - 4ac.
Ensuite, il vérifie la valeur de Δ :
- Δ > 0 : L'équation a deux solutions réelles distinctes, calculées avec les formules suivantes :
- x1 = \(\frac{-b + \sqrt{Δ}}{2a}\)
- x2 = \(\frac{-b - \sqrt{Δ}}{2a}\)
- Δ = 0 : L'équation a une seule solution réelle double, calculée avec la formule :
- Δ < 0 : L'équation n'a pas de solution réelle.
Enfin, le programme affiche les solutions trouvées, ou un message indiquant qu'il n'y a pas de solutions réelles si Δ < 0.