Sin, Cos & Tan Problem(e)

  • Hallo Autoit - Community!
    Wenn ich die Sinus, Cosinus und Tangens Funktionen von autoit verwende, erhalte ich immer andere Ergebnisse (bei Eingabe gleicher Zahlen), als mit verschiedenen Taschenrechnern (darunter auch der Rechner von Microsoft bzw. Windows.).
    Hier der Quellcode:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $AuslesevariableCosinus = ""
    $AuslesevariableSinus = ""
    $AuslesevariableTangens = ""

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\Users\Tobias-Admin\Documents\Form1SinusCosinusTest.kxf
    $Form1SinusundCosinusTest = GUICreate("Sinus und Cosinus Test", 403, 214, -1, -1)
    $Input1Sinus = GUICtrlCreateInput("Zahl", 144, 16, 121, 21, $SS_CENTER)
    $Input2Cosinus = GUICtrlCreateInput("Zahl", 144, 64, 121, 21, $SS_CENTER)
    $Button1BerechnenSinusundCosinusTest = GUICtrlCreateButton("Berechnen", 24, 152, 107, 49)
    $Button2BeendenSinusundCosinusTest = GUICtrlCreateButton("Beenden", 272, 152, 107, 49)
    $Label1Sin = GUICtrlCreateLabel("Sin", 16, 16, 52, 17)
    $Label2gleich = GUICtrlCreateLabel("=", 88, 16, 36, 17)
    $Label3Cos = GUICtrlCreateLabel("Cos", 16, 64, 52, 17)
    $Label4gleich = GUICtrlCreateLabel("=", 88, 64, 36, 17)
    $Input3Tangens = GUICtrlCreateInput("Zahl", 144, 104, 121, 21, $SS_CENTER)
    $Label5Tan = GUICtrlCreateLabel("Tan", 16, 104, 36, 17)
    $Label6gleich = GUICtrlCreateLabel("=", 88, 104, 36, 17)
    GUISetState(@SW_SHOW, $Form1SinusundCosinusTest)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsgSinusundCosinusTest = GUIGetMsg()
    Switch $nMsgSinusundCosinusTest
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1BerechnenSinusundCosinusTest
    _FunktionTest ()
    Case $Button2BeendenSinusundCosinusTest
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _FunktionTest ()
    $AuslesevariableSinus = GUICtrlRead($Input1Sinus)
    $AuslesevariableCosinus = GUICtrlRead($Input2Cosinus)
    $AuslesevariableTangens = GUICtrlRead($Input3Tangens)
    $cos = Cos($AuslesevariableCosinus)
    $sin = Sin($AuslesevariableSinus)
    $tan = Tan($AuslesevariableTangens)
    If $AuslesevariableSinus <> 0 And $AuslesevariableCosinus <> 0 And $AuslesevariableTangens <> 0 Then
    MsgBox(0, "Ergebnis Sinus, Cosinus und Tangens", "Sinus von "&$AuslesevariableSinus&" = "&$sin&@CR&"Cosinus von "&$AuslesevariableCosinus&" = "&$cos&@CR&"Tangens von "&$AuslesevariableTangens&" = "&$tan)
    ElseIf $AuslesevariableSinus <> 0 Then
    MsgBox(0, "Ergebnis Sinus", "Sinus von "&$AuslesevariableSinus&" = "&$sin)
    ElseIf $AuslesevariableCosinus <> 0 Then
    MsgBox(0, "Ergebnis Cosinus", "Cosinus von "&$AuslesevariableCosinus&" = "&$cos)
    ElseIf $AuslesevariableTangens <> 0 Then
    MsgBox(0, "Ergebnis Tangens", "Tangens von "&$AuslesevariableTangens&" = "&$tan)
    ElseIf $AuslesevariableSinus = 0 And $AuslesevariableCosinus = 0 And $AuslesevariableTangens = 0 Then
    MsgBox(0, "Ungültige Eingabe!", "Du hast nichts eingegeben.")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Vielen Dank für Eure Hilfe!

  • Du musst die Werte von Radiant nach Grad umwandeln -> http://de.wikipedia.org/wiki/Radiant_(Einheit) / http://de.wikipedia.org/wiki/Grad_(Winkel)

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $AuslesevariableCosinus = ""
    $AuslesevariableSinus = ""
    $AuslesevariableTangens = ""
    $deg = ACos(-1) / 180

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\Users\Tobias-Admin\Documents\Form1SinusCosinusTest.kxf
    $Form1SinusundCosinusTest = GUICreate("Sinus und Cosinus Test", 403, 214, -1, -1)
    $Input1Sinus = GUICtrlCreateInput("Zahl", 144, 16, 121, 21, $SS_CENTER)
    $Input2Cosinus = GUICtrlCreateInput("Zahl", 144, 64, 121, 21, $SS_CENTER)
    $Button1BerechnenSinusundCosinusTest = GUICtrlCreateButton("Berechnen", 24, 152, 107, 49)
    $Button2BeendenSinusundCosinusTest = GUICtrlCreateButton("Beenden", 272, 152, 107, 49)
    $Label1Sin = GUICtrlCreateLabel("Sin", 16, 16, 52, 17)
    $Label2gleich = GUICtrlCreateLabel("=", 88, 16, 36, 17)
    $Label3Cos = GUICtrlCreateLabel("Cos", 16, 64, 52, 17)
    $Label4gleich = GUICtrlCreateLabel("=", 88, 64, 36, 17)
    $Input3Tangens = GUICtrlCreateInput("Zahl", 144, 104, 121, 21, $SS_CENTER)
    $Label5Tan = GUICtrlCreateLabel("Tan", 16, 104, 36, 17)
    $Label6gleich = GUICtrlCreateLabel("=", 88, 104, 36, 17)
    GUISetState(@SW_SHOW, $Form1SinusundCosinusTest)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsgSinusundCosinusTest = GUIGetMsg()
    Switch $nMsgSinusundCosinusTest
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1BerechnenSinusundCosinusTest
    _FunktionTest ()
    Case $Button2BeendenSinusundCosinusTest
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _FunktionTest ()
    $AuslesevariableSinus = GUICtrlRead($Input1Sinus)
    $AuslesevariableCosinus = GUICtrlRead($Input2Cosinus)
    $AuslesevariableTangens = GUICtrlRead($Input3Tangens)
    $cos = Cos($AuslesevariableCosinus * $deg)
    $sin = Sin($AuslesevariableSinus * $deg)
    $tan = Tan($AuslesevariableTangens * $deg)
    If $AuslesevariableSinus <> 0 And $AuslesevariableCosinus <> 0 And $AuslesevariableTangens <> 0 Then
    MsgBox(0, "Ergebnis Sinus, Cosinus und Tangens", "Sinus von "&$AuslesevariableSinus&" = "&$sin&@CR&"Cosinus von "&$AuslesevariableCosinus&" = "&$cos&@CR&"Tangens von "&$AuslesevariableTangens&" = "&$tan)
    ElseIf $AuslesevariableSinus <> 0 Then
    MsgBox(0, "Ergebnis Sinus", "Sinus von "&$AuslesevariableSinus&" = "&$sin)
    ElseIf $AuslesevariableCosinus <> 0 Then
    MsgBox(0, "Ergebnis Cosinus", "Cosinus von "&$AuslesevariableCosinus&" = "&$cos)
    ElseIf $AuslesevariableTangens <> 0 Then
    MsgBox(0, "Ergebnis Tangens", "Tangens von "&$AuslesevariableTangens&" = "&$tan)
    ElseIf $AuslesevariableSinus = 0 And $AuslesevariableCosinus = 0 And $AuslesevariableTangens = 0 Then
    MsgBox(0, "Ungültige Eingabe!", "Du hast nichts eingegeben.")
    EndIf
    EndFunc

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯