IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème pour faire des racines et exposants


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Problème pour faire des racines et exposants
    Salut tout le monde,

    Je programme en C++ depuis peu de temps.

    J'ai quasiemmment fini un solver d'équation du deusième degré : type ax²+bx+c=0

    J'ai juste un problème : comment puis je faire pour dire à l'ordinateur de faire la racine d'un nombre ou l'élever à la puissance 1/2 ?

    Merci d'avance de votre aide

    Xywez

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Points : 307
    Points
    307
    Par défaut
    On est en C++, autant ne pas utiliser les heritages du C. Il vaut mieux includre le fichier <cmath>, et utiliser std::pow et std::sqrt, qui ont le bon gout d'etre surcharges pour la plupart des types de base.

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par roulious
    On est en C++, autant ne pas utiliser les heritages du C. Il vaut mieux includre le fichier <cmath>, et utiliser std::pow et std::sqrt, qui ont le bon gout d'etre surcharges pour la plupart des types de base.
    Je me disais bien qu'il devait exister quelque chose dans ce genre, mais je ne l'ai pas trouvé sur cppreference !

    Edit : après recherche, <cmath> et <math.c> ne sont ils pas équivalents (la seule différence résidant dans le namespace) ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Pour inclure, je mes #include <cmath> au tout début.

    Mais ensuite qui est qui.

    Peut-on me donner un exemple avec, par exemple,

    racine de 2
    et
    2 exposant 3

    Merci de vos réponses.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Points : 307
    Points
    307
    Par défaut
    Citation Envoyé par Eusebe
    après recherche, <cmath> et <math.c> ne sont ils pas équivalents (la seule différence résidant dans le namespace) ?
    En cherchant rapidement dans le standard, les headers type vector.h n'existent pas, il s'agit d'un mecanisme des compilateurs pour gerer la transition avec du code pre-standard. Donc pour math.h qui fait normalement partie de la bibliotheque C, je ne sais pas trop ce qui se passe, mais rien de standard

    Edit : les liens vers la doc de Dinkumware http://dinkumware.com/manuals/?manua...math.html#sqrt et http://dinkumware.com/manuals/?manua...=math.html#pow
    Donc racine de 2 (en double) : std::sqrt(2.) et 2^3 (en double aussi) std::pow(2., 3.)

  7. #7
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Citation Envoyé par roulious
    En cherchant rapidement dans le standard, les headers type vector.h n'existent pas, il s'agit d'un mecanisme des compilateurs pour gerer la transition avec du code pre-standard. Donc pour math.h qui fait normalement partie de la bibliotheque C, je ne sais pas trop ce qui se passe, mais rien de standard
    Si, tu auras un comportement standard, la bibliothèque standard du C étant incluse dans celle du C++. Cependant maintenant on emploie plus volontiers <cmath> en effet, mais la plupart du temps celui si ne fait qu'encapsuler <math.h> dans le namespace std.
    Fiquet
    - FAQ SDL
    - FAQ C++

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse mais je comprend pas pourquoi ceci nemarcherai pas allors (il veut pas compiler avec cette ligne) :

    double x1;
    x1 =(-b-(std::sqrt(delta.)))/(2*a);

  9. #9
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x1 =(-b-(std::sqrt(delta.)))/(2*a);
    C'est quoi le point après delta ? Dans tous les cas ce code n'est pas compilable...
    Fiquet
    - FAQ SDL
    - FAQ C++

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    A oui, si j'enlève le point, il veut bien le compiler.

    Quand c'est une variable, il n'y a pas de . comme c'était le cas pour 2 dan,s l'exemple plus haut alors ?

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci bien pour tout, en tout qu'a maintenant mon programme marche nikel grace à votre aide.

    Je retient et conseillerais votre forum pour toute aide.

  12. #12
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Citation Envoyé par Xywez
    A oui, si j'enlève le point, il veut bien le compiler.

    Quand c'est une variable, il n'y a pas de . comme c'était le cas pour 2 dan,s l'exemple plus haut alors ?
    le point indique au compilo après un chiffre écrit directement dans le code que c'est un double par exemple. Dans le cas d'une variable le type est bien entendu connu ça n'a pas de sens de rajouté ça.
    Fiquet
    - FAQ SDL
    - FAQ C++

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    ok, merci pour l'info

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/08/2009, 13h51
  2. [Perl/Tk] problème pour faire passer des variables vers une fonction
    Par seben dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 09/03/2009, 15h17
  3. Problème pour faire des box extensibles avec des images)
    Par dream_of_australia dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 17/11/2007, 10h58
  4. problèmes pour faire des états paramétrés sur vb6
    Par k_alexis dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 16/10/2007, 18h59
  5. problème pour faire des blocs
    Par tinkye_winkye dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 04/01/2005, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo