jeanphilippe37
Messages postés73Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention21 octobre 2010
-
21 avril 2008 à 11:15
jeanphilippe37
Messages postés73Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention21 octobre 2010
-
24 avril 2008 à 12:04
Slt,
je t'envoie le programme de maths, ms j'ai essayé de mettre un system(pause) ms cela me fou une erreur de compilation. Pourré-tu me dire ou je dois le mettre car quand je l'exécute, le résultat ne s'affiche pas.
merci bcp
Prgm
#include <stdio.h>
#include <math.h>
/* Variables. */
float a, b, c;
float x, x1, x2;
float z;
/* Fonctions. */
int calc_fonc(void);
int sup_zero(void);
int inf_zero(void);
int ega_zero(void);
/* programme. */
main()
{
printf("\n[*****Programme made by Bob l'Eponge!!!!!*****]");
printf("\n\nCe programme resoud une equation du troisieme degre");
printf("\nDu type ax+bx+c=0");
printf("\n\nEntrez la valeur de a: ", a);
scanf("%f", &a);
printf("\n\nEntrez la valeur de b: ", b);
scanf("%f", &b);
printf("\n\nEntrez la valeur de c: ", c);
scanf("%f", &c);
calc_fonc();
if ( z > 0 )
{
sup_zero();
}
else if ( z < 0 )
{
inf_zero();
}
else
{
ega_zero();
}
}
int calc_fonc(void)
{
z = ( b * b ) -( 4.0 * ( a * c ) );
printf("\nLe resultat du calcul est %.2f", z);
}
int sup_zero(void)
{
x1 = ( ( - b ) + ( sqrt ( z ) ) ) / ( 2 * a );
x2 = ( ( - b ) - ( sqrt ( z ) ) ) / ( 2 * a );
printf("\n\nLe resultat de l'operation est %.2f %.2f", x1, x2);
}
int inf_zero(void)
{
printf("\n\nPas de solutions!");
return 0;
}
int ega_zero(void)
{
x = ( -b ) / ( 2 * a );
printf("\n\nLa seule solution est %.2f", x);
}
J-Ph
A voir également:
Resoudre une equation du 3eme degré
Equation 3eme degré - Meilleures réponses
Comment resoudre une equation du 3eme degré - Meilleures réponses
Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009 23 avril 2008 à 12:07
Ah exact, j'avais pas vu les messages du dessus...
Bon, en tout cas viens pas te plaindre JP parce que la, il t'en a mis un tout simple et qui marche très bien (et sans fonction qui, il est vrai ne servent pas à grand chose pour un si petit programme).
Je dis merci pour toi à Jean François parce que j'ai l'impression qu'on va pas en voir la couleur (de ton merci).
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 21 avril 2008 à 14:49
1) Ce que l'on voit de marqué dans le fichier source : ax+bx+c=0 c'est à dire (a+b)x+c=0 c'est du premier degré !
2) La résolution qui est faite : déterminant² = b²-4ac et tout le toutim sur la ou les solutions c'est du second degré qui prouve qu'il manque bien l'exposant à ax² !
ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 20144 21 avril 2008 à 16:02
Et il s'agit de la résolution d'équations de second degré car le polynome est de degré 2 et sont plus grand monome est au carré et non au cube. De plus, la méthode utilisée pour résoudre l'équation est celle pour les équations de second degré :
z = ( b * b ) -( 4.0 * ( a * c ) );
x1 = ( ( - b ) + ( sqrt ( z ) ) ) / ( 2 * a );
x2 = ( ( - b ) - ( sqrt ( z ) ) ) / ( 2 * a );
jeanphilippe37
Messages postés73Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention21 octobre 2010 23 avril 2008 à 10:45
slt,
j'ai modifié le code, cela ne marche pas. Commenty dois je faire ?
merci
Jp
#include <stdio.h>
#include <math.h>
/* Variables. */
float a, b, c;
float x, x1, x2;
float z;
/* Fonctions. */
int calc_fonc(void);
int sup_zero(void);
int inf_zero(void);
int ega_zero(void);
/* programme. */
main()
{
printf("\n[*****Programme made by Bob l'Eponge!!!!!*****]");
printf("\n\nCe programme resoud une equation du troisieme degre");
printf("\nDu type ax+bx+c=0");
printf("\n\nEntrez la valeur de a: ", a);
scanf("%f", &a);
printf("\n\nEntrez la valeur de b: ", b);
scanf("%f", &b);
printf("\n\nEntrez la valeur de c: ", c);
scanf("%f", &c);
calc_fonc();
if ( z > 0 )
{
sup_zero();
}
else if ( z < 0 )
{
inf_zero();
}
else
{
ega_zero();
}
}
int calc_fonc(void)
{
z = ( b * b ) -( 4.0 * ( a * c ) );
printf("\nLe resultat du calcul est %.2f", z);
}
int sup_zero(void)
{
x1 = ( ( - b ) + ( sqrt ( z ) ) ) / ( 2 * a );
x2 = ( ( - b ) - ( sqrt ( z ) ) ) / ( 2 * a );
printf("\n\nLe resultat de l'operation est %.2f %.2f", x1, x2);
}
int inf_zero(void)
{
printf("\n\nPas de solutions!");
return 0;
}
int ega_zero(void)
{
x = ( -b ) / ( 2 * a );
printf("\n\nLa seule solution est %.2f", x);
system("pause");
}
Taurnil
Messages postés48Date d'inscriptionvendredi 8 décembre 2000StatutMembreDernière intervention 2 juillet 2009 23 avril 2008 à 11:18
Je me trompe peut-être mais il me semble que la fonction qui calcule ton determinant, celle que tu as appelé calc_fonc, doit recevoir en paramètres ce dont elle a besoin pour calculer ce determinant.
essaie, quand tu appelles ta fonction dans ton main après tout les printf, scanf de mettre calc_fonction(a, b, c); au lieu de calc_fonction();
Ah et aussi un autre problème, tu écris la valeur de z (ton déterminant) à l'intérieur de ta fonction, ce qui fait que le main n'a jamais accès à cette variable : met un return z; à la dernière ligne de ta fonction calc_fonc.
Voilà, y a peut être autre chose mais corrige dèjà ça.
Et si ça marche, dis-le, y a surement d'autres personnes qui auront le même problème un jour.
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 23 avril 2008 à 11:51
Parce que c'est un "programme" délirant truffé d'erreurs déjà signalées et non corrigées : toutes les variables sont globales donc rien à passer, des fonctions qui sont sensées retournées un entier et qui ne le font pas, du troisième degré qui est du second degré, un déterminant qui n'en est pas un (c'est son carré), ...
La seule différence avec la première version est une pause ajoutée en cas de racine double !
Voilà un exemple amplement suffisant pour un si petit problème :
#include <stdio.h>
#include <math.h>
int main(void)
{
float a,b,c,det2;
printf("Resolution d'une equation du second degre\n");
printf("Coefficient a : ");
scanf("%f",&a);
printf("Coefficient b : ");
scanf("%f",&b);
printf("Coefficient c : ");
scanf("%f",&c);
det2 = (b * b) - (4. * a * c);
if (det2 < 0)
printf("Pas de racines reelles\n");
else if (det2 == 0)
printf("Racine double : %.2f\n"
,(- b) / (2 * a));
else
printf("Racines : %.2f et %.2f\n"
,(- b - sqrt(det2)) / (2 * a)
,(- b + sqrt(det2)) / (2 * a));
return 0;
}