squidward Geschrieben 29. November 2008 Teilen Geschrieben 29. November 2008 Hallo, sinuswert = sin(30*3.14159265/180); sin0.5 = 30° und umgekehrt? Mit der Funk. asin komme ich nicht weiter, denn das ergebnis lautet = 0.551070, mit sin^-1(30*3.14159265/180); auch nicht und mit 1/sin(30*3.14159265/180); auch nicht. Es muss doch eine Möglichkeit existieren!? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 29. November 2008 Teilen Geschrieben 29. November 2008 sin0.5 = 30°Das ist ja schon mal grundsätzlich falsch. sin 30° = 0,5. Mit der Funk. asin komme ich nicht weiter, denn das ergebnis lautet = 0.551070,Ist dir klar, dass du das Ergebnis dieser Funktion mit Pi/180 umrechnen musst, nicht das Argument? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
squidward Geschrieben 29. November 2008 Autor Teilen Geschrieben 29. November 2008 Ist dir klar, dass du das Ergebnis dieser Funktion mit Pi/180 umrechnen musst, nicht das Argument? Ach ja wegen dem Bogenmaß... :upps Vielen Dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 1. Dezember 2008 Teilen Geschrieben 1. Dezember 2008 Anmerkung: Statt PI als gerundete Zahl hier einzutragen, würd ich die Konstante auch der Math.h verwenden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
squidward Geschrieben 2. Dezember 2008 Autor Teilen Geschrieben 2. Dezember 2008 Anmerkung: Statt PI als gerundete Zahl hier einzutragen, würd ich die Konstante auch der Math.h verwenden. Und die wäre? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EndlessSilence Geschrieben 2. Dezember 2008 Teilen Geschrieben 2. Dezember 2008 PI#define PI (3.141592653589793) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
unbenannt Geschrieben 3. Dezember 2008 Teilen Geschrieben 3. Dezember 2008 PI#define PI (3.141592653589793) ... was in diesem Fall ebenfalls eine gerundete Zahl wäre. Und wenn müsste es meines Erachtens korrekt folgendermaßen lauten: #define PI 3.141592653589793f denn schließlich wollen wir hier einen Float haben. Oder erkennt der Compiler das auch ohne "f"? Wie dem auch sei, gerundet bleibt gerundet Einfach "math.h" inkludieren #include <math.h> und auf die Konstante "M_PI" zugreifen. Wenn es nicht mit der Konstanten klappt (eine Google-Suche behauptet jedenfalls, dass dies der Fall sein könnte) kann man Pi auch selbst errechnen lassen mittels 4.0*atan(1.0) Ausgabe für beide "Pi-Varianten" könnte dann so ausschauen: Value of Constant M_PI: 3.141592653589793115997963468544 Value of calculated PI: 3.141592653589793115997963468544 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 3. Dezember 2008 Teilen Geschrieben 3. Dezember 2008 Anmerkung: Statt PI als gerundete Zahl hier einzutragen, würd ich die Konstante auch der Math.h verwenden. Der Standard legt nicht fest, dass so eine Konstante definiert werden muss. Viele Compilerhersteller bieten so etwas allerdings an, mal als PI, mal als M_PI. Bei den Microsoft-Compilern muss man ein zusätzliches Präprozessorsymbol definieren, damit die Konstante definiert wird. ... was in diesem Fall ebenfalls eine gerundete Zahl wäre.Fließkommawerte sind fast immer gerundet. Geht gar nicht anders. Und wenn müsste es meines Erachtens korrekt folgendermaßen lauten: #define PI 3.141592653589793f denn schließlich wollen wir hier einen Float haben. Oder erkennt der Compiler das auch ohne "f"?Ohne das f ist das ein double-Literal. Mit dem f machst du daraus ein float-Literal, und dieser Datentyp dürfte auf den gängigen Plattformen für so viele Stellen gar nicht genau genug sein. Ohne f ist also besser. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
unbenannt Geschrieben 3. Dezember 2008 Teilen Geschrieben 3. Dezember 2008 Vielen Dank für die Anmerkung. Dann ziehe ich selbstverständlich alles bzgl. Float zurück und werde mich noch einmal mit den Datentypen auseinandersetzen müssen ; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 3. Dezember 2008 Teilen Geschrieben 3. Dezember 2008 Der Standard legt nicht fest, dass so eine Konstante definiert werden muss. hmm.... Man kann auch einfach #define PI (std::acos(-1.0)) machen. :hells: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
squidward Geschrieben 3. Dezember 2008 Autor Teilen Geschrieben 3. Dezember 2008 (bearbeitet) Guten Nachmittag, So das Programm läuft einwandfrei bis auf die Tatsache, dass manchmal diese #-1.IND00 auftretten (siehe Anhang)?! Wie kann ich es machen, dass es ERRORS statt diese #-1.IND00 ausgibt? edit: Oder einfach irgendetwas anderes hauptsache dieses #-1.IND00 wird nicht ausgegeben beispielsweise mit einer printf Funktion (falls es moeglich ist)... Bearbeitet 3. Dezember 2008 von squidward Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 3. Dezember 2008 Teilen Geschrieben 3. Dezember 2008 Wie kann ich es machen, dass es ERRORS statt diese #-1.IND00 ausgibt? Wie wäre es, wenn du die Arkusfunktionen einfach nicht mit Werten außerhalb ihres Definitionsbereichs fütterst? asin und acos haben einen Definitionsbereich, der dem Wertebereich von sin und cos entspricht: [-1; 1] Ansonsten vergleich den Wert mit -std::numeric_limits<double>::quiet_NaN(), das scheint das zu sein, was dabei herauskommt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.