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.