Hallo!
Ich versuche ein kleines Programm, welches allerlei Operationen mit Vektoren beherrschen soll, zu schreiben. Jetzt stehe ich vor meinem ersten kleinen Problem:
Wie kann ich dem Compiler sagen, daß er, statt dem Bogenmaß, das Gradmaß bei Winkelfunktionen annehman soll?
Danke und Gruß, Tom
On Wed, Jun 04, 2003 at 04:18:10PM +0200, Tom Guder wrote:
Wie kann ich dem Compiler sagen, daß er, statt dem Bogenmaß, das Gradmaß bei Winkelfunktionen annehman soll?
Garnicht. o Du könntest Dir aber eine Funktion schreiben, die das tut.
#include <math.h> double rad2grad(double f) { return f / M_PI * 180; } double grad2rad(double f) { return f / 180 * M_PI; }
Und dann halt
double x = rad2grad(sin(grad2rad(180));
o Und/Oder dazu noch "Wrapper" um die Funktionen
double Sin(double f) { return rad2grad(sin(grad2rad(f))); }
.. und auch Macros gingen, aber da will man wissen, was man tut. Oder 'inline'-Funktionen...
Best regards from Dresden Viele Gruesse aus Dresden Heiko Schlittermann
Am 04. Juni 2003 schrieb Heiko Schlittermann:
double x = rad2grad(sin(grad2rad(180));
^^^^^^^^
double Sin(double f) { return rad2grad(sin(grad2rad(f))); }
^^^^^^^^
Die markierten Stellen sind aber nicht richtig.
Torsten
On Wed, Jun 04, 2003 at 06:02:37PM +0200, Torsten Werner wrote:
Am 04. Juni 2003 schrieb Heiko Schlittermann:
double x = rad2grad(sin(grad2rad(180));
^^^^^^^^
double Sin(double f) { return rad2grad(sin(grad2rad(f))); }
^^^^^^^^
Die markierten Stellen sind aber nicht richtig.
??
Heiko
Am 11. Juni 2003 schrieb Heiko Schlittermann:
On Wed, Jun 04, 2003 at 06:02:37PM +0200, Torsten Werner wrote:
Am 04. Juni 2003 schrieb Heiko Schlittermann:
double x = rad2grad(sin(grad2rad(180));
^^^^^^^^
double Sin(double f) { return rad2grad(sin(grad2rad(f))); }
^^^^^^^^
Die markierten Stellen sind aber nicht richtig.
??
Richtig wäre
double x = sin(grad2rad(180);
bzw.
double Sin(double f) { return sin(grad2rad(f)); }
Der Wertebereich der sin-Funktion liegt im Intervall -1...+1 und hat gar nichts mit Radiant oder Grad zu tun.
Torsten
On Thu, Jun 12, 2003 at 12:34:19AM +0200, Torsten Werner wrote:
Am 11. Juni 2003 schrieb Heiko Schlittermann:
On Wed, Jun 04, 2003 at 06:02:37PM +0200, Torsten Werner wrote:
Am 04. Juni 2003 schrieb Heiko Schlittermann:
double x = rad2grad(sin(grad2rad(180));
^^^^^^^^
double Sin(double f) { return rad2grad(sin(grad2rad(f))); }
^^^^^^^^
Die markierten Stellen sind aber nicht richtig.
??
Richtig wäre
double x = sin(grad2rad(180); bzw. double Sin(double f) { return sin(grad2rad(f)); }
ähm ja - Du hast verdammt Recht ...
Heiko
Hallo Tom!
Am 2003-06-04 16:18 +0200 schrieb Tom Guder:
Wie kann ich dem Compiler sagen, daß er, statt dem Bogenmaß, das Gradmaß bei Winkelfunktionen annehman soll?
Das sagt man dem Compiler nicht. Der erzeugt nur einen Funktionsaufruf wie jeden anderen, bzw. erzeugt Maschinencode auf Prozessoren, die Fließkomma beherrschen (also z. B. fsin auf dem x86).
Du kannst also nur vorher Dein Gradmaß ins Bogenmaß umrechnen. Wenn Du das öfter brauchst, kannst Du ja auch ein Makro dafür schreiben:
#define dsin(X) ( sin(X*M_PI/180) )
('d' wie degrees).
Ciao, Pitti
Hallo!
Danke für die Tipps!
Ich hätte mir sowas, wie eine neue Hilfsfunktion geschrieben. Aber ich dachte, man kann auch mit dem Bogenmaß rechnen :(.
Danke und viele Grüße, Tom
Hallo Tom!
Am 2003-06-04 17:02 +0200 schrieb Tom Guder:
Hallo!
Danke für die Tipps!
Ich hätte mir sowas, wie eine neue Hilfsfunktion geschrieben. Aber ich dachte, man kann auch mit dem Bogenmaß rechnen :(.
^^^^^^^^
Entweder hier oder in Deiner vorhergehenden Mail steckt ein Fehler (ich nehme mal an, hier): man kann _nur_ mit Bogenmaß rechnen.
Ciao, Pitti
...
Blöde Verwechslung. Ich wollte im Gradmaß rechnen, was ja nun nicht geht ;).
Sorry, und Danke, Tom
On Wed, Jun 04, 2003 at 05:02:59PM +0200, Tom Guder wrote:
Hallo!
Danke für die Tipps!
Ich hätte mir sowas, wie eine neue Hilfsfunktion geschrieben. Aber ich dachte, man kann auch mit dem Bogenmaß rechnen :(.
Wozu sollte das voreingestellt sein? Man brauechte alle Funktionen doppelt, der Nutzer kann das relativ problemlos umrechnen, und Mathematiker verwenden nur Bogenmass, was beim haeufigen Auftauchen von Pi in Rechnungen einfach konsistenter ist.
Danke und viele Grüße, Tom
Ulf
lug-dd@mailman.schlittermann.de