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 dans la bibliothèque math.h


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Par défaut problème dans la bibliothèque math.h
    J'ai un petite problème dans la bibliothèque math.h
    quand je cherché d'évaluer la valeur de pow(-8, 1/3), ou pow(-32, 1/5) il ma dit NaN.
    Mais la réalité: (-8)^(1/3)=[(-2)^(3)]^(1/3)=-2, et [(-2)^(5)]^(1/5)=-2
    est-ce-que le problème dans la bibliothèque math.h, ou quelque chose que manque.
    merci d'avance.

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    1/3 c'est 0, 1/3.0 c'est 0.3333

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    1/3 c'est 0, 1/3.0 c'est 0.3333
    Merci pour votre réponse, mais le problème reste toujours,
    voila le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #include <iostream>
    #include <math.h>
    using namespace std;
    int main()
    {
        double x, y;
        cout<<"Entrez x:\n"<<endl;
        cin>>x;
        cout<<"Entrez y:\n"<<endl;
        cin>>y;
        cout<<"La valeur de pow(x,1/y) est: "<<pow(x,1/y)<<endl;
        char rep;
        cin>>rep;
        return 0;
    }
    mais quand je met, x=-8.0, y=3.0, le résultat pow(-8.0,1/3.0)=Nan;
    même pour x=-32.0 et y=-5.0.
    ,

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    x ne peut pas etre negatif (sans passer aux complexes, ca n'a pas de sens pour la plupart des valeurs de y)

  5. #5
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Salut

    Pour tes nombre à virgule à la place du "." essai "," quand tu rentres les valeurs de x et y.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Par défaut
    Mais pour x=-2, y=-0.5 le programme est correct et le résultat qui affiche est pow(-2.0,-1/0.5)=0.25
    Pour le traitement complexe, on a que:
    pow(-8,1/3)=(-8)^(1/3)=(8*e^(iP))^(1/3) mode(2P) Avec P=3.14....
    =2*e^(iP/3) mode(2P/3) mode(2P)
    =2*e^(iP) mode (2P)
    =-2
    Donc, on peut dire que le problème est dans la bibliothèque math.h; oui ou non

  7. #7
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Citation Envoyé par tagtog Voir le message
    Mais pour x=-2, y=-0.5 le programme est correct et le résultat qui affiche est pow(-2.0,-1/0.5)=0.25
    oui mais dans ce cas il n'y a pas de problème car vous faites pow(-2.0,-2)

    dans pow(a,b) si a est négatif il faut que b soit un entier, sinon le résultât est imaginaire
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  8. #8
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par tagtog Voir le message
    Mais pour x=-2, y=-0.5 le programme est correct et le résultat qui affiche est pow(-2.0,-1/0.5)=0.25
    Devrait retourner EDOM: http://www.bourguet.org/v2/clang/lib...6375e97d64159b

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/03/2014, 13h43
  2. Problème dans l'importation des bibliothèques jpeg
    Par manoubi77 dans le forum Eclipse
    Réponses: 5
    Dernier message: 22/05/2012, 11h51
  3. Réponses: 2
    Dernier message: 17/06/2010, 08h32
  4. Réponses: 6
    Dernier message: 30/05/2007, 10h41
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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