Equation du 3éme degrée

Résolu
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 octobre 2010 - 21 avril 2008 à 11:15
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 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:

20 réponses

jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 octobre 2010
21 avril 2008 à 13:01
J-Ph
3
Taurnil Messages postés 48 Date d'inscription vendredi 8 décembre 2000 Statut Membre Derniè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).

++ et bonne continuation à tous
3
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
21 avril 2008 à 12:46
Si je comprend bien ton problème la fenêtre s'affiche et se ferme tout de suite?
Est-ce celà?

A+
0
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 octobre 2010
21 avril 2008 à 13:03
oui, c ça. J'ai voulu mettre systeme("pause") mais j'ai une erreur de compilation. Peux tu me dire ou je dois le mettre ( aprés le printf ?)


merci

J-Ph
0

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

Posez votre question
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
21 avril 2008 à 13:21
Salut
C'est system("PAUSE") qu'il faut mettre.

A+
Mon site internet : http://pistol.petesampras.free.fr
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
21 avril 2008 à 13:22
Bonjour,

1) ax² + bx + c = 0
2) équation du second degré
3) une fonction int xxx() doit retourner un int
4) ça marche sous Visual C++ après les modif des int

Jean-François
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
21 avril 2008 à 13:28
Le langage utilisé semble être du C, il faut donc utiliser getch(); (de mémoire) qui est déclaré dans:
conio.h
ou stdio.h
0
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 octobre 2010
21 avril 2008 à 14:36
J-Ph
0
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 octobre 2010
21 avril 2008 à 14:39
J-Ph
0
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 octobre 2010
21 avril 2008 à 14:41
systeme("pause"), je le mets ou ?
et getch() je le mets ou ?
pr infos c une b équation du 3émedegrée!!!!
J-Ph
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
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² !

Jean-François
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
21 avril 2008 à 15:59
getch() ou system("PAUSE");
sont à mettre (l'un ou l'autre) avant la fin du main (avnat la dernière accolade).
A+
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
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 );

cf. http://fr.wikipedia.org/wiki/%C3%89quation_du_second_degr%C3%A9

A+
0
Taurnil Messages postés 48 Date d'inscription vendredi 8 décembre 2000 Statut Membre Dernière intervention 2 juillet 2009
22 avril 2008 à 10:35
Non, c'est une équation du 2ème degré.
0
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 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");
}   






J-Ph
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
23 avril 2008 à 11:17
Sans commentaire !

Jean-François
0
Taurnil Messages postés 48 Date d'inscription vendredi 8 décembre 2000 Statut Membre Derniè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.

Voilà ++
0
Taurnil Messages postés 48 Date d'inscription vendredi 8 décembre 2000 Statut Membre Dernière intervention 2 juillet 2009
23 avril 2008 à 11:20
Pourquoi ce "sans commentaire" Jean-François?
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
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;
}




Jean-François
0
jeanphilippe37 Messages postés 73 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 21 octobre 2010
24 avril 2008 à 12:04
re,



merci pour votre passiance. Dsl, je suis le boulet!!!!!

J-Ph
0
Rejoignez-nous