Polynome du second degre en c++ (commenté)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 467 fois - Téléchargée 29 fois

Contenu du snippet

Ce programme permet de résoudre des polynomes du second degré a l'aide des réels a , b et c. Le tout commenté (n'hésitez pas a me dire vos critiques : c'est ma première source)

Source / Exemple :


/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////Résolution d'éqation de polynome du second degré//////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/

//INCLUDES  
#include <iostream>
#include <math.h>

//PROTOTYPES
int calculpolynome();

//MAIN
int main()
{
    using namespace std; //utilisation des commandes comme cout, cin...
    cout<<"ce programme permet de calculer les racines d un polinomes du second degre a partir a, b, c. "<<endl;//définition du programme.
    cout<<endl;
    calculpolynome();//appel de la fonction
    return 0;
}

//FONCTIONS

int calculpolynome()
{
    using namespace std;
    float a , b, c, solution1, solution2, solution3, racinecarre1 , racinecarre2 ;
    float landa;
    
    cout<<"definissez a"<<endl;
    
    cin>>a;
    cout<<"definissez b"<<endl;
    cin>>b;
    cout<<"definissez c"<<endl;
    cin>>c;
    cout<<"calcul de landa : "<<endl;
    cout<<endl;
    
    
    landa = b*b-4*a*c;
    cout<<"landa = "<<landa<<endl;
    
    if(landa<0)
    {
        cout<<"il n'y a pas de solution"<<endl;
    }
    
    if(landa==0)
    {
        cout<<"landa est egal a zero, il existe une racine unique"<<endl;
          
                solution1= -b /2*a;
                    cout<<" la racine unique est "<<landa<<endl;
    }
    if(landa>0)
    {
        cout<<"landa est superieure a zero, il existe donc deux racines : "<<endl;
        solution2= -b + sqrt(landa) /2*a;
        solution3 = -b - sqrt (landa) /2*a;
        cout<<"les racines sont "<<solution1<<" et "<<solution2<<endl;
    }
        
    
    
    
                
        int fin;
        cin>>fin;
}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
30
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
17 juin 2004

Ok merci a tous pour vos suggestion
Messages postés
41
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
17 avril 2004

Lol lambda c'est la longueur d'onde, et on ne mets jamais des couts et cin dans les fonctions de calcul.
Il y a un moment de cela j'avais fait une classe qui faisait ca :

class trin
{
public:
trin(float va,float vb,float vc);
float Getnbsol() const { return this->nbsol; }
float Getx1() const { return this->x1; }
float Getx2() const { return this->x2; }
float Getdelta() const { return this->d; }
private:
float a;
float b;
float c;
float d;
float x1;
float x2;
unsigned int nbsol;
void calcd();
void verif();
void calcnbsol();
void calcx();
};

trin::trin(float va,float vb,float vc)
{
a=va;
b=vb;
c=vc;
calcd();
verif();
if(nbsol!=0)
{
calcnbsol();
calcx();
}
}

void trin::calcd()
{
d = (b*b)-(4*a*c);
}

void trin::verif()
{
if(d<0 || a==0)
{
nbsol=0;
}
else
{
nbsol=1;
}
}

void trin::calcnbsol()
{
if(d==0)
{
nbsol=1;
}
if(d>0)
{
nbsol=2;
}
}

void trin::calcx()
{
if(nbsol==1)
{
x1=x2=(-b-sqrt(d))/(2*a);
}
if(nbsol==2)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
}
}
Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006

les caractére pour remplacer les endl, sont pas passer , ils ont du être interpréter, il fo comprendre cout << "Ton Texte(antislash n)"
Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006

comme la déjà dit garslouche c'est delta, mais c'est pas trés important, c'est juste un nom de variable. Le truc c'est surtout que lorsque delta < 0 il y a bien deux solutions parmis les complexes, enfin bon tu a peu être pas encore vu les complexes, tu sais i² = -1.
autre truc, le using namespace std, tu le déclare pas dans chaque fonction tu le déclare une fois pour toute au début, en dessous de tes include.
Deplus, généralement on met le main a la fin, et les fonctions qu'il appelle avant dans un namespace anonyme.
Tu peut également "allégeré ton programme en metant '
' à la place de endl, en plus tu peut l'injecter avec ton texte par exemple : cout << "Tontexte

"; tu peut en injecter autant ke tu veut, c'est moins lourd.
sinon c'est pas mal pour un premier programme, essaie de faire des lignes ki font 72 caractéres max, c'est mieux.
Bonne continuation, bonne chance pour la suite.
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

et d'ailleurs traditionnellement ce n'est pas lambda mais delta qu'on utilise pour le discriminant
Afficher les 7 commentaires

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.