Mathematische Konstanten



  • Hallo,

    die Header datei math.h bzw. dessen C++ Pendant cmath stellen nützliche Funktionen zur Verfügung.

    Aber was ist mit mathematischen Konstanten wie z.B. die PI Zahl?
    Ich habe in die Header Datei reingeschaut und darin wird PI #defineiert, jedoch weiß ich nicht, ob bzw. wie man diese in eigenem Code verwenden kann?
    Statt selber eine Konstante zu definieren, würde ich gerne solche vordefinierten verwenden. - Geht das?
    Falls ja, wo bekommt man eine übersicht über sämtliche Konstanten (PI, Eulersche Zahl, etc.), die man verwenden kann?

    So habe ich es versucht aber es geht nicht. 😞

    #include <stdio.h>
    #include <math.h>
    
    int main(void)
    {
        printf("PI: %f", PI); /* `PI' undeclared (first use this function) */
        return 0;
    }
    

    Sind die in einer Header Datei per #define definierten Konstanten überhaut nach Außen hin sichtbar?

    MfG
    Brathering



  • probier's mal M_PI statt PI



  • Auch M_PI gehört nicht zum Standardumfang von math.h oder anders gesagt: der C-Standard definiert keine mathematischen Konstanten. Man kann sie aber ruckzuck mit Systemgenauigkeit ausrechnen, zB gilt: pi=acos(-1) oder e=exp(1).



  • *krass* ich clown 🤡 mit M_PI funktioniert es.

    Das beantwortet sogar meine Frage, ob per #define definierten Konstanten nach Außen hin sichtbar sind. - Danke schön! 🙂

    Noch ne Frage: Damit ich nicht nach jeder Konstante suchen muß, gibt es da irgendwo eine Übersicht oder Zusammenfassung für Konstanten?
    Weil Seiten wie z.B. http://www.cppreference.com/ geben gar keine Auskunft über Konstanten.

    MfG
    Brathering



  • Du kannst doch einfach in deine Headerdateien deines Compilers nachsehen, welche Konstanten definiert sind!?
    Dürfte sowieso für die meisten Compiler unterschiedlich sein, da diese - wie schon bemerkt - nicht Teil des Standards sind.

    Greetz, Swordfish



  • Brathering schrieb:

    Noch ne Frage: Damit ich nicht nach jeder Konstante suchen muß, gibt es da irgendwo eine Übersicht oder Zusammenfassung für Konstanten?

    guckst du z.b. hier: http://pi.lacim.uqam.ca/eng/table_en.html
    und bastelst dir selber ein paar defines daraus...



  • Achso, vielen Dank für die Hinweise.
    Ich wusste gar nicht, dass die Konstanten nicht zum Standard gehören und somit nicht zum Benutzen gedacht sind...

    THX 😉



  • Brathering schrieb:

    [...]nicht zum Standard gehören und somit nicht zum Benutzen gedacht sind...

    Das diese Konstanten nicht zum Standard gehören bedeutet nicht, dass du sie nicht verwenden kannst/sollst. Du mußt dir nur im klaren darüber sein, das sie bei einem anderen Compiler als deinem

    • anders heißen können,
    • nicht vorhanden

    und / oder

    • in anderen Headern

    sein können.

    Greetz, Swordfish



  • Achso? - Naja, ich nutze den MinGW GCC, der in DevCpp5 integriert ist.


Anmelden zum Antworten