problem bei vergleich mit if then

  • hallo brauchte mal eure hilfe bei meinen code in der func loesung()
    fehler ist auch bei richtigen Ergebnis kommt MsgBox(4096, "falsch", "zahlen sind ungleich " & @CRLF & $eingabe & @CRLF & $ergebnis1)

    Spoiler anzeigen
    [autoit]


    #include <GuiButton.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    Local $avArray[1] ,$loesung[1]
    #Region ### START Koda GUI section ### Form=

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

    ;guikopf
    $Form1_1 = GUICreate("mathe mit klammern 5klasse realschule", 637, 431, 193, 125)
    ;;;;;;;;;;;;erstes feld

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

    $Input1 = GUICtrlCreateInput("", 24, 16, 593, 57);aufgabe anzeige ($Input1)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif");style der aufgabe
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    $Button1 = GUICtrlCreateButton("=", 288,160, 49, 41, $WS_GROUP); mitte
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    ;,,,,,,,,2tes augabefeld (ergbnis)($Input2)
    $Input2 = GUICtrlCreateInput("", 24, 100, 593, 49)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif");style
    ;GUICtrlCreateGroup("", -99, -99, 1, 1)
    ;,,,,,,,,richtig
    $Label1 = GUICtrlCreateLabel("RICHTIG", 24, 248, 133, 41)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    ;,,,,,,,,,,,,,,,,,,,falsch,,,,,,,,,,,,,,,,
    $Label2 = GUICtrlCreateLabel("Falsch", 400, 248, 99, 41)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    $Button5 = GUICtrlCreateButton("Exit", 272, 400, 89, 25)

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

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,

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

    aufgabe()

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button5
    Exit

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

    Case $Button1
    loesung()
    loeschen()
    aufgabe()

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

    EndSwitch
    WEnd

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

    Func aufgabe()
    $iPar0= Random(1, 900, 1)
    $iPar1 = Random(1, 900, 1) ;wert 1teklammer
    $iPar2 = Random(1, 800, 1)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    $iPar3 = Random(1, 900, 1) ;wert 2teklammer
    $iPar4 = Random(1, 800, 1)
    $var3 =$iPar0+($iPar1-$iPar2)+($iPar3+$iPar4)
    _ArrayAdd($loesung,$var3)
    _ArrayDisplay($loesung)
    _ArrayAdd($avArray,$iPar0)
    ;;;;;;;;;;1te klammer aufbau
    _ArrayAdd($avArray,"+(")
    _ArrayAdd($avArray,$iPar1)
    _ArrayAdd($avArray,"+")
    _ArrayAdd($avArray,$iPar2)
    _ArrayAdd($avArray,")")
    ;;;;;;;;;;2te klammer
    _ArrayAdd($avArray,"- (")
    _ArrayAdd($avArray,$iPar3 )
    _ArrayAdd($avArray,"+" )
    _ArrayAdd($avArray,$iPar4 )
    _ArrayAdd($avArray,")")
    ;;;;;;;;;;;;;;inhalt $aArray überprüfen ;;;
    ;_ArrayDisplay($avArray, "$avArray VOR _ArrayInsert()")
    ;;;;;;;;;;;;umwandel zur ausgabe
    $var =_ArrayToString($avArray)
    $var1 =StringReplace ( $var, "|", " " )

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

    guictrlsetdata($Input1 ,$var1);schreibe die aufgabe ($Input1)

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

    GUICtrlSetState($Input1, $GUI_disable);und disabel das1feld($Input1)

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

    GUICtrlSetState($Input2, $GUI_FOCUS);aktiviere eingabe feld(($Input1)

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

    EndFunc

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

    func loesung()

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

    $eingabe=GUICtrlRead ( $Input2 );lese eingabe
    ;,, ergnis umwandel für ausgabe
    $ergebnis= _ArrayToString($loesung)
    $ergebnis1= StringReplace ( $ergebnis, "|", " " )
    MsgBox(0, 'eingabe', $eingabe)
    MsgBox(0, 'ergebnis', $ergebnis1)
    ;;;;;;;;;vergleichen,,,,
    If $eingabe = $ergebnis1 Then
    ;MsgBox(0, 'zahlen sind gleich '& @CRLF $zahl1 ,$zahl1 )
    MsgBox(4096, "richtig", "zahlen sind gleich " & @CRLF & $eingabe & @CRLF & $ergebnis1)
    Else
    MsgBox(4096, "falsch", "zahlen sind ungleich " & @CRLF & $eingabe & @CRLF & $ergebnis1)
    EndIf
    Exit
    EndFunc

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

    func loeschen()
    ;;;;;loesche array aufgabe
    _ArrayDelete($avArray,1 )
    _ArrayDelete($avArray,2 )
    _ArrayDelete($avArray,3 )
    _ArrayDelete($avArray,4 )
    _ArrayDelete($avArray,5 )
    _ArrayDelete($avArray,6 )
    _ArrayDelete($avArray,7 )
    _ArrayDelete($avArray,8 )
    _ArrayDelete($avArray,9 )
    _ArrayDelete($avArray,10 )
    _ArrayDelete($avArray,11 )
    ;_ArrayDisplay($avArray, "aufgabe") test ob arryay geloescht ist
    ;,,,,,,,,,,,,,loesche loesung
    _ArrayDelete( $loesung,1)
    ; _ArrayDisplay($loesung, "loesung") test ob arryay geloescht ist
    EndFunc

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


    danke für eure hilfe

    2 Mal editiert, zuletzt von rewejo (27. November 2010 um 20:06) aus folgendem Grund: gelöst von andy

  • Hallo!
    Du hast die Datentypen bei deinem Vergleich nicht beachtet. Zzt vergleichst du STRING mit NUMBER...
    Um das anzupassen, d.h 2 Zahlen miteinander zu vergleichen, ändere Zeile 110 in

    [autoit]

    $ergebnis1= number(StringReplace ( $ergebnis, "|", " " ))

    [/autoit]
  • danke für deine schnelle hilfe das war der fehler ich habe hier 2stunden gesucht poste richtigen code

    Spoiler anzeigen
    [autoit]


    #include <GuiButton.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    Local $avArray[1] ,$loesung[1]
    #Region ### START Koda GUI section ### Form=

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

    ;guikopf
    $Form1_1 = GUICreate("mathe mit klammern 5klasse realschule", 637, 431, 193, 125)
    ;;;;;;;;;;;;erstes feld

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

    $Input1 = GUICtrlCreateInput("", 24, 16, 593, 57);aufgabe anzeige ($Input1)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif");style der aufgabe
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    $Button1 = GUICtrlCreateButton("=", 288,160, 49, 41, $WS_GROUP); mitte
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    ;,,,,,,,,2tes augabefeld (ergbnis)($Input2)
    $Input2 = GUICtrlCreateInput("", 24, 100, 593, 49)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif");style
    ;GUICtrlCreateGroup("", -99, -99, 1, 1)
    ;,,,,,,,,richtig
    $Label1 = GUICtrlCreateLabel("RICHTIG", 24, 248, 133, 41)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    ;,,,,,,,,,,,,,,,,,,,falsch,,,,,,,,,,,,,,,,
    $Label2 = GUICtrlCreateLabel("Falsch", 400, 248, 99, 41)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    $Button5 = GUICtrlCreateButton("Exit", 272, 400, 89, 25)

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

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,

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

    aufgabe()

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button5
    Exit

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

    Case $Button1
    loesung()
    loeschen()
    aufgabe()

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

    EndSwitch
    WEnd

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

    Func aufgabe()
    $iPar0= Random(1, 900, 1)
    $iPar1 = Random(1, 900, 1) ;wert 1teklammer
    $iPar2 = Random(1, 800, 1)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    $iPar3 = Random(1, 900, 1) ;wert 2teklammer
    $iPar4 = Random(1, 800, 1)
    $var3 =$iPar0+($iPar1-$iPar2)+($iPar3+$iPar4)
    _ArrayAdd($loesung,$var3)
    _ArrayDisplay($loesung)
    _ArrayAdd($avArray,$iPar0)
    ;;;;;;;;;;1te klammer aufbau
    _ArrayAdd($avArray,"+(")
    _ArrayAdd($avArray,$iPar1)
    _ArrayAdd($avArray,"+")
    _ArrayAdd($avArray,$iPar2)
    _ArrayAdd($avArray,")")
    ;;;;;;;;;;2te klammer
    _ArrayAdd($avArray,"- (")
    _ArrayAdd($avArray,$iPar3 )
    _ArrayAdd($avArray,"+" )
    _ArrayAdd($avArray,$iPar4 )
    _ArrayAdd($avArray,")")
    ;;;;;;;;;;;;;;inhalt $aArray überprüfen ;;;
    ;_ArrayDisplay($avArray, "$avArray VOR _ArrayInsert()")
    ;;;;;;;;;;;;umwandel zur ausgabe
    $var =_ArrayToString($avArray)
    $var1 =StringReplace ( $var, "|", " " )

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

    guictrlsetdata($Input1 ,$var1);schreibe die aufgabe ($Input1)

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

    GUICtrlSetState($Input1, $GUI_disable);und disabel das1feld($Input1)

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

    GUICtrlSetState($Input2, $GUI_FOCUS);aktiviere eingabe feld(($Input1)

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

    EndFunc

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

    func loesung()

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

    $eingabe=GUICtrlRead ( $Input2 );lese eingabe
    ;,, ergnis umwandel für ausgabe
    $ergebnis= _ArrayToString($loesung)
    $ergebnis1=Number( StringReplace ( $ergebnis, "|", " " ))
    MsgBox(0, 'eingabe', $eingabe)
    MsgBox(0, 'ergebnis', $ergebnis1)
    ;;;;;;;;;vergleichen,,,,
    If $eingabe = $ergebnis1 Then
    ;MsgBox(0, 'zahlen sind gleich '& @CRLF $zahl1 ,$zahl1 )
    MsgBox(4096, "richtig", "zahlen sind gleich " & @CRLF & $eingabe & @CRLF & $ergebnis1)
    Else
    MsgBox(4096, "falsch", "zahlen sind ungleich " & @CRLF & $eingabe & @CRLF & $ergebnis1)
    EndIf
    Exit
    EndFunc

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

    func loeschen()
    ;;;;;loesche array aufgabe
    _ArrayDelete($avArray,1 )
    _ArrayDelete($avArray,2 )
    _ArrayDelete($avArray,3 )
    _ArrayDelete($avArray,4 )
    _ArrayDelete($avArray,5 )
    _ArrayDelete($avArray,6 )
    _ArrayDelete($avArray,7 )
    _ArrayDelete($avArray,8 )
    _ArrayDelete($avArray,9 )
    _ArrayDelete($avArray,10 )
    _ArrayDelete($avArray,11 )
    ;_ArrayDisplay($avArray, "aufgabe") test ob arryay geloescht ist
    ;,,,,,,,,,,,,,loesche loesung
    _ArrayDelete( $loesung,1)
    ; _ArrayDisplay($loesung, "loesung") test ob arryay geloescht ist
    EndFunc

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


  • Zitat

    ich habe hier 2stunden gesucht


    schau mal in den Beitrag, der in meiner Signatur verlinkt ist :rolleyes: