Introduction
Dans ce laboratoire, vous apprendrez à résoudre des équations quadratiques en programmation C. Le laboratoire couvre le processus complet, depuis la lecture des coefficients de l'équation quadratique, le calcul du discriminant, jusqu'à la détermination des racines réelles ou complexes. Vous écrirez un programme C qui invite l'utilisateur à saisir les coefficients, effectue les calculs nécessaires et affiche les solutions.
Le laboratoire est divisé en deux étapes principales. Tout d'abord, vous apprendrez à lire les coefficients a, b et c saisis par l'utilisateur. Ensuite, vous modifierez le programme pour calculer le discriminant et utiliser la formule quadratique pour trouver les racines de l'équation, en gérant à la fois les solutions réelles et complexes.
Lire a, b, c
Dans cette étape, vous apprendrez à lire les valeurs d'entrée pour une équation quadratique en C. Nous allons créer un programme qui accepte les coefficients a, b et c de l'utilisateur.
Tout d'abord, créez un nouveau fichier pour votre solveur d'équations quadratiques :
cd ~/project
nano quadratic_solver.c
Maintenant, ajoutez le code suivant au fichier :
#include <stdio.h>
int main() {
double a, b, c;
// Invite l'utilisateur à saisir les données
printf("Entrez le coefficient a : ");
scanf("%lf", &a);
printf("Entrez le coefficient b : ");
scanf("%lf", &b);
printf("Entrez le coefficient c : ");
scanf("%lf", &c);
// Affiche les coefficients saisis
printf("Coefficients saisis :\n");
printf("a = %.2f\n", a);
printf("b = %.2f\n", b);
printf("c = %.2f\n", c);
return 0;
}
Compilez le programme :
gcc quadratic_solver.c -o quadratic_solver
Exécutez le programme :
./quadratic_solver
Exemple de sortie :
Entrez le coefficient a : 1
Entrez le coefficient b : -5
Entrez le coefficient c : 6
Coefficients saisis :
a = 1.00
b = -5.00
c = 6.00
Décortiquons les parties clés du code :
scanf()est utilisé pour lire les entrées de l'utilisateur pour chaque coefficient%lfest le spécificateur de format pour les nombres à virgule flottante à double précision- Nous stockons les coefficients dans les variables a, b et c
- Le programme affiche les coefficients saisis pour confirmer l'entrée
Calculer le discriminant et déterminer les racines
Dans cette étape, vous allez modifier le programme précédent pour calculer le discriminant et déterminer les racines de l'équation quadratique en utilisant la formule quadratique.
Ouvrez le fichier existant et mettez à jour le code :
cd ~/project
nano quadratic_solver.c
Remplacez le code précédent par le suivant :
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double discriminant, root1, root2;
// Invite l'utilisateur à saisir les données
printf("Entrez le coefficient a : ");
scanf("%lf", &a);
printf("Entrez le coefficient b : ");
scanf("%lf", &b);
printf("Entrez le coefficient c : ");
scanf("%lf", &c);
// Calcule le discriminant
discriminant = b * b - 4 * a * c;
// Vérifie le discriminant pour déterminer le type de racines
if (discriminant > 0) {
// Deux racines réelles distinctes
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("Deux racines réelles distinctes :\n");
printf("Racine 1 = %.2f\n", root1);
printf("Racine 2 = %.2f\n", root2);
} else if (discriminant == 0) {
// Une racine réelle (double)
root1 = -b / (2 * a);
printf("Une racine réelle (double) :\n");
printf("Racine = %.2f\n", root1);
} else {
// Racines complexes
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("Racines complexes :\n");
printf("Racine 1 = %.2f + %.2fi\n", realPart, imaginaryPart);
printf("Racine 2 = %.2f - %.2fi\n", realPart, imaginaryPart);
}
return 0;
}
Compilez le programme avec la bibliothèque mathématique :
gcc quadratic_solver.c -o quadratic_solver -lm
Exécutez le programme dans différents scénarios :
./quadratic_solver
Exemple de sortie (deux racines réelles) :
Entrez le coefficient a : 1
Entrez le coefficient b : -5
Entrez le coefficient c : 6
Deux racines réelles distinctes :
Racine 1 = 3.00
Racine 2 = 2.00
Exemple de sortie (une racine réelle) :
Entrez le coefficient a : 1
Entrez le coefficient b : -2
Entrez le coefficient c : 1
Une racine réelle (double) :
Racine = 1.00
Exemple de sortie (racines complexes) :
Entrez le coefficient a : 1
Entrez le coefficient b : 2
Entrez le coefficient c : 5
Racines complexes :
Racine 1 = -1.00 + 2.00i
Racine 2 = -1.00 - 2.00i
Points clés du code :
- Utilise la formule quadratique pour calculer les racines
- Vérifie le discriminant pour déterminer le type de racines
- Gère trois scénarios : deux racines réelles, une racine réelle, racines complexes
- Utilise la fonction
sqrt()de la bibliothèquemath.h - Compile avec le flag
-lmpour lier la bibliothèque mathématique
Afficher les solutions réelles ou complexes
Dans cette étape, vous allez améliorer le solveur d'équations quadratiques pour fournir une sortie plus détaillée et gérer différents types de solutions avec un formatage amélioré.
Ouvrez le fichier existant et mettez à jour le code :
cd ~/project
nano quadratic_solver.c
Remplacez le code précédent par le suivant :
#include <stdio.h>
#include <math.h>
void printQuadraticSolutions(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
printf("Équation quadratique : %.2fx² + %.2fx + %.2f = 0\n", a, b, c);
printf("Discriminant : %.2f\n", discriminant);
if (discriminant > 0) {
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("Type de solution : Deux racines réelles distinctes\n");
printf("Racine 1 : %.2f\n", root1);
printf("Racine 2 : %.2f\n", root2);
} else if (discriminant == 0) {
double root = -b / (2 * a);
printf("Type de solution : Une racine réelle (double)\n");
printf("Racine : %.2f\n", root);
} else {
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("Type de solution : Racines conjuguées complexes\n");
printf("Racine 1 : %.2f + %.2fi\n", realPart, imaginaryPart);
printf("Racine 2 : %.2f - %.2fi\n", realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
printf("Solveur d'équations quadratiques\n");
printf("------------------------\n");
printf("Entrez le coefficient a : ");
scanf("%lf", &a);
printf("Entrez le coefficient b : ");
scanf("%lf", &b);
printf("Entrez le coefficient c : ");
scanf("%lf", &c);
printf("\n");
printQuadraticSolutions(a, b, c);
return 0;
}
Compilez le programme :
gcc quadratic_solver.c -o quadratic_solver -lm
Exécutez le programme dans différents scénarios :
./quadratic_solver
Exemple de sortie (deux racines réelles) :
Solveur d'équations quadratiques
------------------------
Entrez le coefficient a : 1
Entrez le coefficient b : -5
Entrez le coefficient c : 6
Équation quadratique : 1.00x² + -5.00x + 6.00 = 0
Discriminant : 1.00
Type de solution : Deux racines réelles distinctes
Racine 1 : 3.00
Racine 2 : 2.00
Exemple de sortie (une racine réelle) :
Solveur d'équations quadratiques
------------------------
Entrez le coefficient a : 1
Entrez le coefficient b : -2
Entrez le coefficient c : 1
Équation quadratique : 1.00x² + -2.00x + 1.00 = 0
Discriminant : 0.00
Type de solution : Une racine réelle (double)
Racine : 1.00
Exemple de sortie (racines complexes) :
Solveur d'équations quadratiques
------------------------
Entrez le coefficient a : 1
Entrez le coefficient b : 2
Entrez le coefficient c : 5
Équation quadratique : 1.00x² + 2.00x + 5.00 = 0
Discriminant : -16.00
Type de solution : Racines conjuguées complexes
Racine 1 : -1.00 + 2.00i
Racine 2 : -1.00 - 2.00i
Améliorations clés :
- Création d'une fonction distincte
printQuadraticSolutions()pour une meilleure organisation du code - Ajout d'une sortie plus descriptive avec le type de solution et les détails de l'équation
- Conservation de la même logique de calcul des racines que dans l'étape précédente
- Amélioration de l'interface utilisateur avec un titre et un formatage clair
Résumé
Dans ce laboratoire, vous apprendrez à lire les valeurs d'entrée pour une équation quadratique en C, à calculer le discriminant et à déterminer les racines réelles ou complexes en utilisant la formule quadratique. Le programme invite l'utilisateur à saisir les coefficients a, b et c, puis calcule le discriminant pour déterminer la nature des racines. Enfin, le programme affiche les solutions réelles ou complexes.
Les étapes clés couvertes dans ce laboratoire incluent la lecture des coefficients saisis par l'utilisateur, le calcul du discriminant et l'application de la formule quadratique pour trouver les racines. Le programme confirme également les coefficients saisis et fournit les solutions calculées.



