Resolution de l'equation du second degrés
Fermé
sisimouhamed
Messages postés
79
Date d'inscription
vendredi 5 septembre 2008
Statut
Membre
Dernière intervention
28 novembre 2011
-
5 sept. 2008 à 03:25
Amet Sene - 13 nov. 2009 à 13:15
Amet Sene - 13 nov. 2009 à 13:15
A voir également:
- Resolution de l'equation du second degrés
- Jeu 94 degrés - Télécharger - Divers Jeux
- Second compte whatsapp - Guide
- Second écran - Guide
- Supprimer second espace xiaomi - Forum Xiaomi
- Resolution 1366x768 - Forum TV & Vidéo
4 réponses
Utilisateur anonyme
10 avril 2009 à 01:28
10 avril 2009 à 01:28
#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); } } }
10 avril 2009 à 02:16
Oui, mais ce n'est pas du C...