Bonjour,
J'ai un problème je dois écrire la résolution d'un système d'équation du second degré et je dois utilisé la dichotomie, je ne suis pas très expérimentée en langage C donc j'aurais vraiment besoin d'aide, j'ai les variables x1,x2 qui doivent etre relles ainsi que delta mais je dois aussi définir une variable PRECISION valant 0,005 et tant que (borne_sup - borne_inf>=PRECISION), r2= (borne_sup + borne_inf)/2 et en comparant r3(donc sensé être la carré de r2)à delta, je dois modifier la borne adéquate? Moi, j'ai écrit ce programme déjà, je ne sais même pas si c'est juste et en plus, il me met comme erreur:
pouvez vous m'aidez svp, je dois rendre dans pas longtemps, si quelqu'un pouvait m'aider à voir si je ne fais pas fausse route et ou sont mes erreurs voilà bien deux jours que j'essaie de trouver la réponse au problème et ou sont mes erreurs mais je ne trouve pas toujours pas de resultat concret lors de l'execution.Je vous remerci d'avance pour votre aide.
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <float.h>
# include <string.h>
# define PRECISION 0.005
float main ()
{
float a,b,c,delta,u,borne_inf,borne_sup,r3,r2;
double x1,x2;
borne_inf = 0;
borne_sup = FLT_MAX;
printf("resolution d'un systeme d'equation du second degre\n" );
printf("ax^2+ bx + c = 0\n" );
printf("saisie du coefficient a\n" );
scanf("%f", &a);
printf("saisie du coefficient b\n" );
scanf("%f", & b);
printf("saisie du coefficient c\n" );
scanf("%f", &c);
printf("%.2f est le discriminant de cette equation\n", delta);
delta = (b*b) - (4*a*c);
if (delta<0)
{
printf("pas de solution reelle possible\n" );
}
if (delta==0)
{
printf("une seule solution reelle possible, u\n" );
u=(-b)/(2*a);
printf("%.2d\n", u);
}
while (borne_sup - borne_inf>=PRECISION);
{
r2=(borne_sup + borne_inf)/2;
r3 = r2*r2;
if (r3<delta)
{
borne_sup = (float)r2;
}
else
{
borne_inf = (float)r2;
}
}
if (delta > 0)
{
printf("deux solutions reelles possibles,x1 et x2\n" );
x1=(float)((-b - (r2))/(2*a));
x2=(float)((-b + (r2))/(2*a));
printf("%.2f\n", x1);
printf("%.2f\n", x2);
}
return 0;
}


