Resolution complete d'une equation de second degré ( en c)

Contenu du snippet

la resolution est complète car elle est faite dans le corps des complexes

Source / Exemple :


/*****************************************************
   Resolution d'une equation de second degree
             a x^2 + b x + c = 0
      Realise par : B. Rochdi et B.S. Mohamed
        Ecole Polytechnique de Tunisie

                                                                                                            • /
#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> float a,b,c; /*******************************************************
                                                                                                                • /
float read(x) float * x; { char ch[20]; scanf("%s",&ch);
  • x = atof(ch);
} /*******************************************************
                                                                                                                • /
float Discriminant() { do { printf("\n Donner la valeur de a (non nulle): "); read(&a); } while (a==0); printf(" Donner la valeur de b : "); read(&b); printf(" Donner la valeur de c : "); read(&c); return(b*b-4*a*c); } /*******************************************************
                                                                                                                • /
void presentation() { printf("\n-------------------------------------------------------------\n"); printf(" Programme de resolution d'une equation de second degree \n"); printf(" 2 \n"); printf(" a X + b X + c = 0\n"); printf("-------------------------------------------------------------\n\n"); } /*******************************************************
                                                                                                                • /
int resolution() { float delta,x1,x2; delta=Discriminant(); printf("\n Delta = %f\n",delta); if (delta<0) { printf(" Delta est negatif, pas de solutions reelles ...\n"); printf(" Les solutions complexes sont:\n"); x1=(-b/(2*a)); x2=(sqrt(-delta)/(2*a)); printf(" X1 = %f +i (%f)\n",x1,x2); printf(" X1 = %f -i (%f)\n\n",x1,x2); } else if (delta==0) { printf(" Il existe une solution double :\n"); x1=(-b)/(2*a); printf(" X1 = X2 = %f \n\n",x1); } else { printf(" Les solutions de l'equation sont :\n"); x1=(-b-sqrt(delta))/(2*a); x2=(-b+sqrt(delta))/(2*a); printf(" X1 = %f\n",x1); printf(" X2 = %f\n\n",x2); } } /*******************************************************
                                                                                                                • /
int repeat() { char rep; printf(" Voulez-vous resoudre une autre equation ? (o/n) "); scanf("%s",&rep); return(strcmp(&rep,"n")); } /*******************************************************
                                                                                                                • /
int main() { presentation(); do resolution(); while (repeat()); printf("\n\n"); return(0); }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.