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 :

je veux utiliser PI en C++??? est ce possible?


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    85
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 85
    Par d�faut je veux utiliser PI en C++??? est ce possible?
    merci

    xavier

  2. #2
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    85
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 85
    Par d�faut
    bonjour,
    je fais une petite routine qui doit utiliser Pi.
    Cette variable est-elle d�finie en C++?
    Xavier

  4. #4
    Membre chevronn�
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    D�tails du profil
    Informations personnelles :
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Par d�faut
    Salut !

    Oui, va voir du c�t� de math.h, il y a une variable M_PI je crois...

    a+

  5. #5
    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 mathieu_t
    Oui, va voir du c�t� de math.h, il y a une variable M_PI je crois...
    C'est une macro demandee par Posix mais pas par la norme du C++ (ni du C). Je ne sais pas combien cette definition est repandue en dehors des Unix.

  6. #6
    Membre chevronn�
    Avatar de bigquick
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    356
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 356
    Par d�faut
    Salut

    Pour �tre sur qu'elle soit d�finie, tu peux ajouter cette d�finition dans le fichier qui l'utilise (ou dans un header qui convient) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    #ifndef M_PI
       #define M_PI 3.14159265358979323846
    #endif

  7. #7
    Membre chevronn�
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    D�tails du profil
    Informations personnelles :
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Par d�faut
    Citation Envoy� par Jean-Marc.Bourguet
    C'est une macro demandee par Posix mais pas par la norme du C++ (ni du C). Je ne sais pas combien cette definition est repandue en dehors des Unix.
    En tout cas je l'ai d�j� utilis� sous Windows, avec C++ Builder il me semble...

  8. #8
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Sous VC++ par d�faut elle passe pas, y'a un #define � faire (_USE_MATH_DEFINES).

  9. #9
    Membre chevronn�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par d�faut
    Citation Envoy� par bigquick
    Salut

    Pour �tre sur qu'elle soit d�finie, tu peux ajouter cette d�finition dans le fichier qui l'utilise (ou dans un header qui convient) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    #ifndef M_PI
       #define M_PI 3.14159265358979323846
    #endif
    Beurk !

  10. #10
    Membre chevronn�
    Avatar de bigquick
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    356
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 356
    Par d�faut
    Citation Envoy� par VoidSeer
    Beurk !
    Histoire d'�tre constructif, tu voudrais pas proposer une solution qui marcherait avec n'importe quel compilateur ?

    Je sais, un #define c'est pas top, �a serait mieux de faire quelque chose du type:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const double g_Pi = 3.14159265358979323846;
    La solution du define permet juste de rester "plus ou moins" standard (rappel: C'est une macro demandee par Posix), en d�finissant M_PI quand il ne l'est pas...

    Mais vas y je t'en prie, propose autre chose ....

  11. #11
    Membre chevronn�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par d�faut
    PI est une constante comme une autre. Y'a d�j� eu pas mal de sujet sur 'comment �viter les #define' pour d�finir des constantes et pourquoi. C'est soit dans la FAQ, soit dans le forum

  12. #12
    Membre chevronn�
    Avatar de bigquick
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    356
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 356
    Par d�faut
    Oui merci je sais comment �viter les #define, et je suis le premier � dire qu'il faut privilegier les constantes. Mais en pratique, M_PI existe, il est "demand�" par la norme Posix, et quand il est d�fini, c'est g�n�ralement un par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    #define M_PI 3.14159265358979323846
    (enfin les fois ou j'ai pu verifier)

    Apr�s, on peut faire tout un d�bat sur "est-ce qu'il faut red�finir une constante PI dans nos programmes ou utiliser le #define fourni par <math.h>"

    Enfin pour r�pondre � la question originale, tu as deux possibilit�s (entres autres surement):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    const double g_Pi = 3.14159265358979323846;
     
    ou
     
    #ifndef M_PI
       #define M_PI 3.14159265358979323846
    #endif
    J'esp�re que l'ambiance du post ne te d�couragera pas, c'est un tr�s bon forum

  13. #13
    Membre chevronn�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par d�faut
    J'ai eu le cas de PI y'a pas longtemps. Effectivement il est pr�sent 'parfois' dans cmath.
    Norme POSIX ou pas, il ne fait pas partie du langage en standad et franchement, se battre avec des #ifdef et compagnie j'ai trouv� �a plus que moyen.
    <math.h> peut �tre inclus � partir de fichier C aussi, d'o� le #define je pense. Mais si le projet est en C++, alors, une constante perso et un bon copier-coller de la valeur AMHA sont pr�f�rable.
    Dans notre biblioth�que, toutes les constantes sont regroup�e en tant que membre statiques d'une classe Math. Ca evite les defines, et les d�clarations qui se baladent.

  14. #14
    Membre chevronn�
    Avatar de bigquick
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    356
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 356
    Par d�faut
    Oui ok, je suis d'accord, c'est surement pr�f�rable. J'ai propos� �a puisque on parlait justement de #define M_PI qui �tait parfois pr�sent...
    Enfin par contre j'aurai mis tout �a dans un namespace plut�t que statique dans une classe (suite � une remarque judicieuse qu'on m'avait faite ici il y a un moment, d'ailleurs ).

    Par contre je ne comprends pas
    <math.h> peut �tre inclus � partir de fichier C aussi, d'o� le #define je pense
    Pourquoi la constante ne marcherait pas aussi en C ? Ou alors est-ce qu'il y a un lien fort C / Posix ?
    Enfin c'est dommage qu'une biliboth�que "standard" utilise des techniques peu recommendables !

    Enfin sinon, ok, let's settle for const double Pi

  15. #15
    Membre chevronn�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par d�faut
    namespace ou classe, �a ne change rien. Sauf pour la coh�rence globale et la doc.
    Personnellement, je n'aime pas avoir des donn�es qui se baladent en dehors d'un objet, mais c'est plus une question de style.

    Quand au pourquoi la constante ne marcherais pas en C. Je pense que M_PI a �t� introduit � une �poque ou le mot-clef 'const' n'existait pas en C.

  16. #16
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Ben on peut pas d�finir une constante dans un .h.

  17. #17
    Membre chevronn�
    Avatar de bigquick
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    356
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 356
    Par d�faut
    Ah bah oui

    Sinon pour le namespace, c'est vrai que c'est une question de style. Quand on m'avait pr�conis� �a (il y a longtemps), je ne me souviens pas d'arguments particuliers niceau performance ou autre ....

    D'ailleurs, est-ce que la recherche dans le forum est "limit�e" en temps ? Je ne retrouve plus le topic en question ....

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. est-il possible d'utiliser Mysql et du php sur un cd-rom??
    Par swan dans le forum SQL Proc�dural
    R�ponses: 4
    Dernier message: 01/05/2011, 16h23
  2. Utiliser la console Windows, est-ce possible ?
    Par djfrancky dans le forum SDL
    R�ponses: 4
    Dernier message: 21/08/2007, 18h15
  3. R�ponses: 2
    Dernier message: 16/12/2006, 17h37
  4. Est-il possible d'utiliser des fichiers xsl en cascade ?
    Par Faekk dans le forum XSL/XSLT/XPATH
    R�ponses: 3
    Dernier message: 22/08/2005, 12h34
  5. R�ponses: 1
    Dernier message: 28/04/2004, 19h18

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