Kleiner Body Mass Index

  • Guten Abend,

    beschäftige mich seit etwa 3 Tagen mit AutoIt und dem ganzen Programmieren. Habe einen kleinen Body Mass Index programmiert. Ist nichts grosses, hat aber mit meinen Kenntnissen schon ne Zeit lang gedauert^^
    (Daten sind aus Wikipedia)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Body Mass Index", 300, 171, 192, 124)
    $Input1 = GUICtrlCreateInput("Körpergewicht (kg)", 32, 32, 145, 21)
    $Input2 = GUICtrlCreateInput("Körpergrösse (m)", 32, 72, 145, 21)
    $Button1 = GUICtrlCreateButton("Ausrechnen", 32, 112, 65, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Beenden", 112, 112, 65, 25, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("",200,32,100,100)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    Exit
    Case $Button1
    $Antwort = (GUICtrlRead ($Input1) / (GUICtrlRead ($Input2) * GUICtrlRead($Input2)))
    If $Antwort < 16 Then
    GUICtrlSetData($Label1, "Sie haben starkes Untergewicht!")
    ElseIf $Antwort > 16 And $Antwort < 17 Then
    GUICtrlSetData($Label1, "Sie haben mässiges Untergewicht!")
    ElseIf $Antwort > 17 And $Antwort < 18.5 Then
    GUICtrlSetData($Label1, "Sie haben leichtes Untergewicht!")
    Elseif $Antwort > 18.5 And $Antwort < 25 Then
    GUICtrlSetData($Label1, "Sie haben Normalgewicht!")
    ElseIf $Antwort > 25 And $Antwort < 30 Then
    GUICtrlSetData($Label1, "Sie haben leichtes Übergewicht!")
    Elseif $Antwort > 30 And $Antwort < 35 Then
    GUICtrlSetData($Label1, "Sie haben mässiges Übergewicht!")
    Elseif $Antwort > 40 Then
    GUICtrlSetData($Label1, "Sie haben starkes Übergewicht!")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Freue mich über jeden Kommentar :)

  • Irgendetwas stimmt da nicht ...
    1 KG und 1,70 M ergeben "Sie haben starkes Übergewicht"

    [autoit]

    If ProcessExists("Sig.exe") Then
    ConsoleWrite("@@ mfg")
    Else
    ConsoleWrite("!! -no sig-")
    EndIf

    [/autoit]
  • Hallo :) Dein Programm läuft eigentlich auch optimal aber ich äußere doch mal Kritik wenn ich darf ;).
    Du könntest evtl. ein StringReplace für "," einbauen, da nicht jeder seine Größe mit "." eingibt. Desweiteren benutzt du immer > oder <, d.h. ist der Wert genau = bekommt man keine Lösung. Habe mir das kurz ausgerechnet bei welchen Werten das geschieht.
    KG = 38.25 / 41.625 / 56.25 / 67.5
    Größe = 1.5

    Bei den Gewichten bekommt man keine Lösung für die Größe 1.5 ;) Außerdem könntest du die GUI noch etwas zentrieren, sieht irgendwie nicht gut aus.
    Für 3 Tage aber ein nettes Tool ;)

    Rechterwinkel:
    Liegt daran das du bei der Größe "," verwendest und nicht ".". Wie schon gesagt.

    Edit: Ein weiteres Problem:
    Du hast $Antwort < 35 und dannach $Antwort > 40. D.h. zwischen 35 und 40 wirst du ebenfalls keine Werte bekommen.
    Das wäre bei 1.5 Größe jeweils 78.75KG - 90KG die keine Werte liefern.

  • Ah okay, jetzt klappt es, gleich nochmal ran und die richtigen Daten eintragen ;)

    EDIT: Wenn alles stimmt, müsste ich ca. 15 KG abnehmen um normal Gewicht zu haben ^^

    [autoit]

    If ProcessExists("Sig.exe") Then
    ConsoleWrite("@@ mfg")
    Else
    ConsoleWrite("!! -no sig-")
    EndIf

    [/autoit]
  • Danke für eure Tipps. Werde mir das gleich mal anschauen. Kann ich die GUI auch irgendwie färben?

    mfG
    Charlie

  • hey, ich hab ne frage: was kann man denn statt <> benutzen, damit es nicht zu solchen fehlern kommt, wie einer
    gesagt hat?

    und ja man kann gui färben, bin aber nit experte

  • Ah okay, jetzt klappt es, gleich nochmal ran und die richtigen Daten eintragen ;)

    EDIT: Wenn alles stimmt, müsste ich ca. 15 KG abnehmen um normal Gewicht zu haben ^^

    Kommt halt auf Muskelmasse und so an. Ist wohl einfach so Durchschnittswert ^^