begin process at 2012 02 12 03:05:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

problème de IF


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème de IF

dimanche 21 octobre 2007 à 09:24:28 | problème de IF

ichigoZ710

Bonjour,

je voulais avoir votre avis sur une partie de mon code qui fait des choses vraiment bizarre...disons que la condition d'un if ne se fait pas ....
voilà mon code avec son if :

PenroseI::PenroseI(){}

PenroseI::PenroseI(Point pta,Point ptb,Point ptc):TriIso(pta,ptb,ptc)
{
    double phi=0;
    phi=((1+ sqrt((double)5))/2);
    double test=0;

    if(getsommet()=='c'){
        test=((getlongbase())/(getlongcotiso()));
        cout<<phi<<endl;
        cout<<test<<endl;
        if((abs(phi-test))==0,000001){
            cout<<abs(phi-test)<<endl;
            cout<<"Le triangle est un triangle de Penrose de type I"<<endl;
        }
        else{
            cout<<"c'est pas un penrose -_-"<<endl;
        }
    }
    else if(getsommet()=='b'){
        test=((getlongbase())/(getlongcotiso()));
        cout<<test<<endl;
        if(abs(phi-test)==0,000001){
            cout<<abs(phi-test)<<endl;
            cout<<"Le triangle est un triangle de Penrose de type I"<<endl;
        }
        else{
            cout<<"c'est pas un penrose -_-"<<endl;
        }
    }
    else if(getsommet()=='a'){
        test=((getlongbase())/(getlongcotiso()));
        cout<<test<<endl;
        if(abs(phi-test)==0,000001){
            cout<<abs(phi-test)<<endl;
            cout<<"Le triangle est un triangle de Penrose de type I"<<endl;
        }
        else{
            cout<<"c'est pas un penrose -_-"<<endl;
        }
    }

}

il faut savoir que la valeur getsommet, getlongcotiso et getlongbase viennent d'une classe mère TriIso car la classe Penrose en hérite
je vais donc vous mettre ma classe TriIso également :

TriIso::TriIso(Point a,Point b,Point c)
{

    if ((a.Compoint(b)==0)&&(b.Compoint(c)==0)&&(c.Compoint(a)==0)) //si des point tous != alors..
    { //...c'est un triangle simple
        cout << "Ces points forment un triangle "<<endl;

        if ((a.Calclong(b))==(b.Calclong(c))){//si ab=bc -> sommet=b
            sommet = 'b';
            cout << "isoc\x8Ale en b" << endl;
            longbase=(c.Calclong(a));
            cout<<"La longueur de la base est : "<< longbase <<endl;
            longcotiso=(b.Calclong(c));
            cout<<"La longueur d'un cot\x82 isoc\x8Ale est : "<< longcotiso <<endl;

        }
        else if ((b.Calclong(c))==(c.Calclong(a))){//si bc=ca -> sommet=c
            sommet = 'c';
            cout << "isoc\x8Ale en c" << endl;
            longbase=(a.Calclong(b));
            cout<<"La longueur de la base est : "<< longbase <<endl;
            longcotiso=(a.Calclong(c));
            cout<<"La longueur d'un cot\x82 isoc\x8Ale est : "<< longcotiso <<endl;
        }
        else if ((c.Calclong(a))==(a.Calclong(b))){//si ca=ab -> sommet=a
            sommet = 'a';
            cout << "isoc\x8Ale en a" << endl;
            longbase=(c.Calclong(b));
            cout<<"La longueur de la base est : "<< longbase <<endl;
            longcotiso=(a.Calclong(c));
            cout<<"La longueur d'un cot\x82 isoc\x8Ale est : "<< longcotiso <<endl;
        }
        else{
            cout << "non isoc\x8Ale" << endl;
        }
    }
    else{
        cout<<"Ce n'est pas un triangle"<<endl;
    }
}

char TriIso::getsommet(){
    return(sommet);
}

void TriIso::setsommet(char sommet) {
   this->sommet = sommet;
}

double TriIso::getlongbase(){
    return(longbase);
}

void TriIso::setlongbase(double longbase) {
   this->longbase = longbase;
}

double TriIso::getlongcotiso(){
    return(longcotiso);
}

void TriIso::setlongcotiso(double longcotiso) {
   this->longcotiso = longcotiso;
}

et voilà ce que m'affiche ma console windows :

appel du constructeur simple : 0035A3D0 1 1
appel du constructeur simple : 0035A490 1 3
appel du constructeur simple : 0035A4D8 2 2
Ces points forment un triangle
isocèle en c
La longueur de la base est : 2
La longueur d'un coté isocèle est : 1.41421
1.61803                                                            <---------Valeur de phi
1.41421                                                            <---------Valeur de test
0.20382                                                            <---------Valeur de la sous traction de phi - test
Le triangle est un triangle de Penrose de type I   <---------Résultat du if dans Penrose
Appuyez sur une touche pour continuer...

Donc si quelqu'un pouvait m'aider à propos de ce if....

Merci,
Cordialement, ichigoZ710
dimanche 21 octobre 2007 à 15:32:39 | Re : problème de IF

yann_lo_san

Passes donc plutôt tes variables en float à la place de double et utilises :
if( ( fabs(phi - test) ) == 0,000001f )
{

}

dimanche 21 octobre 2007 à 18:05:59 | Re : problème de IF

buno

Administrateur CodeS-SourceS
Salut,
Pas très conseillé de faire des tests de nullité avec des flottants....
Ce que j'ai l'habitude de faire:
if (abs(fMonFloat) < 1e6)
...

@+

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage


Cette discussion est classée dans : cout, sommet, if, triiso, calclong


Répondre à ce message

Sujets en rapport avec ce message

Problème dans un code [ par ichigoZ710 ] Bonjour à tous,J'ai une méthode qui calcule la distance entre 2points. le but étant dans un triangle de type isocèle d'arrivé à calculer la base, un d Grave problème de lecture d'un tableau string [ par alincoln54 ] Bonjour à tous,Le code suivant ne fonctionne pas (BCB C++) :#include #include #include #include #include < triangularisat [ par desco182 ] Salut a quiconque  sur le forum qui aimerait porter des corrections svp#include#include#include#include#define max 10float A[max][max], B[max], Plus ou Moins / Le Bon Numero [ par AsllaPiscu ] C'est vraiment un simple jeu classique, but trouver un bon numéro entre deux valeurs dans le minimum d'essais ! Seulement, je fais mes débuts, et je n Communication port COM [ par nicolebarge23 ] Bonjour, Après de nombreuses recherches sur le net, j'ai réussis à lire des données provenant d'un émetteur analogique par l'intermédiaire du port COM convertir du cpp en VB.net ou VB [ par Taur33 ] bonsoir à tous, j'aurais besoin de convertir le code suivant en vb je précise que j'ai déjà essayé des logiciels qui soit disant le faisait mais cela Traitement caractères [ par baptchr55 ] Bonjour à tous, je sollicite à nouveau votre aide suite à un problème de traitement de caractères... Je reçoit une trame (par le biais de sockets) et Segmentation fault sur un tableau de char [ par MaxSoldier ] Bonsoir tout le monde !Je me suis mis au C/C++ sous linux il y a quelques jours et j'ai de nombreuses erreur de dépassement de tampon (segmentation fa Controle chiffre en C++ [ par Marcel62 ] Voila mon problème: Mon programme ne doit accepter que les nombre entre 0 et 1000, mais lorsque je saisis une lettre il plante. Que doit je modifier p erreur de sytem("pause") [ par jeanphilippe37 ] Bj, J'ai fais ce programme pour savoir la catégorie des adresses Ip,il fonctionne, mais quand je mets system("pause"), le compilateur me met une e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,104 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales