Calcul du second degré [source c]

Soyez le premier à donner votre avis sur cette source.

Vue 5 013 fois - Téléchargée 129 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
ensiame
Messages postés
15
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2005

15 déc. 2005 à 09:16
À 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.
akeloos
Messages postés
1
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
14 décembre 2005

14 déc. 2005 à 19:33
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 !!!");
}
ensiame
Messages postés
15
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2005

20 nov. 2004 à 14:52
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)?
BLaZeX
Messages postés
1
Date d'inscription
jeudi 29 août 2002
Statut
Membre
Dernière intervention
29 décembre 2002

29 déc. 2002 à 21:05
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
cs_LordBob
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
10
29 déc. 2002 à 00:39
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.