29 Nov2015
Résolution d'une équation du 2ème degré
Ecrire un programme C qui permet de résoudre, dans l’ensemble R, une équation du 2ème degré :
ax2 + bx + c = 0
Exemple d’exécution 1 :
Entrer a : 1
Entrer b : 2
Entrer c : 1
La valeur du Delta est 0.00
La solution est x = -1.00
Exemple d’exécution 2 :
Entrer a : 3
Entrer b : 2
Entrer c : 1
La valeur du Delta est -8.00
Aucune solution dans IR (Ensemble vide)
Exemple d’exécution 3 :
Entrer a : 2
Entrer b : 6
Entrer c : 1
La valeur du Delta est 28.00
Les solutions sont x1 = -2.82 et x2 = -0.18
Il faut traiter tous les cas possibles.
//Programme : Résolution d'une équation du 2eme degre //Auteur : IDMANSOUR //Copyright : Exelib.net #include <stdio.h> #include <math.h> int main(){ int a,b,c; float x,d,x1,x2; printf("Entrer a : "); scanf("%d",&a); printf("Entrer b : "); scanf("%d",&b); printf("Entrer c : "); scanf("%d",&c); printf("\n"); if(a==0) { //Equation du 1er degre if(b==0) { if(c==0) { printf("La solution est l'ensemble IR\n"); } else{ printf("Aucune solution dans IR (Ensemble vide)\n" ); } } else { x = -c/b; printf("La solution est x = %.2f\n",x); } } else{ //Calcul du Delta d = (b*b) - (4*a*c); printf("La valeur du Delta est %.2f\n",d); if(d==0) { x = (float)-b / (2*a); printf("La solution est x = %.2f\n",x); } else if(d > 0) { x1 = (-b-sqrt(d)) / (2*a); x2 = (-b+sqrt(d)) / (2*a); printf("Les solutions sont x1 = %.2f et x2 = %.2f\n",x1,x2); } else { //On cherche la solution dans IR sinon on utilise les nombres complexes printf("Aucune solution dans IR (Ensemble vide)\n" ); } } }
Remarque :
Dans cette solution on affiche des valeurs approximatives de x sinon vous pouvez afficher des valeurs exactes sous la forme d'une fraction. Par exemple:
printf("La solution est x = %d/%d \n",c, b);