Resoudre une equation du second degre en C (suite)

Resoudre une equation du second degre en C (suite) - C - Programmation

Marsh Posté le 20-09-2013 à 20:52:27    

Bonjour,
 
Vous trouverez sur ce topic la nouvelle version de mon programme "Résoudre une équation du second degré", bonne lecture! Desfois y'a des problèmes de communication je sais pas ce qui se passe, je suis pas des 5000 A 5 familles pour les 1200 euros/mois,t'as loupé le cours d'algorithme et ben...
 
#include<stdio.h>
 
int main()
{
    float a,b,c, delta;
    printf("Entrer a : " );
    scanf("%f",&a);
    printf ("\n a : %f\n", a);
    printf("Entrer b : " );
    scanf("%f", &b);
    printf("Entrer c : " );
    scanf("%f", &c);
    printf ("b et c : %f\t %f\n", b, c);
    delta=b*b-4*a*c;
    printf ("\n Delta = %f\n", delta);
    if (delta<0)
     {
         printf("Pas de solution reelle\n" );
     }
     else
     {
         if (a==0)
         {
             printf("x=-c/b" );
             printf ("Resultat : %f\n",-c/b);
         }
         else
         {
             if(delta==0)
             {
                 float solution;
                 solution=-b/(2*a);
                 printf("Il y a une solution:%f\n",solution);
             }
             else if (delta>0)
             {
                float solution2, solution1;
                solution2=(-b+sqrtf(delta))/(2*a);
                solution1=(-b-sqrtf(delta))/(2*a);
                printf ("Les solutions sont:%f\t%f\n",solution2,solution1);
            }
        }
     }
     return 1;
     }

Message cité 1 fois
Message édité par bouldamour le 21-09-2013 à 15:08:57

---------------
Venbio edit http://acomvenbioedit.fr
Reply

Marsh Posté le 20-09-2013 à 20:52:27   

Reply

Marsh Posté le 21-09-2013 à 00:11:26    

Et la question est ? (outre que ton niveau en maths semble indiqué que t'as pas dépassé la 1ère S, sinon, ton programme donnerait une solution à base de nb complexes :/ )
 
Parce que bon, ce genre de programme, on en trouve pleins sur le web depuis bien longtemps, donc je vois pas trop l'intérêt de poster ton code ici...
 
Edit : j'ai pas compris la 2ème phrase de ton post :/


Message édité par rufo le 21-09-2013 à 00:12:36

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 21-09-2013 à 03:43:16    

Bonjour !
 
Pour la 2ème phrase, je pense que cela fait référence à certains posts passés, plutôt houleux ...
 
http://forum.hardware.fr/hfr/Progr [...] 9004_1.htm
http://forum.hardware.fr/hfr/Progr [...] 8846_1.htm
http://forum.hardware.fr/hfr/Progr [...] 8941_1.htm
 
Ayant déjà exprimé mon sentiment la dernière fois, je n'ajouterai rien cette fois-ci, cela ne serait d'aucune utilité :)


Message édité par Farian le 21-09-2013 à 03:43:59
Reply

Marsh Posté le 21-09-2013 à 11:14:39    

"delta=b2-4a*c; " Me dit pas qu'elle passe cette ligne ? :o


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 21-09-2013 à 13:37:39    

Je me disais bien que ça me rappelais qq chose ce topic. Youuuu houuu, les modos, y'a "venbio edit" (ou son clone) qui est revenu ! :D


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 21-09-2013 à 16:38:48    

Pour que ça tourne, il te faut pas aussi une librairie de math?
 
Et sinon, c'est quoi l'objectif?


---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 22-09-2013 à 12:49:19    

bouldamour a écrit :

Bonjour,
 
Vous trouverez sur ce topic la nouvelle version de mon programme "Résoudre une équation du second degré", bonne lecture! Desfois y'a des problèmes de communication je sais pas ce qui se passe, je suis pas des 5000 A 5 familles pour les 1200 euros/mois,t'as loupé le cours d'algorithme et ben...
 
#include<stdio.h>
 
int main()
{
    float a,b,c, delta;
    printf("Entrer a : " );
    scanf("%f",&a);
    printf ("\n a : %f\n", a);
    printf("Entrer b : " );
    scanf("%f", &b);
    printf("Entrer c : " );
    scanf("%f", &c);
    printf ("b et c : %f\t %f\n", b, c);
    delta=b*b-4*a*c;
    printf ("\n Delta = %f\n", delta);
    if (delta<0)
     {
         printf("Pas de solution reelle\n" );
     }
     else
     {
         if (a==0)
         {
             printf("x=-c/b" );
             printf ("Resultat : %f\n",-c/b);
         }
         else
         {
             if(delta==0)
             {
                 float solution;
                 solution=-b/(2*a);
                 printf("Il y a une solution:%f\n",solution);
             }
             else if (delta>0)
             {
                float solution2, solution1;
                solution2=(-b+sqrtf(delta))/(2*a);
                solution1=(-b-sqrtf(delta))/(2*a);
                printf ("Les solutions sont:%f\t%f\n",solution2,solution1);
            }
        }
     }
     return 1;
     }

Il saute aux yeux qu'il y a un cas de figure ou ce programme est faux, d'ailleurs voila ce qu'il donne quand je le teste:

x=-c/bResultat : -1.#IND00


(compilé avec gcc sous windows XP)
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 22-09-2013 à 18:04:03    

Votre code réécrit un peu plus proprement pourrait donner ceci:

Code :
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.     printf("*******************************************************************\n" );
  6.     printf("* Resolution de l'equation a coefficients reels aX^2 + bX + c = 0 *\n" );
  7.     printf("*******************************************************************\n\n" );
  8.     float a, b, c;
  9.     printf("Entrez a : " );
  10.     scanf("%f",&a);
  11.     printf("Entrez b : " );
  12.     scanf("%f", &b);
  13.     printf("Entrez c : " );
  14.     scanf("%f", &c);
  15.     printf("\n Equation %g X^2 + %g X + %g = 0\n\n", a, b, c);
  16.     if (a) {       // degre 2
  17.         c = (b*b) - (4*a*c);
  18.         if (c < 0) {
  19.             printf("L'equation n'a pas de solution reelle.\n" );
  20.         } else {
  21.             b = -b;
  22.             a = 2*a;
  23.             if (c) {
  24.                 c = sqrtf(c);
  25.                 printf(" L'equation a deux solutions: %g et %g .\n", (b+c)/a, (b-c)/a);
  26.             } else {
  27.                 printf(" L'equation a une solution: %g .\n", b/a);
  28.             }
  29.         }
  30.     } else if (b) { // degre 1
  31.         printf(" L'equation a une solution: %g .\n", -c/b);
  32.     } else if (c) { // degre 0 sans solution
  33.         printf(" L'equation n'a pas de solution.\n" );
  34.     } else {       // degre 0 trivial
  35.         printf(" L'equation a une infinite de solution: tout nombre reel est solution.\n" );
  36.     }
  37.     return 0;
  38. }


 
Evidemment, c'est incomplet (comme votre source): il reste a vérifier la validité des saisies de a b et c, ainsi que le non dépassement de capacité lors des opérations mathématiques.
 
A+,


Message édité par gilou le 22-09-2013 à 18:46:56

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed