[R] Utilisation de Switch/Case

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Popipipo
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 12 mai 2014 16:27
Status : Hors ligne

[R] Utilisation de Switch/Case

#1

Message par Popipipo »

Bonjour à tous ,
J'ai un problème avec ce code . Lorsque que je clique sur le bouton "Calculer" rien ne se produit :cry: .
Merci d'avance pour votre future aide qui j’espère réglera mon manque cruel de culture en AutoIt :o

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 532, 238, 243, 201)
GUISetCursor (3)
GUISetFont(8, 800, 0, "MS Sans Serif")
GUISetBkColor(0xA6CAF0)
$Label1 = GUICtrlCreateLabel("Calculez votre IMC", 152, 16, 208, 38)
GUICtrlSetFont(-1, 20, 400, 0, "Impact")
$Input1 = GUICtrlCreateInput("Votre taille en Cm ", 176, 104, 161, 21)
$Input2 = GUICtrlCreateInput("Votre poid en Kg", 177, 144, 159, 21)
$Calculer = GUICtrlCreateButton("Calculer", 152, 200, 209, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        case $Calculer
            $donnee_de_inputbox1 = GUICtrlRead ($Input1)
            $donnee_de_inputbox2 = GUICtrlRead ( $Input2 )
            $IMC =  $donnee_de_inputbox2 / ( $donnee_de_inputbox1 * $donnee_de_inputbox1 )

        $IMCRes = $IMC

        Switch $IMCRes

            case 1 to 16.5
            MsgBox(10,"IMC","Vous etes Dénutrie ")

            case 16.5 to 18.5
            MsgBox(10,"IMC","Vous etes Maigre ")

            case 18.5 to 25
            MsgBox(10,"IMC","Vous etes Normal")

            case 25 to 30
            MsgBox(10,"IMC","Vous etes en Surpoids ")

            case 30 to 35
            MsgBox(10,"IMC","Vous etes Obèse")

            case  40 to 60
            MsgBox(10,"IMC","Vous etes en  Obèsité morbide !!")




        EndSwitch


    EndSwitch
WEnd


Bonne soirée a tous
Modifié en dernier par Popipipo le mar. 09 sept. 2014 16:59, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Utilisation de Switch/Case

#2

Message par Tlem »

Il me semble qu'en la circonstance, vos variables $donnée_de_input1 et $donnée_de_input2 sont lues en tant que chaîne et non en tant que nombre ...
Convertissez en nombre, effectuez la division puis pour finir faites la comparaison. ;)

Envoyé depuis mon appareil mobile.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..]Utilisation de Switch/Case

#3

Message par orax »

Le calcul ou autre chose n'est pas bon.
100 000 kg / (180 cm * 180 cm) = "Dénutrie" :shock:

Et aussi dans MsgBox(10, ...), 10 est une valeur de retour et elle ne fait pas partie des valeurs autorisées. Voir le tableau en dessous (après Remarks) dans l'aide.
Modifié en dernier par orax le lun. 08 sept. 2014 21:20, modifié 1 fois.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2127
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..]Utilisation de Switch/Case

#4

Message par TommyDDR »

C'est surtout que le nombre donné est plus petit que 0.00x
Donc on ne rentre dans aucun case.

Calcul IMC : kg/(m*m) et non kg/(cm*cm)

Vous devez diviser par 100 $donnee_de_inputbox1.

Avant de demander de l'aide il faut toujours penser à afficher ses variables (MsgBox / ConsoleWrite / etc), vous vous seriez rendu compte que votre valeur était trop petite :wink:

Edit : MsgBox(10, ...)
10 ? d'où sort il ?
Cela n'existe pas (et empêche la MsgBox de s'afficher)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Popipipo
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 12 mai 2014 16:27
Status : Hors ligne

Re: [..] Utilisation de Switch/Case

#5

Message par Popipipo »

Merci beaucoup pour votre aide et votre attention . :D
Mais juste une dernière question pourquoi le 10 empêche d'ouvrir la Msgbox ?
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2127
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Utilisation de Switch/Case

#6

Message par TommyDDR »

Parceque ce n'est pas un flag valide (Appuyez sur F1 crédidiou !)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre