Bonjour à tous,
Je suis totalement débutant en programmation et lors de notre premier cours d'introduction à la programmation,
on nous demande de réaliser un programme capable de résoudre une équation du second degré
Or, en réalisant le code source, je m'aperçois que j'ai énormément de condition pour une équation : aX^2+bX+C
première condition : si a = 0 et b = 0
deuxième condition : si a = 0 et b différent de 0
troisième condition : si a et b différent de 0
jusque là, je n'ai pas rencontré de problème
donc si a et b sont différent de 0, nous pouvons donc calculer le delta
alors, nous retrouvons de nouveau des conditions qui sont donc à l'intérieur de la troisième condition
delta =0
delta > 0
delta < 0
et donc je ne sais pas comment je peux introduire ces trois condition de delta dans la troisième condition de a et b...
Voici ce que j'ai tenté de faire :
Code PHP:
#include <stdio.h> // librairie de fonctions utiles dont printf() et scanf()
#include <math.h> // librairie de fonctions pour les racines carrée
int main() // le programme principal, celui qui sera execute
{
// declaration des variables reelles
float a=0; // terme du second degre
float b=0; // terme du premier degre
float c=0; // terme independant
float delta=0; // delta de l equation du second degre
float solunique=0; // cas si le delta est nul
float x=0; // cas si a est nul
float x1=0; // solution 1 si delta > 0
float x2=0; // solution 2 si delta > 0
float r=0; // partie reelle si le delta est negatif
float i=0; // partie imaginaire si le delta est negatif
printf("Resolution d un polynome du second degre de type : ax^2+bx+c=0 \n\n\n"); // explication du but du programme
printf("le terme du second degre (a): "); // demande a l utilisateur
scanf("%f", &a ); // saisir sur le clavier par l utilisateur
printf("le terme premier degre (b): "); // demande a l utilisateur
scanf("%f", &b); // saisir sur le clavier par l utilisateur
printf("le terme independant (c): "); // demande a l utilisateur
scanf("%f", &c); // saisir sur le clavier par l utilisateur
printf("\n\nVous cherchez les solutions de l'equation : \n\n"); // récapitulatif de l equation du second degre
printf("%f x^2 + %f x + %f = 0\n\n", a, b, c); // mise en forme de l équation avec les donnees introduites
if (a == 0 && b == 0 ) // condition : si a = b = 0
{
printf("l equation est donc reduite a : \n\n");
printf("%f = 0 \n\n", c);
printf("l egalite est fausse \n");
}
if (a == 0 && b != 0) // condition : si a = 0 et b est different de 0
{
x = -c / b;
printf("l equation est donc reduite a : \n\n");
printf("%f x + %f = 0 \n\n", b, c );
printf("la solution de l'equation est donc : %f \n\n " , x);
}
if (a != 0 && b != 0 ) // condition : si a et b sont différent de 0
{
delta = (b*b) - (4*a*c);
printf("le delta de l'equation suivant est : %f ", delta);
if (delta >0) // condition : si le delta est positif, alors nous avons deux solutions dans les réels
{
printf("nous avons deux solutions : \n\n");
x1 = (-b+sqrt(delta))/(2*a);
x2 = (-b-sqrt(delta))/(2*a);
printf(" x1 : %f \n", x1);
printf(" x2 : %f \n", x2);
}
if (delta =0) // condition : si le delta est nul, alors nous avons une solution dans les réels
{
printf("nous avons une solution unique : \n\n");
solunique = (-b)/(2*a);
printf(" x : %f \n", solunique);
}
if (delta <0) // condition : si le delta est negatif, alors nous n'avons pas de solution dans les reels mais nous en avons dans les complexes
{
printf("Nous avons un delta négatif, \n");
printf("Cela signifie que nous n'avons donc pas de solution dans les reels \n");
printf("Nous pouvons cependant calculer la solution dans les complexes \n\n\n");
r=(-b)/(2*a);
printf("Partie réelle : %f \n " , r);
i=(sqrt(-delta))/(2*a);
printf("Partie imaginaire : %f \n", i);
}
}
return 0; // pour respecter la syntaxe de la fonction int main()
}
Merci de votre aide
Cordialement,
Leviss
-----