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 = -3

    Am 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?


  • Mod

    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. 😉


  • Mod

    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. 👍


Anmelden zum Antworten