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

Bibliothèque standard C Discussion :

Problème avec la libraire math.h sous ubuntu


Sujet :

Bibliothèque standard C

  1. #1
    Membre confirmé
    Homme Profil pro
    Cycles en Informatique
    Inscrit en
    Juin 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cycles en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 67
    Par défaut Problème avec la libraire math.h sous ubuntu
    Bonjour à tous,

    Au faite des resultats qui sont très bizzard sous ma machine qui tourne sous ubuntu malgres que j'ai bien compile avec la librairie mathématique.
    voila mon programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include <stdio.h>
    #include <math.h>
     
    int main()
    {
      double x = 114.58;
      double result = cos(x);
      printf("le cosine de %lf est %lf\n", x, result);
      return 0;
    }
    Voilà ce qu'il m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    le cosine de 114.580000  est 0.088018
    Alors que voilà la vraie valeur du cosinus 114.58 qui est négative : -0,415963384
    Si vous avez une idée d'où vient le problème merci de me guider.
    Merci

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    même chose sous visual 2008:
    le cosine de 114.58 est 0.0880178
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <math.h>
     
    int main(void)
    {
      double x = 114.58;
      double result = cos(x);
     
      printf("le cosine de %g est %g\n", x, result);
     
      return 0;
    }

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Pour les fonctions qui prennent un angle en argument (sin, cos, tan...) celui ci doit être exprimé en radian.
    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
    #include <stdio.h>
    #include <math.h>
     
    /* M_PI est souvent défini dans math.h */
    #define DEG2RAD(ang) (M_PI * ang / 180.) 
     
    int main(void)
    {
      double x = 114.58;
      double result = cos(DEG2RAD(x));
     
      printf("le cosine de %g est %g\n", x, result);
     
      return 0;
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Cycles en Informatique
    Inscrit en
    Juin 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cycles en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 67
    Par défaut Résoolu
    Bonjour,

    Merci à tous de votre contribution, il vient en richir ma base de connaissance.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 44
    Par défaut
    Citation Envoyé par mabu Voir le message
    Bonjour,

    Pour les fonctions qui prennent un angle en argument (sin, cos, tan...) celui ci doit être exprimé en radian.
    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
    #include <stdio.h>
    #include <math.h>
     
    /* M_PI est souvent défini dans math.h */
    #define DEG2RAD(ang) (M_PI * ang / 180.) 
     
    int main(void)
    {
      double x = 114.58;
      double result = cos(DEG2RAD(x));
     
      printf("le cosine de %g est %g\n", x, result);
     
      return 0;
    }
    reponse tres exacte en additif, essai de de rendre ds la l'include math.h en faisant
    cat /usr/include/math.h | grep M_PI
    tu tomberas direct sur la ligne.

    En effet il faudrait convertirr ta valeur en degre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    double teta = x * M_PI / 180;
    double value = cos(teta);
    printf("cos( %g ) =  %g\n",  teta, value);

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

Discussions similaires

  1. problème avec la bib math.h
    Par tenderstoune dans le forum C++
    Réponses: 6
    Dernier message: 01/11/2007, 21h13
  2. Problème avec une fonction de GDK sous Windows !
    Par Franck.H dans le forum GTK+ avec C & C++
    Réponses: 9
    Dernier message: 08/06/2007, 13h57
  3. problème à la (re)installation d'Eclipse sous Ubuntu
    Par vichenze dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/05/2007, 12h10
  4. Réponses: 11
    Dernier message: 14/02/2006, 00h26
  5. Problème avec les libraires dynamiques
    Par Harzoglups dans le forum C
    Réponses: 3
    Dernier message: 17/01/2006, 15h21

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