Polynome et formule quadratique en c
Résolu/Fermé
acrony
Messages postés
14
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
2 décembre 2010
-
1 déc. 2010 à 16:13
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 2 déc. 2010 à 17:08
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 2 déc. 2010 à 17:08
A voir également:
- Polynome et formule quadratique en c
- Formule si et - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel moyenne - Guide
- Formule excel - Guide
2 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
Modifié par Pacorabanix le 1/12/2010 à 16:28
Modifié par Pacorabanix le 1/12/2010 à 16:28
salut,
je pense que le principe de ton programme est exactement le bon,
néanmoins je vois déjà plusieurs petites erreurs (tout à fait classiques pour les débutants ;) )
tout d'abord, je pense que l'idée de ton programme est de résoudre ton polynome selon le a, b et c que l'utilisateur entre via le clavier.
là tu définis c comme une constante (de quel type ??? ) et a et b comme des entiers mais tu ne leur donnes jamais aucune valeur.
ensuite, je ne suis pas sûr que a et b et le déterminant soient forcément des entiers...
en plus si tu utilises des entiers tu risques d'avoir des problème dans tes calculs. (en faisant des calculs avec des int, le programme va calculer... un int ! donc meme si la division donne un nombre à virgule, ça va être tronqué).
ensuite, une petite erreur aussi ici :
if (discrim = 0)
là tu ne testes pas si le discriminant fait zéro ou pas. Tu lui assignes la valeur zéro.
je pense que le principe de ton programme est exactement le bon,
néanmoins je vois déjà plusieurs petites erreurs (tout à fait classiques pour les débutants ;) )
tout d'abord, je pense que l'idée de ton programme est de résoudre ton polynome selon le a, b et c que l'utilisateur entre via le clavier.
là tu définis c comme une constante (de quel type ??? ) et a et b comme des entiers mais tu ne leur donnes jamais aucune valeur.
ensuite, je ne suis pas sûr que a et b et le déterminant soient forcément des entiers...
en plus si tu utilises des entiers tu risques d'avoir des problème dans tes calculs. (en faisant des calculs avec des int, le programme va calculer... un int ! donc meme si la division donne un nombre à virgule, ça va être tronqué).
ensuite, une petite erreur aussi ici :
if (discrim = 0)
là tu ne testes pas si le discriminant fait zéro ou pas. Tu lui assignes la valeur zéro.
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
2 déc. 2010 à 13:16
2 déc. 2010 à 13:16
tiens, voilà mon site préféré pour programmer en C/C++ (pour les trucs basiques)
http://www.cplusplus.com/reference/cmath/
http://www.cplusplus.com/reference/cmath/
1 déc. 2010 à 16:30
printf("f(x)= ax2 + bx + c = 0\n");
par exemple :
printf("f(x)= %dx2 + %dx + %d = 0\n", a, b, c);
ou avec des %f... selon le type que tu décides de donner à a, b et c.
2 déc. 2010 à 12:51
je mets en ligne le code avec tes orientations. J'ai quand même un gros soucis en tant que super débutant:
c'est le calcul de la racine carrée. Comment je peux programmer ca? Merci de tes orientations, si tu peux m'aider encore ce serait sympa...
#include <stdio.h>
#include <stdlib.h>
int main()
{
double s1, s2, a, b, c, discrim;
c = 0; s1 = 0; s2 = 0, b = 0, a = 0;
printf(" Input a \n");
scanf("%f", &a);
printf(" Input b \n");
scanf("%f", &b);
printf(" Input c\n");
scanf("%f", &c);
printf("f(x)= %fx2 + %f + %f = 0\n", a, b, c);
discrim = (b*b) - (4 * a * c);
if (discrim < 0)
{
printf("There is no solution");
}
else
if (discrim == 0)
{
s1 = s2 = - b/(2*a)
printf("There is one solution");
printf ("%f", s1);
}
else
if (discrim > 0)
{
s1 = (-b - racine(discrim)) / (2*a);
s2 = (-b + racine(discrim)) / (2*a);
printf("There are two solutions");
printf ("%f", s1); printf ("%f", s2);
}
return 0;
}
2 déc. 2010 à 13:03
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main()
/*{
int x = 69;
printf("%d => %lf\n",x,sqrt(x));
return 0;
}*/
{
float s1, s2, a, b, c, discrim;
c = 0; s1 = 0; s2 = 0, b = 0, a = 0;
printf(" Input a \n");
scanf("%f", &a);
printf(" Input b \n");
scanf("%f", &b);
printf(" Input c\n");
scanf("%f", &c);
printf("f(x)= %fx2 + %f + %f = 0\n", a, b, c);
discrim = (b*b) - (4 * a * c);
if (discrim < 0)
{
printf("There is no solution");
}
else
if (discrim == 0)
{
s1 = s2 = - b/(2*a);
printf("There is one solution");
printf ("%f", s1);
}
else
if (discrim > 0)
{
s1 = (-b - sqrt(discrim)) / (2*a);
s2 = (-b + sqrt(discrim)) / (2*a);
printf("There are two solutions");
printf ("%f", s1); printf ("%f", s2);
}
return 0;
}
Modifié par Pacorabanix le 2/12/2010 à 13:15
et sinon je te propose maintenant de tester toi-même ton programme, qui devrait compiler après ça :)
et fais bien sûr des calculs "à la main" avec des polynômes faciles, avant de les rentrer dans ton programme, pour tester si ton programme donne des réponses juste dans les divers cas de figure.
PS : utilises la balise "code" lorsque tu écris dans le forum !
sélectionne ton programme et clique sur le bouton "code" à coté de gras italique souligné.
EDIT : ah ben tu m'as grillé pour sqrt.
2 déc. 2010 à 14:06