Sinus mit C++



  • Hi Leute,

    ich möchte gern ein Programm schreiben, mit dem man sich die Winkel eines Dreiecks ausrechnen lassen kann, indem man einfach nur die gegebenen Stücke einträgt und der Computer dann die Größe des Winkels angibt.

    Ich weiß, dass man mit der Funktion sin() den Sinus aus einer Variablen ziehen kann. Ich habe ein kleines Programm geschrieben, dass mir den Sinus ziehen soll, aber irgendwie kommt da nicht das selbe raus, als wenn ich es in meinen Taschenrechner eingebe.

    #include <iostream.h>
    #include <math.h>
    
    int main()
    {
    	float a = 3.9;
    	float c = 6.1;
    	float ergebnis;
    
    	ergebnis = a / c;
    	cout << sin(ergebnis) << "\n";
    
    	return 0;
    }
    

    Wenn ich das Programm nun starte, erhalte ich 0.596669, aber wenn ich das mit dem Taschenrechner eintippe, erhalte ich 0.01115843. Nun wollte ich mal fragen, wo mein Fehler liegt. Ich glaube nicht, dass es daran liegt, dass ich keinen Taschenrechner bedienen kann, also muss es ja am Script liegen. Es wäre cool, wenn ihr mir da helfen könntet.

    MfG Apocalypse



  • Stichwort: Bogenmaß zu Grad.



  • stell mal deinen taschenrechner auf RAD(iant) oder rechne in deinem programm nich sinus(ergebnis) sondern sinus(ergebnis/180*PI)

    gruß



  • Ahhh..., der gibt das in Bogenmaß aus. Die Formel für das Umwandeln ist doch die hier, oder:

    Bogenmaß * 360
    Gradmaß = ----------------
                   2 * PI
    

    Ich werde es mal ausprobieren...! Danke wür die schnelle Hilfe.

    MfG Apocalypse



  • So..., ich habe es nun hinbekommen. Es funktioniert dank eurer Hilfe. Nun habe ich aber noch eine Frage.

    Beispiel:

    Gegenkathete = 3,9 cm
    Hypothenuse = 6,1 cm

    3,9 / 6,1 = 0,639344262

    Wie kann ich diesen Wert nun in einen Winkel umwandeln? Laut meines Taschenrechners müsste da rund 39,7° rauskommen. Könnt ihr mir noch sagen, wie ich das erreichen kann?

    Danke nochmals...

    MfG Apocalypse



  • Hallo,

    Wie wärs, wenn du deine Bogenmaßformel einfach mal nach Bogenmaß umstellst?



  • Apocalypse: Ich glaube, die Formel, die du da in deinem Programm nutzt, ist grundsätzlich falsch. Es heißt nicht sin(Gegenkathete/Hypothenuse)=Winkel, sondern sin(Winkel)=Gegenkathete/Hypothenuse oder anders:

    arcsin(Gegenkathete/Hypothenuse)=Winkel



  • Apocalypse schrieb:

    Wie kann ich diesen Wert nun in einen Winkel umwandeln? Laut meines Taschenrechners müsste da rund 39,7° rauskommen. Könnt ihr mir noch sagen, wie ich das erreichen kann?

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main()
    {
        float a = 3.9;
        float c = 6.1;
        cout << asin(a/c)*180 /3.1416 << "\n";
        return 0;
    }
    

    Kurt



  • @ ZuK

    Danke..., es hat funktioniert...!

    MfG Apocalypse


Anmelden zum Antworten