IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Probleme de raisonnement logique avec les boucles conditionnelles


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Points : 30
    Points
    30
    Par défaut Probleme de raisonnement logique avec les boucles conditionnelles
    Bonjour à tous,

    Je débute en programmation, donc ne vous moquez pas, OK . J'ai un petit exercice à faire afin de maîtriser les structures conditionnelles..
    Je butte depuis des heures.

    Voici les commandes que nous avons vu, en cours :

    For...next
    Do loop (while | until)
    If...Then else if
    Or et AND
    Select... case

    Le "cahier des charges" imposé, si j'ose dire, pour cet exercice, est de les utiliser à bon escient.

    En fait, J'ai pu localiser mes lacunes : celles-ci résident dans la façon de poser mes conditions.

    Un collègue bien plus aguerri m'a conseillé de procéder via une traduction littérale du problème.

    Frustré de ne pas saisir ces commandes, je ne m'en sors pas, cela ne m'aide en rien.

    Voici donc ce que j'ai essayé de "pondre".
    SVP, essayez de me commenter chaque ligne de commande ou d'instruction perfectibles, je vous en saurai gré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    'Prg ludique permettant de faire deviner un nombre
    'en moins de 10 tentatives possibles
    'Crée le 17/10/2010 par O. BOUZAR
     
    option explicit
    'Déclaration des variables, introduite par la fct° "dim" pour dimension
    dim i,x,y
     
    'Initialisation du générateur de nombres aléatoires.
    randomize
     
    'Retour d'une valeur aléatoire "x", comprise entre 1 et 1000.
    x=int((999*rnd)+1)
     
    'Démarrage du nbre de tentative :
    for i=1 to 10
    msgbox " tentative n°  "  &  i
     
    'Affichage de la boite de dialogue dans laquelle on entre
    'un nombre issu de la plage imposée :
     
    y=InputBox(" * Choisir nbre entre 1 et 1000 * "," SECRET NUMBER !")
     
    if y>x then
            msgbox " Votre nbre est trop grand !"
     
    if y<x then
            msgbox " Votre nbre est trop petit!"
     
    if y=x  then
            msgbox " *-* FELICITATIONS ! *-* " & chr(13) &_
                    " " & chr(13) &_
                   " Vous avez découvert le nombre secret en : " & i & " essai . "
     
    if y=" " then
            msgbox "Vs n'avez pas choisi de nombre ! ",32
            wscript.quit
            end if
     
     ' On propose au joueur de continuer ou de sortir du jeu :
            msgbox " Continuer le jeu ?",32+4,"SECRET NUMBER !"
     
    wscript.echo " A BIENTÖT ! "
    Je suis conscient qu'il manque des éléments, mais comment s'orienter efficacement quand on nage en eaux troubles ?

    Attention ! je ne demande pas à ce que l'exercice soit fait intégralement par les contributeurs de ce forum, mais j'aspire à ce que ces derniers m'expliquent en vulgarisant le plus possible leurs propos, cela afin de progresser et de devenir autonome le plus rapidement possible.

    D'avance, merci à tous !

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Je pense que toutes les explications ne valent pas un exemple Simplifié.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If A = 2 Then        'Si A=2 Alors
               'Lignes de code
         elseIf A = 3 then   'Si non, Si A=3 Alors
               'Lignes de code
         else                    'Si non, Alors
              'Lignes de code
           Exit For       'Quitter la boucle For Next
     
    end if
    Pout ta boucle, il manque un petit quelque chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to 10
         'Lignes de code
    Next i

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Points : 30
    Points
    30
    Par défaut
    Merci number7, je vais essayer d'amorcer un programme fonctionnel avec tout ce que tu m'as gentiment soumis.

    Je viendrais ensuite le poster...

  4. #4
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    Salut.

    Je pense qu'il faudrait mieux créer une boucle "Do While ... Loop" au lieu du "For ... Next" pour ce jeu, pour avoir un nombre illimité d'essais.

    Je ferais donc comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    boolNumberFound = False
    i = 0
    Do While boolNumberFound = False
      ' Si non trouvé : i = i + 1
      ' Si nombre trouvé : boolNumberFound  = True
    Loop
    D'autre part, voici un petit conseil.
    Ta variable x est type entier, or le InputBox te renvoie une variable de type String. Tes comparaisons ne fonctionneront donc pas car elles vont comparer la valeur entière de x à la valeur ASCII de ta chaine de caractère y.
    Il faut donc que tu convertisse la chaine de caractère y en entier : pour cela, utilise la fonction CInt().
    Mais attention à ta gestion d'erreur, car si la chaine rentrée dans ton InputBox n'est pas un nombre entier, le CInt te renverra une erreur...

    Allez bonne continuation!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Points : 30
    Points
    30
    Par défaut
    Merci pitchalov pour ces précieux conseils.
    J'espère pouvoir progresser avec tout cela.

  6. #6
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    Bonsoir,

    Si le sujet est Résolu pense a cliquer sur le bouton en bas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/05/2007, 18h31
  2. Réponses: 5
    Dernier message: 15/05/2007, 17h19
  3. problème avec les boucle infinies
    Par manciaux dans le forum C
    Réponses: 3
    Dernier message: 14/05/2007, 13h16
  4. Réponses: 6
    Dernier message: 09/11/2005, 18h35
  5. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo