Afficher les solutions ou les cas particuliers
Dans cette étape finale, vous allez améliorer le programme pour fournir une sortie plus détaillée pour différents types de solutions dans un système de deux équations linéaires.
Ouvrez le fichier existant et apportez les modifications finales :
cd ~/project
nano linear_equations.c
Mettez à jour le code avec un formatage de sortie amélioré :
#include <stdio.h>
#include <math.h>
// Fonction pour calculer le déterminant
float determinant(float a1, float b1, float a2, float b2) {
return a1 * b2 - a2 * b1;
}
int main() {
float a1, b1, c1; // Coefficients pour la première équation
float a2, b2, c2; // Coefficients pour la deuxième équation
float det, detX, detY;
float x, y;
float EPSILON = 1e-6; // Petite valeur pour la comparaison des nombres à virgule flottante
// Demande et lecture des coefficients pour la première équation
printf("Solveur d'équations linéaires\n");
printf("Entrez les coefficients de la première équation (ax + by = c) :\n");
printf("a1 : ");
scanf("%f", &a1);
printf("b1 : ");
scanf("%f", &b1);
printf("c1 : ");
scanf("%f", &c1);
// Demande et lecture des coefficients pour la deuxième équation
printf("Entrez les coefficients de la deuxième équation (ax + by = c) :\n");
printf("a2 : ");
scanf("%f", &a2);
printf("b2 : ");
scanf("%f", &b2);
printf("c2 : ");
scanf("%f", &c2);
// Affichage des équations d'entrée
printf("\nÉquations d'entrée :\n");
printf("Équation 1 : %.2fx + %.2fy = %.2f\n", a1, b1, c1);
printf("Équation 2 : %.2fx + %.2fy = %.2f\n", a2, b2, c2);
// Calcul du déterminant principal
det = determinant(a1, b1, a2, b2);
// Détermination et affichage du type de solution
if (fabs(det) > EPSILON) {
// Cas d'une solution unique
detX = determinant(c1, b1, c2, b2);
detY = determinant(a1, c1, a2, c2);
x = detX / det;
y = detY / det;
printf("\n--- Type de solution : Solution unique ---\n");
printf("Solution :\n");
printf("x = %.2f\n", x);
printf("y = %.2f\n", y);
} else {
// Vérification de l'absence de solution ou de l'existence d'une infinité de solutions
detX = determinant(c1, b1, c2, b2);
detY = determinant(a1, c1, a2, c2);
if (fabs(detX) > EPSILON || fabs(detY) > EPSILON) {
printf("\n--- Type de solution : Aucune solution ---\n");
printf("Le système d'équations n'a pas de solution.\n");
printf("Les équations sont inconsistantes et parallèles.\n");
} else {
printf("\n--- Type de solution : Infinité de solutions ---\n");
printf("Le système d'équations a une infinité de solutions.\n");
printf("Les équations sont équivalentes et dépendantes.\n");
}
}
return 0;
}
Compilez et exécutez le programme :
gcc linear_equations.c -o linear_equations
./linear_equations
Exemple de sortie pour une solution unique :
Solveur d'équations linéaires
Entrez les coefficients de la première équation (ax + by = c) :
a1 : 2
b1 : 3
c1 : 8
Entrez les coefficients de la deuxième équation (ax + by = c) :
a2 : 1
b2 : 4
c2 : 10
Équations d'entrée :
Équation 1 : 2.00x + 3.00y = 8.00
Équation 2 : 1.00x + 4.00y = 10.00
--- Type de solution : Solution unique ---
Solution :
x = 2.00
y = 2.00
Exemple de sortie pour l'absence de solution :
Solveur d'équations linéaires
Entrez les coefficients de la première équation (ax + by = c) :
a1 : 2
b1 : 3
c1 : 8
Entrez les coefficients de la deuxième équation (ax + by = c) :
a2 : 4
b2 : 6
c2 : 16
Équations d'entrée :
Équation 1 : 2.00x + 3.00y = 8.00
Équation 2 : 4.00x + 6.00y = 16.00
--- Type de solution : Aucune solution ---
Le système d'équations n'a pas de solution.
Les équations sont inconsistantes et parallèles.