Probléme de programation équation de secd dég

Fermé
wato Messages postés 1 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 12 novembre 2004 - 12 nov. 2004 à 15:56
 pom - 13 nov. 2004 à 12:01
ok
bonsoir à tous du forum, je crois que mon probléme est l'un de vos derniers pbs car j'ai un vraie probléme dans l'escécution du programme qui resoud une équation du second dégré.
Voici mon programme fait:
#include<stdio.h>
#include<conio.h>
#include<math.h>
main void( );
{int a,b,c;
float delta,x1,x2;
clrscr( );
printf("entrer trois nombres\n");
scanf("%u,%u,%u",&a,&b,&c);
if(a!=0){delta=b*b-4*a*c;
if(delta>0)
x1=(-b-sqrt(delta))à/(2*a);
x2=(-b+sqrt(delta))/(2*a);
printf("deux solution réelles:%i,%i \n:",x1,x2);
else
if(delta==0)
printf("une solution double:%1f \n:",-b/(2*a));
else printf(" n'admet de solutions réelles");
}
if((b!=0),(c!=0)&(a==0))
printf("une solution unique:%f \n:",-c/b);
else printf ("l'équation est impossible");
getch( );
}

6 réponses

bonsoir à tous du forum, je crois que mon probléme est l'un de vos derniers pbs car j'ai un vraie probléme dans l'escécution du programme qui resoud une équation du second dégré.


oui effectivement tu as un probleme dans l'execution puisque execution ne s'ecrit pas escécution...

________________________
connerie à part

quel est le problème ?
syntaxe ?
résultat attendu qui n'est pas correct ?
et si oui à quel moment
-entrée des valeurs
-cas à 1 solution
-cas sans solution
-cas à 2 solution

parceque là au premier coup d'oeil j'ai pas identifié le pb...faut dire ça fait un bout de temps que j'ai pas fait de C...
0
x1=(-b-sqrt(delta))à/(2*a);
----------------------^
là il y a une coquille dejà due à la recopie ou presente aussi dans ton programme ?
0
Ben a part la coquille notée par Boulet, je vois pas ce qui cloche.
Le prog est un peu brutasse, mais efficace.
Il gagnerait à visualiser l'équation en clair, avec les valeurs tapées.
D'autre part, il vaudrait mieux parler de "racines" et non de solutions.
Tu dis "l'équation est impossible". Une équation est toujours possible. C'est la recherche des racines qui est impossible, et encore, dans quel référentiel ? Apparemment, c'est les réels. Ben il faut le dire chaque fois, ou bien en début de problème.
Tu pourrais aussi analyser les solution dans les complexes :
Z = a + ib avec i² = -1.
Dans ce cas, les racines inexistantes dans les réels deviennent existantes (je me rappelle plus la formule, mais c'est assez simple à rechercher).
Bon courage
A+
0
Salut,,

Je ne sais pas exactement où ton programme plante mais lors des divisions pour les racines il serait bon de "caster" le quotient qui est un entier en flottant afin de t'assurer qui'il realise bien une division avec un résultant float et non int. pour cela tu met

x1=(b - sqrt(delta))/(float)(2*a)
et de même pour les autres racines.

Bon courage
A+
Nico1984
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut nico1894
au lieu de faire comme tu dis (float) (2*a), peut-on faire 2.0*a ou 2.*a afin de faire la conversion entier->flottant ?

Si cette solution est correcte, elle me parait plus "lisible" que (float)(2*a) qui est long à écrire et plus difficile à "comprendre"

Pom
0
Salut wato,
si a==0 l'équation est possible : tu as tout simplement une équation du 1e degré !
Mais si tu ne veux résoudre QUE des équations du 2e degré, il faut le préciser dans le programme (en commentaire)
0