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 :

le nombre PI=3.14


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Bidouilleur
    Inscrit en
    Avril 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2006
    Messages : 145
    Par défaut le nombre PI=3.14
    salut a tous,
    esq le nombre PI = 3.14... est definie dans C++ ou esq il faut que je le definisse moi meme en tant que constante ??

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Dans <cmath>, certaines implémentations définissent la constante M_PI. Mais bon ce n'est vraiment pas ce qu'il y a de plus dur à faire si ça n'est pas fourni.

  3. #3
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    certaines implémentations définissent la constante M_PI
    La constante M_PI n'est pas standard?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Non, c'est une extension de certains compilos.

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Sinon pi = 4 * atn(1.0).
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Sinon pi = 4 * atn(1.0).
    Attention à ne pas utiliser une macro si on fait ça.

    Le meilleur moyen est encore de mettre directement sa valeur, c'est vraiment pas le genre de chose difficile à trouver

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Ici on trouvera tout, en particulier le poème :
    Que j'aime à faire connaître ce nombre utile aux sages !
    Immortel Archimède, artiste, ingénieur,
    Qui de ton jugement peut priser la valeur ?
    Pour moi ton problème eut de pareils avantages.
    Jadis, mystérieux, un problème bloquait
    Tout l'admirable procédé, l'œuvre grandiose
    Que Pythagore découvrit aux anciens Grecs.
    Ô quadrature ! Vieux tourment du philosophe
    Insoluble rondeur, trop longtemps vous avez
    Défié Pythagore et ses imitateurs.
    Comment intégrer l'espace plan circulaire ?
    Former un triangle auquel il équivaudra ?
    Nouvelle invention : Archimède inscrira
    Dedans un hexagone ; appréciera son aire
    Fonction du rayon. Pas trop ne s'y tiendra :
    Dédoublera chaque élément antérieur ;
    Toujours de l'orbe calculée approchera ;
    Définira limite ; enfin, l'arc, le limiteur
    De cet inquiétant cercle, ennemi trop rebelle
    Professeur, enseignez son problème avec zèle
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Rédacteur
    Avatar de pi-2r
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    1 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 487
    Par défaut
    je pense que tu peut définir la constante pi commme telle:

    float pi=3.14159f;
    Les pièges de l'Internet
    Helix, réponse à une intrusion


    "La plus grande gloire n'est pas de ne jamais tomber, mais de se relever à chaque chute." Confucius
    "Si j'ai vu plus loin, c'est en me tenant sur les épaules de géants." Isaac Newton

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par Trap D
    Sinon pi = 4 * atn(1.0).
    Pourquoi se faire ch*** avec un calcul ?

    Pi est une constante, il suffit de la définir une fois pour toute.

    Et pour ce qui est de sa valeur, pas besoin de faire je ne sais combien de sites:
    La simple utilisation de la calculatrice la donnera (en tout cas sous Windows).

  10. #10
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    En général on retient facilement les 20 premières décimales (pas besoin d'en faire une poésie car elle est plus difficile à retenir), reste plus qu'à en faire une constante et le tour est joué...


    Pourquoi se faire ch*** avec un calcul ?
    Avec la méta-programmation, ça coute quasiment rien ...

  11. #11
    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 PRomu@ld
    Avec la méta-programmation, ça coute quasiment rien ...
    J'attends te voir ton meta-programme en C++ qui calcule pi.

    A+

    --
    Jean-Marc

  12. #12
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    J'attends te voir ton meta-programme en C++ qui calcule pi.
    Je n'aime pas beaucoup le ton employé ...

    Le programme n'est pas de moi:

    http://ktd.club.fr/programmation/cpp-metaprog.php#pi

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    bonjour,
    Citation Envoyé par PRomu@ld
    Qu'il soit de toi ou non, "meta-programmation" ou non, tout calcul implique une perte de temps, même si elle est minime.

    Et je me répète : pourquoi vouloir obtenir Pi via un calcul alors que c'est une constante ?
    (Si ce n'est pour montrer sa culture ?)

    La seule justification serait de chercher à en disposer pour des calculs multiprécision dépassant la précision des types définis par le C/C++ ou le compilateur utilisé.
    Et même dans ce cas, je pense (en fait : je suis sûr) que la définition d'une constante sera préférable.

  14. #14
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Citation Envoyé par thewho
    Et je me répète : pourquoi vouloir obtenir Pi via un calcul alors que c'est une constante ?
    (Si ce n'est pour montrer sa culture ?)
    Evidemment, si la culture va se nicher dans une formule niveau terminale
    Faudrait peut-être arrêter de se la jouer.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  15. #15
    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 PRomu@ld
    Ce n'est pas un méta-programme qui calcule pi, c'est un métaprogramme qui calcule une fonction qui calcule pi. Si c'était un méta-programme qui calculait pi, je pourrais l'utiliser pour dimentioner un tableau ou comme paramètre template. C'est la raison pour laquelle l'exemple paradigmatique du méta-programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    template<int N>
    class Factorial {
    public:
        enum { value = N * Factorial<N-1>::value };
    };
     
    class Factorial<1> {
    public:
        enum { value = 1 };
    };
    utilise des enum: parce qu'on peut s'en servir alors dans tous les endroits où l'on désire des entiers. En fait, un meta-programme peut calculer des fonctions, calculer avec des types et avec des entiers. Pas avec des flottants.

    Il serait possible d'écrire un méta-programme calculant pi, mais la tâche est loin d'être simple: il faut d'abord se définir un format à base d'entiers (par exemple deux enum, un pour la mantisse l'autre pour l'exposant -- ou plus simple, dire qu'on est en virgule fixe et donc que les entiers sont à diviser par 100000 -- en étant très tordu, tu peux te définir un format à base de types) et toutes les opérations (la division et la multiplication dans le cassimple doit prévoir le recadrage, dans l'autre format toutes les opérations sont à implémenter) et enfin les utiliser pour en faire un meta-programme.

    Je suis réellement curieux de voir un tel méta-programme. Comme j'ai apprécié de voir quelqu'un implémenter du calcul en virgule flottante avec TeX. J'admirerais le hack (au sens MIT du terme). Mais je ne considère pas ça comme un moyen pratique d'avoir pi dans un programme. (Le calcul en virgule flottante avec TeX a une utilité par contre, mais rien que comme exercice de style, c'est impressionnant).

  16. #16
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Ce n'est pas un méta-programme qui calcule pi, c'est un métaprogramme qui calcule une fonction qui calcule pi.
    Merci pour l'explication claire et détaillée. J'avoue ne pas m'être plongé plus que ça dans la métaprogrammation, je ne programme qu'en C la plupart du temps ..., mais il faudra surement que je m'y interresse parce que théoriquement, c'est un super sujet.

  17. #17
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par Trap D
    Evidemment, si la culture va se nicher dans une formule niveau terminale
    Faudrait peut-être arrêter de se la jouer.
    Je ne me la joue pas, et ça ne répond pas à la question.

    Quand quelqu'un me demande la valeur d'une constante, je ne réponds pas en donnant une formule permettant de la calculer.

    Et pour préciser : niveau terminale, et encore.

  18. #18
    Membre chevronné
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define PI 3.141592653589793238462643383279502884197

  19. #19
    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 NewbiZ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define PI 3.141592653589793238462643383279502884197f
    C'est vicieux ca.

    Le nombre de chiffres donnes laisse penser que c'est tres precis, le f final en fait laisse la precision d'un float. Si on l'assigne a un double, on a une estimation de pi moins precise que ce qu'un double permet d'exprimer.

  20. #20
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par Jean-Marc.Bourguet
    C'est vicieux ca.

    Le nombre de chiffres donnes laisse penser que c'est tres precis, le f final en fait laisse la precision d'un float. Si on l'assigne a un double, on a une estimation de pi moins precise que ce qu'un double permet d'exprimer.
    Bien vu et résumé.
    +1

Discussions similaires

  1. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  2. nombre aleatoire
    Par Bob dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2002, 18h12
  3. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31
  4. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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