Resolution de l'equation du second degrés
sisimouhamed
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
Amet Sene -
Amet Sene -
Bonjour,
je voudrais que vous me corrigez mon faute dans le programme suivant.ce programme est compilé mais il ne donne pas de bonnes solutions:#include<stdio.h>
#include<math.h>
main (){
float a,b,c,delta,x1,x2,x;
printf("entrer a\n:");
scanf("%f", &a);
printf("entrer b\n:");
scanf("%f", &b);
printf("entrer c\n:");
scanf("%f", &c);
delta==((b*b)-(4*a*c));
if(a!=0){
if (delta>0){
x1=((-b- sqrt(delta)))/(2*a);
x2=(-b+ sqrt(delta))/(2*a);
printf("les deux solution sont:%f et %f", x1, x2);
scanf("%f %f", &x1, &x2);
}
else if(delta==0){
x==(-b)/(2*a);
printf("le resultat est:%f\n", x);
scanf("%f", &x);
}
}
else
printf("pas de solution\n", x);
}
je voudrais que vous me corrigez mon faute dans le programme suivant.ce programme est compilé mais il ne donne pas de bonnes solutions:#include<stdio.h>
#include<math.h>
main (){
float a,b,c,delta,x1,x2,x;
printf("entrer a\n:");
scanf("%f", &a);
printf("entrer b\n:");
scanf("%f", &b);
printf("entrer c\n:");
scanf("%f", &c);
delta==((b*b)-(4*a*c));
if(a!=0){
if (delta>0){
x1=((-b- sqrt(delta)))/(2*a);
x2=(-b+ sqrt(delta))/(2*a);
printf("les deux solution sont:%f et %f", x1, x2);
scanf("%f %f", &x1, &x2);
}
else if(delta==0){
x==(-b)/(2*a);
printf("le resultat est:%f\n", x);
scanf("%f", &x);
}
}
else
printf("pas de solution\n", x);
}
A voir également:
- Resolution de l'equation du second degrés
- 94 degres - Télécharger - Divers Jeux
- Second écran - Guide
- Editeur d'équation - Télécharger - Vie quotidienne
- Réduire résolution image - Guide
- Formule équation - Télécharger - Études & Formations
4 réponses
#include <iostream>
#include <vector>
public class polynome{
//Membres de l'objet
double a,b,c;
//Constructeur
polynome(double a,double b,double c):a=0,b=0,c=0{}
//Destructeur
~polynome(){}
//Calcule delta
double delta(){return b*b-4*a*c;}
std::vector<double> racines(){
std::vector v;
double d=this.delta();
if (d<0){
std::cout<<"Pas de racines reelles !"<<std::endl;
return v;
}
else if (d==0){
std::cout<<"Une seule racine reelle"<<std::endl;
v.push_back(........); //formule pour une racine
return v;
}else{//d>0
std::cout<<"Deux racines reelles"<<std::endl;
v.push_back(........); //formule pour la première racine
v.push_back(........); //formule pour la deuxième racine
return v;
}
}
};
std::ostream & operator<< (std::ostream &os, polynome const &p){
std::ostream o;
o<<a<<"x²+"<<b<<"x+"<<c;
}
int main(){
polynome p(2,5,6);
std::cout<<p<<std::endl;
std::cout<<"delta="<<p.delta()<<std::endl;
std::vector v=p.racines();
std::cout<<"racines:"<<std::end;
for(unsigned int i=0;i<v.size();++i) std::cout<<v[i]<<std::endl;
return 0;
}
#include <vector>
public class polynome{
//Membres de l'objet
double a,b,c;
//Constructeur
polynome(double a,double b,double c):a=0,b=0,c=0{}
//Destructeur
~polynome(){}
//Calcule delta
double delta(){return b*b-4*a*c;}
std::vector<double> racines(){
std::vector v;
double d=this.delta();
if (d<0){
std::cout<<"Pas de racines reelles !"<<std::endl;
return v;
}
else if (d==0){
std::cout<<"Une seule racine reelle"<<std::endl;
v.push_back(........); //formule pour une racine
return v;
}else{//d>0
std::cout<<"Deux racines reelles"<<std::endl;
v.push_back(........); //formule pour la première racine
v.push_back(........); //formule pour la deuxième racine
return v;
}
}
};
std::ostream & operator<< (std::ostream &os, polynome const &p){
std::ostream o;
o<<a<<"x²+"<<b<<"x+"<<c;
}
int main(){
polynome p(2,5,6);
std::cout<<p<<std::endl;
std::cout<<"delta="<<p.delta()<<std::endl;
std::vector v=p.racines();
std::cout<<"racines:"<<std::end;
for(unsigned int i=0;i<v.size();++i) std::cout<<v[i]<<std::endl;
return 0;
}
Il y a des années que je ne programme plus en C++. Je ne pourrais donc pas te corriger le programme dans les détails, mais je peux te donner quelques directives:
1) Essaye d'"aérer" les instructions de façon que l'on sache ou le bloc commence en ou il fini { }. Tel que le programme est écrit il est difficilement lisible. Par exemple: x1=((-b- sqrt(delta)))/(2*a); tu as une paire de parenhtèses en trop. Cela ne gêne pas la compilation, mais bien les yeux de celui qui lit.
2) Ne confond pas l'opérateur d'asignation = (opérateur arithmetique) avec l'opérateur logique == decomparaison. Il s'agît de deux opérations tout-à-fait differéntes. Par exemple delta==((b*b)-(4*a*c)); tu vex ici assigner a delta la valeur calcuée? dans ce ca tu devrais plutôt écrire delta=(b*b)-(4*a*c); et il y a encore quelques fautes de ce type.
Regarde cela en détail. Je crois que tu peux faire beaucoup miex. Lors que on commence à programmer, on est content quand ça marche!, mais ce n'est pas suffisant. Il faut que tu puisses lire le programme quelques années plus tard et tu le comprennes encore. Il faut apprendre dès le début à écrire en professionnel.
1) Essaye d'"aérer" les instructions de façon que l'on sache ou le bloc commence en ou il fini { }. Tel que le programme est écrit il est difficilement lisible. Par exemple: x1=((-b- sqrt(delta)))/(2*a); tu as une paire de parenhtèses en trop. Cela ne gêne pas la compilation, mais bien les yeux de celui qui lit.
2) Ne confond pas l'opérateur d'asignation = (opérateur arithmetique) avec l'opérateur logique == decomparaison. Il s'agît de deux opérations tout-à-fait differéntes. Par exemple delta==((b*b)-(4*a*c)); tu vex ici assigner a delta la valeur calcuée? dans ce ca tu devrais plutôt écrire delta=(b*b)-(4*a*c); et il y a encore quelques fautes de ce type.
Regarde cela en détail. Je crois que tu peux faire beaucoup miex. Lors que on commence à programmer, on est content quand ça marche!, mais ce n'est pas suffisant. Il faut que tu puisses lire le programme quelques années plus tard et tu le comprennes encore. Il faut apprendre dès le début à écrire en professionnel.
c pas du c++ mais du c ;)
si tu vx pour t"aider voila ma solution mais je c pas si c correcte :)
void main (void)
{
int a,b,c;
float delta,x1,x2;
/* SAISIE */
printf("Veuillez entrer le coefficient de A S.V.P\n\t");
scanf ("%d",&a);
printf("\nVeuillez entrer le coefficient de B S.V.P\n\t");
scanf ("%d",&b);
printf("\nVeuillez entrer le coefficient de C S.V.P\n\t");
scanf ("%d",&c);
/* CALCULE DE DELTA */
delta=(float)(b*b)-(4*a*c);
/* TESTS CALCULE AFFICHAGE */
if(delta==0)
{
x1=(float)(-b+sqrt(delta))/(2*a);
printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c);
printf("\n A UNE SEUL RACINE QUI EST %f",x1);
printf("\n ET UN DELTA QUI EST %f\n",delta);
}
else
{
if(delta<0)
{
printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c);
printf("\n A PAS DE RACINE" );
printf("\n ET UN DELTA QUI EST %f\n",delta);
}
else
{
x1=(float)(-b+sqrt(delta))/(2*a);
x2=(float)(-b-sqrt(delta))/(2*a);
printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c);
printf("\n A DEUX RACINES QUI SONT %f et %f",x1,x2);
printf("\n ET UN DELTA QUI EST %f\n",delta);
}
}
}
BIEN A TOI
si tu vx pour t"aider voila ma solution mais je c pas si c correcte :)
void main (void)
{
int a,b,c;
float delta,x1,x2;
/* SAISIE */
printf("Veuillez entrer le coefficient de A S.V.P\n\t");
scanf ("%d",&a);
printf("\nVeuillez entrer le coefficient de B S.V.P\n\t");
scanf ("%d",&b);
printf("\nVeuillez entrer le coefficient de C S.V.P\n\t");
scanf ("%d",&c);
/* CALCULE DE DELTA */
delta=(float)(b*b)-(4*a*c);
/* TESTS CALCULE AFFICHAGE */
if(delta==0)
{
x1=(float)(-b+sqrt(delta))/(2*a);
printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c);
printf("\n A UNE SEUL RACINE QUI EST %f",x1);
printf("\n ET UN DELTA QUI EST %f\n",delta);
}
else
{
if(delta<0)
{
printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c);
printf("\n A PAS DE RACINE" );
printf("\n ET UN DELTA QUI EST %f\n",delta);
}
else
{
x1=(float)(-b+sqrt(delta))/(2*a);
x2=(float)(-b-sqrt(delta))/(2*a);
printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c);
printf("\n A DEUX RACINES QUI SONT %f et %f",x1,x2);
printf("\n ET UN DELTA QUI EST %f\n",delta);
}
}
}
BIEN A TOI
je me permet d'ajouter ma pierre ;)
Pour avoir le choix des solutions avec imaginaires
Pour avoir le choix des solutions avec imaginaires
void main (void) { int a,b,c,imaginaire; float delta,x1,x2,x1i,x2i; /* SAISIE */ printf("Veuillez entrer le coefficient de A S.V.P\n\t"); scanf ("%d",&a); printf("\nVeuillez entrer le coefficient de B S.V.P\n\t"); scanf ("%d",&b); printf("\nVeuillez entrer le coefficient de C S.V.P\n\t"); scanf ("%d",&c); /* CALCULE DE DELTA */ delta=(float)(b*b)-(4*a*c); /* TESTS CALCULE AFFICHAGE */ if(delta==0) { x1=(float)(-b+sqrt(delta))/(2*a); printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c); printf("\n A UNE SEUL RACINE QUI EST %f",x1); printf("\n ET UN DELTA QUI EST %f\n",delta); } else { if(delta<0) { printf ("\nAcceptez vous les imaginaires ? oui=1 non=0 \n\t"); scanf ("%d",&imaginaire); if(imaginaire>0) { x1=(float)(-b)/(2*a); x1i=(float) (-sqrt(-delta))/(2*a); x2=(float) (-b)/(2*a); x2i=(float) (sqrt(-delta))/(2*a); printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c); printf("\n A DEUX RACINES QUI SONT %f + %f i ET %f + %f i",x1,x1i,x2,x2i ); printf("\n ET UN DELTA QUI EST %f\n",delta); } else { printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c); printf("\n A PAS DE RACINE" ); printf("\n ET UN DELTA QUI EST %f\n",delta); } } else { x1=(float)(-b+sqrt(delta))/(2*a); x2=(float)(-b-sqrt(delta))/(2*a); printf("\n L'equation\n %d x%c + %d x + %d ",a,253,b,c); printf("\n A DEUX RACINES QUI SONT %f et %f",x1,x2); printf("\n ET UN DELTA QUI EST %f\n",delta); } } }
Oui, mais ce n'est pas du C...