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

VB 6 et antérieur Discussion :

[VB6] : pour faire un Randomize sous vb... merci


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 2
    Points : 4
    Points
    4
    Par défaut [VB6] : pour faire un Randomize sous vb... merci
    désolé , je suis sur que cette info est dispo en recherchant dans le forum mais je ne peux pas acceder a la fonction recherche parcfe que trop d'utilisateurs dans le forum

    j'ai 30 num et je veux faire un random pour en resortir un puis un autre random pour resortir un numero (pas le meme que le premier...)... pendant 5 coups...

    quelqu'un peut il me donner une indication sur le fonctionnement de randomize...

    merci


    PS : Je précise que j'ai pas installé le MSDN...
    --> Delnic Corp® 2003<--

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Jettes un œil à cette fonction, tu comprendras mieux.

    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
    Function TirageAléatoire(nbTirage As Integer)
        Dim k As Integer, x As Integer, chain As String, nb As Integer
        chain = "1/2/3/4/5/7/8/9/10/11/12/13" ' etc.
        Dim temp
        temp = Split(chain, "/")
     
        Dim rep()
        ReDim rep(0 To nbTirage - 1)
     
        Randomize
        Do
            ' Définir l'intervale Marge sup: (UBound(temp) + 1) Marge Inf : 1
            k = Int(((UBound(temp) + 1) - 1 + 1) * Rnd + 1)
            If temp(k - 1) <> "" Then
                rep(nb) = temp(k - 1)
                temp(k - 1) = ""
                nb = nb + 1
            End If
            If nb >= UBound(temp) Then
                TirageAléatoire = rep
                Exit Function
            End If
            If nb >= nbTirage Then Exit Do
        Loop
     
        TirageAléatoire = rep
    End Function
    Concernant la MSDN qui n'est pas installée, tu peux toujours consulter l'aide en ligne de VBA qui est installé avec les applications Office

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 87
    Points : 92
    Points
    92
    Par défaut
    fais un tableau avec tes données à tirer au hasard:
    fais un tableau avec tes données tirées
    tu tires un nombre, tu le places dans le tableau tirees(1)
    ensuite, tu tires un deuxième nombre, tu regardes s'il n'est pas dans le tableau tirees.
    s'il y est, tu en tires un deuxième etc.. puis tu mets le nombre dans le tableau tirees(2)
    s'il n'y est pas, tu le met directement dans tirees(2)

    et tu recommences 3 autres fois.

    j'ai pas de code, car VB n'est pas insatllé sur ma machine, donc je préfère pas de donner de code buggé.

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    En fait, ta solution, c'est de refaire le code que je lui ai passé
    Je n'y avais pas pensé.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 87
    Points : 92
    Points
    92
    Par défaut
    sauf ke s'il est comme moi, il a pas trop compris!


    Désolé, je doi avoir l'esprit embrouillé.
    mon horoscope me l'avait prédis ce matin!!!

    Tu peux me commenter ton code stp?

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    chain est une variable qui contient la liste des valeurs à tirer
    (ça peut aussi bien être des objects ; dans l'exemple fourni
    j'ai volontairement oté le 6 à titre de démo)
    temp est le tableau qui reçoit les objects à tirer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function TirageAléatoire(nbTirage As Integer) 
        Dim k As Integer, x As Integer, chain As String, nb As Integer 
        chain = "1/2/3/4/5/7/8/9/10/11/12/13" ' etc. 
        Dim temp 
        temp = Split(chain, "/")
    Pour le reste, c'est exactement la méthode que tu as décrite, je ne ferai donc pas de commentaires superflus
    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
        Dim rep() 
        ReDim rep(0 To nbTirage - 1) 
     
        Randomize 
        Do 
            ' Définir l'intervale Marge sup: (UBound(temp) + 1) Marge Inf : 1 
            k = Int(((UBound(temp) + 1) - 1 + 1) * Rnd + 1) 
            If temp(k - 1) <> "" Then 
                rep(nb) = temp(k - 1) 
                temp(k - 1) = "" 
                nb = nb + 1 
            End If 
            If nb >= UBound(temp) Then 
                TirageAléatoire = rep 
                Exit Function 
            End If 
            If nb >= nbTirage Then Exit Do 
        Loop 
     
        TirageAléatoire = rep 
    End Function

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/03/2008, 12h02
  2. Quel langage pour faire des boucles sous FTP ?
    Par Mourne dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 04/07/2007, 16h33
  3. [JAR] Pb pour faire un jar sous Eclipse
    Par Yannick_from_31 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2006, 21h27
  4. Probleme pour faire une somme sous Excel
    Par Nicolas92 dans le forum Excel
    Réponses: 5
    Dernier message: 02/12/2005, 11h38
  5. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 22h42

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