Hallo habe ein Problem mit einem kleinen Programm, welches den Cosinus berechnen soll.
-
Sry wegen des Codetags... hab mich grad erst hier registriert.
Also ich habe die Werte für pow(-1,n) ausgeben lassen und da kommt bei g=3 immer 1 raus. Deshalb vermute ich dass das Problem bei dieser Operation liegt... Eigentlich müsste ja am Ende -3 rauskommen wenn man pow(-1,n) alleine in der Schleife berechnet, da sich ja die Werte für 3 Schleifendurchläufe addieren sollen.
Also quasi für n = 0: -1^0 + 0 = -1
n = 1: -1^1 - 1 = -2
n = 2: -1^2 - 2 = -3Am Ende kommt aber 1 raus was ja augenscheinlich Quatsch ist.
-
Du hast dir also nicht das Ergebnis von pow angesehen!
-
-1^0 ist 1, genau wie -1^2.
-
Reyventall schrieb:
... jedenfalls kommt am Ende quatsch raus

Dein Programm funktioniert einwandfrei, wo ist das Problem?
-
Nein es funktioniert nicht einwand frei. Es funktioniert zwar, allerdings sollte am Ende etwas anderes rauskommen. Wenn man zb in einem Taschenrechner cos 3 ausgeben lässt, kommt etwas anderes raus als in meinem Programm... Das ist das Problem!

-
MFK schrieb:
-1^0 ist 1, genau wie -1^2.
Sehe ich anders. -1^0 = -(1^0) = -1. Zumindest bei gängiger Operatorpräzedenz.
pow(-1, 0)dagegen ist (-1)^0 = 1.An Reyventall:
benenne doch ein Beispiel, für welches "Quatsch" rauskommt. Was setzt du ein, was kommt bei deiner Funktion raus, und was hätte rauskommen sollen?
-
Reyventall schrieb:
Nein es funktioniert nicht einwand frei. Es funktioniert zwar, allerdings sollte am Ende etwas anderes rauskommen. Wenn man zb in einem Taschenrechner cos 3 ausgeben lässt, kommt etwas anderes raus als in meinem Programm... Das ist das Problem!

cos(3) ist ca. -0.98999. Bei deinem Programm kommt -0.98994 raus, wenn man zur Genauigkeit 7 rechnet. Ist doch ok. Ich glaube eher, du kannst mit deinem Taschenrechner nicht umgehen. Lass mich raten: Du hast 0.9986 als Ergebnis? Das ist nämlich der Cosinus von 3 Grad, nicht von 3 (Radians).
-
Ok jetzt bin ich verwirrt... ich habe das gerade mit 3 zur Genauigkeit 4 probiert und es kam -18.3... raus... jetzt habe ich es mit dem Beispiel von SeppJ ausprobiert und es funktioniert... Auch mit 3 und Genauigkeit 4 funktioniert es nun... Der Witz ist nur, dass selbst mein Prof das falsche Ergebnis gesehen hat und nicht auf den Fehler kam...
Dann ist ja jetzt alles gut
Danke trzd!Ps: SeppJ ich kann mit meinem GTR umgehen... da ich daher wusste das -18.3... falsch war, denn ich hab da auch -0.99... raus gehabt.

-
Reyventall schrieb:
Ok jetzt bin ich verwirrt... ich habe das gerade mit 3 zur Genauigkeit 4 probiert und es kam -18.3... raus... jetzt habe ich es mit dem Beispiel von SeppJ ausprobiert und es funktioniert... Auch mit 3 und Genauigkeit 4 funktioniert es nun... Der Witz ist nur, dass selbst mein Prof das falsche Ergebnis gesehen hat und nicht auf den Fehler kam...
Dann ist ja jetzt alles gut
Danke trzd!Der Computer wird sicher richtig rechnen. Du hast wahrscheinlich seit dem -18.3-Ergebnis irgendwelche Änderungen gemacht (auch wenn sie dir womöglich harmlos erschienen), die inzwischen den Algorithmus korrigiert haben.
-
Ja kann sein, auch wenn ich mir dessen nicht wirklich bewusst bin aber hauptsache es funktioniert jetzt.
