Sinusproblem



  • Ich habe mit Hilfe einer Formel es hinbekommen, dass mein C++Programm einen Wert in sin(DEG-Modus) berechnen kann. z.B. 90=1. Aber wie lautet die Formel um aus der 1 wieder eine 90 zu machen? Sozusagen, die Shift-Funktion vom Rechner?



  • asin



  • ergebnis = asin(wert);
    

    (Variablen hab ich natürlich definiert)
    Irgtendwie funktioniert es nicht. 😞



  • Du mußt das Ergebnis von asin noch von Rad auf Deg umrechnen. 😋



  • ergebnis = asin(wert * PI / 180);
    

    SO, wen ich diese Formel nehme, funktioniert es allerdings auch nicht. Ich hab auch versucht das mal in 2 Schritte aufzuteilen.
    Wern er aus 1 berechnen soll, bekommt er 0,0174541787398644 heraus, was eindeutig falsch ist. 😞 👎



  • Du mußt das Ergebnis von asin noch von Rad auf Deg umrechnen. 😋



  • Wie jetzt? hab ich das nicht schon getan mit

    (wert * PI / 180)
    

    😕



  • Das Ergebnis, nicht das Argument.

    btw: ist das wirklich ein Mathe-Problem? Würd ich eher unter irgendein Programmierthema ordnen.



  • Danke fürt schnelle Hilfe! hab das Problem gelöst. 🙂 👍
    Asmin hat aber recht, ist eher ne Programmiertechnische Frage, ich dachte es gibt dafür ne Mathematische Formel die ich nutzen muss.

    Ich bin nun aber auf ein neues Proble gestoßen. Ich möchte nun RAD hin und her wandeln. Während DEG funzt, klappt RAD nicht. 😞

    if(shift == 0)
    	{
    	c = cos(a);
        }
    if(shift == 1)
    	{
        c = acos(a);
        shift = 0;
        }
    Feld3->Text=AnsiString(c);
    


  • asmodis schrieb:

    Das Ergebnis, nicht das Argument.

    btw: ist das wirklich ein Mathe-Problem? Würd ich eher unter irgendein Programmierthema ordnen.

    Ich finde schon, dass das ein Mathe Problem ist. DSD hat einfach die trigonometrischen Funktionen noch nicht kapiert.



  • Minimee schrieb:

    asmodis schrieb:

    Das Ergebnis, nicht das Argument.

    btw: ist das wirklich ein Mathe-Problem? Würd ich eher unter irgendein Programmierthema ordnen.

    Ich finde schon, dass das ein Mathe Problem ist. DSD hat einfach die trigonometrischen Funktionen noch nicht kapiert.

    Damit hab ich eigentlich in Mathe keine Probleme bisher gahebt! Ist allerdings nicht umbedingt mein lieblingsgebiet in MAthe... 🤡
    PS: Was ist nun falsch?



  • Das Problem ist einfach, daß die Winkelfunktionen mit Bogenmaß (rad) arbeiten.

    Wenn Du also mit Gradwerten arbeiten willst, dann mußt Du das auch richtig umrechnen. Richtig umrechnen bedeutet dabei nicht, so lange bis es funktioniert an irgendwelchen Stellen das magische "*Pi/180" hinzuschreiben, sondern sich zu überlegen was da passieren muß.

    x = sin(alpha) => asin(x) = alpha (stimmt so nicht ganz, da's nur für alpha in [0,Pi] stimmt, ist aber für den Moment egal. Wenn Du jetzt mit alpha im Bogenmaß rechnen willst, dann mußte die Umrechnung machen, wir schreiben statt alpha einfach alpha*Pi/180.

    Also:

    x = sin(alpha*Pi/180) => asin(x) = alpha*Pi/180. Raushaben willst Du aber das alpha. Also umstellen liefert:

    alpha = 180/Pi * asin(x).



  • Danke, manschmal stell ich mich echt dämlich an... 🤡
    Hab das Proble gelöst. Danke für kompetente Lösungsforschläge und kein geflame!


Anmelden zum Antworten