Calcul du second degré [source c]

Soyez le premier à donner votre avis sur cette source.

Vue 4 659 fois - Téléchargée 119 fois

Description

Ce petit code permet de calculer les ou le resultat de l'inconnu dans une équation du second degré. J'ai mis beaucoup de parenthèses aux calculs pour simplifier la compréhension . Il permet aussi de trouver l'extremum et montre la factorisation de l'équation

Source / Exemple :


#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

main ()
{  float a, b, c,x1,x2, delta, extremum, ordonne; 
   int i;
   
   
   { printf ("======= CALCUL DE SECOND DEGRE =======\n\n\n\n\n") ;
     printf ("Donnez tout d'abord le nombre qui se situe avant x au carré : ") ;
     scanf ("%f", &a) ;
       
     printf ("Donnez maintenant le nombre qui se situe devant x : ") ;
     scanf ("%f", &b) ;
       
     printf ("Donnez pour finir le nombre qui n'est devant aucun x :  ") ;
     scanf ("%f", &c) ;
       
     printf ("Je vais tout d'abord calculer delta\n") ;
     delta = ((b*b)-(4*a*c)) ;
     printf ("Delta est égal a %f\n\n\n\n\n\n", delta ) ;
     sleep (2000) ;                   
   }  
   printf ("Je vais maintenant vous calculer les différentes possibilités pour x : \n") ;
   sleep (1000) ;
   if (delta>0) 
   {  x1 = ((-b-(sqrt(delta)))/(2*a)) ;
      x2 = ((-b+(sqrt(delta)))/(2*a)) ;
      printf ("2 possibilités qui sont:\n x1=%f\n x2=%f\n\n",x1 ,x2) ;
      sleep (1000);
      printf ("La factorisation s'écrit : %f * (x-(%f)) * (x-(%f))\n\n",a,x1,x2) ;
      sleep (1000) ;
      extremum = -b/(2*a) ;
      printf ("L'extremum est atteint pour x égal %f     ", extremum) ;
      sleep (1000) ;
      ordonne = a*extremum*extremum + b*extremum + c ;
      printf (" en ordonné égal %f\n\n", ordonne) ;
   }   
   if (delta==0) 
   {  x1 = (-b/(2*a)) ;
      printf ("1 solution : %f\n\n",x1);
      sleep(1000) ;
      printf ("La factorisation s'écrit : %f * (x-(%f)) * (x-(%f))\n\n", a, x1, x1) ;
      sleep (1000) ;
      extremum = -b/(2*a) ;
      printf ("L'extremum est atteint pour x égal %f     ", extremum) ;
      sleep (1000) ;
      ordonne = a*extremum*extremum + b*extremum + c ;
      printf (" en ordonné égal %f\n\n", ordonne) ;
   }
   if (delta<0)   
   {  printf ("Delta est inferieur a 0 donc pas de solutions\n") ;
      sleep(1000) ;
      printf ("Delta est inferieur donc pas de factorisation\n") ;
   }                              
   getch () ;
   return 0 ;                         
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
15
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2005

À noter que ce n'est "impossible" que si c n'est pas nul.

Si c est nul, tout x réel est solution. Il faut donc rajouter encore un test (sur c) dans ta vérification de degrés.
Messages postés
1
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
14 décembre 2005

Tu peux rajouter ça, par exemple pour le cas ou le coefficient de X² est nul :

/* Vérification du degré de l'équation */
if (a==0)
{
printf("\n\nCeci est une equation du 1 degre.\n");
if (b!=0)
{
x=-c/b;
printf("\nCalcul de x : %.2f",x);
}
else
printf("\nImpossible !!!");
}
Messages postés
15
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2005

Le #include <windows.h> me semble exagéré compte tenu de la taille de la source.

Sinon, comment gères tu les cas défectifs (coefficient de X² nul, par exemple)?
Messages postés
1
Date d'inscription
jeudi 29 août 2002
Statut
Membre
Dernière intervention
29 décembre 2002

Tu peux aussi mettre le calcul du sommet et p-e aussi faire la meme formule autant sous la forme canonique et generale ca serait bien pour ceux qui veulent l'utiliser

P.S joli code
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
10
cool j'avais la flaime de faire le programme... mais ca pourrai toujours me servir...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.