Automatischer Rechner

  • Hallo :)

    Ich wollte mir einen kleinen automatischen autoit rechner basteln.
    Leider bin ich ein vollpfosten was autoit betrifft ^^

    ich hatte vor eine variable Zahl ( meist 6 stellig)
    immer durch 32 zu teilen.
    von dem daraus resultierende ergebniss möchte ich die zahlen hinter dem komma
    nochmals mit 32 multiplizieren, um letzendlich das ergebniss zu erhalten.

    mal nen beispiel:

    987654 geteilt durch 32 ergibt 30864,1875

    (zahl nach komma) 0,1875 mal 32 ergibt 6

    so sollte der rechner das eigentlich rechnen.
    dabei ist die 6 stellige ausgangszahl variabel wie gesagt.

    leider hab ich bis auf ein gui nicht wirklich einen plan wie ich das machenkann.
    ich habe zwar bei den knöppen multuplizieren und dividieren die 32 schon mit im giu drinne
    aber das erleichtert maximal die eingabe ^^

    das soll aber selbständig das ergebniss bringen wenn ich die 6 stellige zahl eingebe und = drücke :)

    vllt kann sich ja einer erbarmen mir zu helfen ( ohne mich auf die Hilfe hin zu weisen - da ich die nicht wirklich verstehe)

    Vielen Dank im Vorraus

    hier mal das gui obwohl das nich wirklich sinn macht geschweige den ne vorlage ist ^^

    edit : weis einer wie man noch bewerkstelligen könnte das man das endergebniss ( in dem fall 6 ) noch mit einem buchstaben verbinden könnte ?
    also die ausgabe wäre dann 6 - G oder je nach dem was das endergebniss ist, die ziffer immer mit einem dazu gehörigen buchstaben aus zu geben.
    ( es gibt eh nur maximal 31 endergebnisse egal welche zahl vorraus geht)


    [autoit]


    $GUI = GUICreate("Brotpreis Rechner", 180, 80, -1, -1)

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

    $input = GUICtrlCreateInput("", 10, 10, 160, 20)

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

    $bnDiv = GUICtrlCreateButton("/", 10, 40, 40, 30)
    $bnMulti = GUICtrlCreateButton("*", 50, 40, 40, 30)
    $bnResultat = GUICtrlCreateButton("=", 90, 40, 40, 30)
    $bnC = GUICtrlCreateButton("C", 130, 40, 40, 30)

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case - 3
    MsgBox(64, "", " By By " & @TAB, 1)
    Exit
    Case $bnC
    GUICtrlSetData($input, "")
    Case $bnDiv
    GUICtrlSetData($input, GUICtrlRead($input) & "/32")
    Case $bnMulti
    GUICtrlSetData($input, GUICtrlRead($input) & "*32")
    Case $bnResultat
    If GUICtrlRead($input) = "" Then
    MsgBox(64, "", "keine eingabe" & @TAB)
    Else
    GUICtrlSetData($input, Execute(GUICtrlRead($input)))
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    bb und Danke der Scrat :D

    2 Mal editiert, zuletzt von Scrat (30. Juni 2012 um 13:29)

  • z.B. so:

    [autoit]

    Case $bnResultat

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

    Local $In, $Out

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

    $In = GUICtrlRead($input)
    $In = $In / 32
    $Out = Int($In) + (($In - Int($In)) * 32)
    GUICtrlSetData($input, $Out)

    [/autoit]

    Gruss Shadowigor

  • z.B. so:

    [autoit]

    Case $bnResultat

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

    Local $In, $Out

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

    $In = GUICtrlRead($input)
    $In = $In / 32
    $Out = Int($In) + (($In - Int($In)) * 32)
    GUICtrlSetData($input, $Out)

    [/autoit]

    Gruss Shadowigor


    vielen dank für deine schnelle hilfe :)

    bb und Danke der Scrat :D

  • Moin :)
    ich habe mal die genannten hilfen versucht , komme aber leider nicht auf das erwünschte ergebniss ( 6 - laut beispiel rechnung )
    mein ergebniss ist 30870
    iwas mach ich falsch .

    kannst du mal bitte deinen scriptteil an richtiger stelle bei mir einfügen und schauen was rauskommt ?
    Vielen Dank im Vorraus .

    bb und Danke der Scrat :D

  • Hier mal eine andere Lösung mit "Mod" ! ;)

    [autoit]


    $title = "Brotpreis Calc"
    GUICreate($title, 200, 80)
    $input = GUICtrlCreateInput("", 10, 10, 180, 20)
    $bnC = GUICtrlCreateButton("C", 55, 40, 45, 30)
    $bnResultat = GUICtrlCreateButton("=", 100, 40, 45, 30)
    $bnX = GUICtrlCreateButton("X", 145, 40, 45, 30)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3, $bnX
    MsgBox(64, "", $title & @TAB, 3)
    ExitLoop
    Case $bnC
    GUICtrlSetData($input, "")
    Case $bnResultat
    GUICtrlSetData($input, Mod(GUICtrlRead($input), 32))
    EndSwitch
    WEnd

    [/autoit]
  • Vielen Dank :)

    jetzt macht das teil genau das was es soll :)

    danke euch allen - jetzt ist erstmal wieder mein 2 jähriger drann :)
    der nimmt schon reichlich zeit weg ^^
    meld mich heute abend noch mal .
    vllt hatt ja noch einer ne idee wie ich die ausgabe der zahlen noch mit einer zuordnung verbinden könnte.
    ich hatte das ganze am anfang so am laufen :

    [autoit]

    $Input = InputBox("Brotpreise ^^", "Zahl eingeben:", "12345678")

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

    $Input2 = $Input - Int($Input/32)*32

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

    If $Input2 = 0 Then
    $Preis = 12
    ElseIf $Input2 = 1 Then
    $Preis = 7
    ElseIf $Input2 = 2 Then
    $Preis = 21
    ElseIf $Input2 = 3 Then
    $Preis = 8
    ElseIf $Input2 = 4 Then
    $Preis = 37
    ElseIf $Input2 = 5 Then
    $Preis = 14
    ElseIf $Input2 = 6 Then
    $Preis = 9
    ElseIf $Input2 = 7 Then
    $Preis = 27
    ElseIf $Input2 = 8 Then
    $Preis = 15
    ElseIf $Input2 = 9 Then
    $Preis = 19
    ElseIf $Input2 = 10 Then
    $Preis = 17
    ElseIf $Input2 = 11 Then
    $Preis = 22
    ElseIf $Input2 = 12 Then
    $Preis = 2
    ElseIf $Input2 = 13 Then
    $Preis = 1
    ElseIf $Input2 = 14 Then
    $Preis = 30
    ElseIf $Input2 = 15 Then
    $Preis = 40
    ElseIf $Input2 = 16 Then
    $Preis = 6
    ElseIf $Input2 = 17 Then
    $Preis = 20
    ElseIf $Input2 = 18 Then
    $Preis = 10
    ElseIf $Input2 = 19 Then
    $Preis = 39
    ElseIf $Input2 = 20 Then
    $Preis = 24
    ElseIf $Input2 = 21 Then
    $Preis = 18
    ElseIf $Input2 = 22 Then
    $Preis = 25
    ElseIf $Input2 = 23 Then
    $Preis = 31
    ElseIf $Input2 = 24 Then
    $Preis = 34
    ElseIf $Input2 = 25 Then
    $Preis = 3
    ElseIf $Input2 = 26 Then
    $Preis = 32
    ElseIf $Input2 = 27 Then
    $Preis = 13
    ElseIf $Input2 = 28 Then
    $Preis = 5
    ElseIf $Input2 = 29 Then
    $Preis = 11
    ElseIf $Input2 = 30 Then
    $Preis = 4
    ElseIf $Input2 = 31 Then
    $Preis = 16
    EndIf

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

    MsgBox(0, "", "Der Preis ist:" & @CRLF & $Preis)

    [/autoit]

    das funktioniert auch richtig nur wollte ich das ganze mit einem Gui machen wegen der optik
    jetzt habe ich dank euch ein gui was richtig rechnet - aber mir fehlt jetzt wieder die zuordnung.

    zum beispiel
    ergebniss ausgabe 6 = preis 9 / in dem fall die zahl ist 987654

    nagut dann bis heut abend erstmal und schönen rest des tages noch ( bei dem schönen wetter :) )
    und nochmal vielen dank :)

    bb und Danke der Scrat :D

  • Ich habe diesen Thread jetzt zwar nur mal schnell überflogen, aber mir ist eine Sache am Ablauf nicht ganz klar geworden. Zuerst macht der User eine 6 stellige Eingabe. Diese wird dann mit Hilfe von

    [autoit]

    $Input2 = $Input - Int($Input/32)*32

    [/autoit]

    in eine andere Zahl umgerechnet. So weit so gut, aber wo her soll das Script jetzt wissen, dass zum Beispiel beim Ergebnis 0 dem Preis 12 beträgt? Oder meinst du mit deiner letzten Frage genau das? Wenn de so ist, könntest du die Ergebnisse und die dazu gehörigen Preise ja in einer Datei speichern, diese beim Start des Scripts in ein Array einlesen...

    LG
    Christoph :)

  • Hi, sollte soweit funktionieren.

    Spoiler anzeigen
    [autoit]


    $title = "Brotpreis Calc"
    GUICreate($title, 200, 80)
    $input = GUICtrlCreateInput("987654", 10, 10, 180, 20)
    $bnC = GUICtrlCreateButton("C", 55, 40, 45, 30)
    $bnResultat = GUICtrlCreateButton("=", 100, 40, 45, 30)
    $bnX = GUICtrlCreateButton("X", 145, 40, 45, 30)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3, $bnX
    MsgBox(64, "", $title & @TAB, 3)
    ExitLoop
    Case $bnC
    GUICtrlSetData($input, "")
    Case $bnResultat
    $Input2 = Mod(GUICtrlRead($input), 32)
    Switch $Input2
    Case 0
    $Preis = 12
    Case 1
    $Preis = 7
    Case 2
    $Preis = 21
    Case 3
    $Preis = 8
    Case 4
    $Preis = 37
    Case 5
    $Preis = 14
    Case 6
    $Preis = 9
    Case 7
    $Preis = 27
    Case 8
    $Preis = 15
    Case 9
    $Preis = 19
    Case 10
    $Preis = 17
    Case 11
    $Preis = 22
    Case 12
    $Preis = 2
    Case 13
    $Preis = 1
    Case 14
    $Preis = 30
    Case 15
    $Preis = 40
    Case 16
    $Preis = 6
    Case 17
    $Preis = 20
    Case 18
    $Preis = 10
    Case 19
    $Preis = 39
    Case 20
    $Preis = 24
    Case 21
    $Preis = 18
    Case 22
    $Preis = 25
    Case 23
    $Preis = 31
    Case 24
    $Preis = 34
    Case 25
    $Preis = 3
    Case 26
    $Preis = 32
    Case 27
    $Preis = 13
    Case 28
    $Preis = 5
    Case 29
    $Preis = 11
    Case 30
    $Preis = 4
    Case 31
    $Preis = 16
    EndSwitch

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

    GUICtrlSetData($input, "Ausgabe : " & $Input2 & " => Preis ist : " & $Preis)
    EndSwitch
    WEnd

    [/autoit]

  • oha ^^ vielen Dank an alle fleisiger helfer :)
    jetzt funzt es prima :)
    und der tag ist gerettet ^^

    mein besonderer dank geht an RR04

    Ps: manchmal wüscht ich, das ich statt russich autoit in der schule gehabt hätte ^^
    jetzt fehlt schlicht die zeit zum lernen - da kind frau haus und jop - die timekiller schlecht hin sind :)

    bb und Danke der Scrat :D

  • Hier mal eine weitere Lösung !
    Unter zu Hilfenahme eines Arrays konnte das Skript drastisch gekürzt werden. ;)

    Spoiler anzeigen
    [autoit]


    $title = "Brotpreis Calc"
    GUICreate($title, 200, 80)
    $input = GUICtrlCreateInput("987654", 10, 10, 180, 20)
    $bnC = GUICtrlCreateButton("C", 55, 40, 45, 30)
    $bnResultat = GUICtrlCreateButton("=", 100, 40, 45, 30)
    $bnX = GUICtrlCreateButton("X", 145, 40, 45, 30)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3, $bnX
    MsgBox(64, "", $title & @TAB, 3)
    ExitLoop
    Case $bnC
    GUICtrlSetData($input, "")
    Case $bnResultat
    Global $output = Mod(GUICtrlRead($input), 32)
    Global $aPrice[32] = ["12", "7", "21", "8", "37", "14", "9", "27", "15", "19", "17", "22", "2", "1", "30", "40", "6", "20", "10", "39", "24", "18", "25", "31", "34", "3", "32", "13", "5", "11", "4", "16"]
    GUICtrlSetData($input, "Ausgabe : " & $output & " => Preis : " & $aPrice[$output])
    EndSwitch
    WEnd
    ; Ende

    [/autoit]

  • nochmals vielen Dank :)
    für die leztere änderung .
    lg

    bb und Danke der Scrat :D