Tableau aléatoire par paires

Résolu
cs_jcg56123 Messages postés 6 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 29 mai 2009 - 3 déc. 2006 à 21:20
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 5 déc. 2006 à 22:44
Bonjour

J'ai un petit exercice à faire pour l'école. Le pseudo code passe et VB plante ...

Le but du programme est de remplir un tableau de 12 indices avec 6 paires de nombres allant de un à six. Je sais qu'il existe aussi le IsEmpty pour vérifier si une variable est vide. Normalement je n'ai pas encore vu de fonction pour mélanger un tableau.

Randomize
Dim i, caseok, cases(12), casetotry

For i = 1 To 6 'mon nombre de un à six

    For j = 1 To 2 'je le met deux fois pour avoir des paires

           caseok = 0
           While caseok = 0
 
                casetotry = Int(Rnd * 11)
                If cases(casetotry) = 0 Then 'Si la place est libre, je prend sinon je cherche ailleur
                                        cases(casetotry) = i
                                        caseok = 1
                                        Else
                End If
           Wend
    Next

Next

Avec la boucle de mon i à 5 ça passe, au delà, ça crash

9 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
4 déc. 2006 à 06:58
 Bonjour à tous

Exemple pour le mélange des chiffres.
Reste à définir "result" en tableau.

Dim aTabSeries(12)
Dim aSuites()          
Randomize


Dim i , iRnd
For i = 1 To 12
    aTabSeries(i) = i
Next 


'redim résultats
ReDim aSuites(12)



Dim Result
'on créé le tableau de résultat en "désactivant" ceux trouvés
For i = 1 To 12  Step 1
    aSuites(i) = 0
    While aSuites(i) = 0
          iRnd = Int(12 * Rnd) + 1
          If aTabSeries(iRnd) <> 0 Then
             aSuites(i) = aTabSeries(iRnd)
             aTabSeries(iRnd) = 0
             Result = Result & CStr(aSuites(i)) & " . " 
          End If
    Wend
Next
MsgBox Result,,"Chiffres mélangés"



jean-marc
3
Profil bloqué
4 déc. 2006 à 00:10
Salut
 1) Les 4 variables ne sont pas déclarés : elles sont toutes de type Variant
 2)  Le Else est inutile
 3)  Remplace Int(Rnd * 11) par Int(Rnd * 12) -1

GRENIER Alain[8D]
0
cs_jcg56123 Messages postés 6 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 29 mai 2009
4 déc. 2006 à 10:54
 3)  Remplace Int(Rnd * 11) par Int(Rnd * 12) -1

>> Et j'obtient donc un indice négatif qui n'exite pas dans mon tableau ...

sinon je ne vois pas en quoi 1&2 influencerais le comportement du programme
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 déc. 2006 à 20:20
Attends !!

Il faut une fois de plus jouer, semble-t-il, aux devinettes !!!

Ta question serait-elle tout simplement :

"je cherche à dresser la liste de toutes les combinaisons possibles de nombres pris 2 à 2 dans une série de 6 nombres et à présenter les résultats dans un ordre aléatoire" ????


 


Si tel est le cas :
1) cpùbinaisons dans l'ordre ou indépendamment de l'ordre ?


2) Où rencontres-tu une difficulté ?


a) dans l'établissement de la liste des  combinaisons possibles ?
b) dans la présentation du résultat dans un ordre aléatoire ?
c) difficultés tant pour a) que pour b) ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 déc. 2006 à 21:06
Ouais .....
L'abonné ne répond plus au numéro demandé.... et c'est bien dommage !!!!

Pour le cas où il repasserait par là, quand même :

Sais-tu, ami, ce qui m'onquiète le plus, dans toute cette "affaire" ?

C'est ton chiffre 12 ....
Tu ne vois pas pourquoi ?  (moi oui.... quel que soit le cas de figure, il est impossible.... et ce n'est pas là du VB mais de l'algèbre....).
Si tu repasses par là et que tu lis ceci :

S'il te plait : réexpose ton "problème" avec précision, genre :
"j'ai ceci :..........."
"et je dois faire celà : ........."
pour ton information, par exemple :

Dans le désordre, il existe 15 combinaisons possibles d'éléments pris 2 à 2 dans une série de 6 éléments...
Dans l'ordre ? Beaucoup plus  !!!!
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
5 déc. 2006 à 21:26
 Bonsoir,

Bonsoir 615490 jmfmarques ,
N'étant pas matheux, j'avais un doute sur une partie de mon code, que je n'ai, donc, pas proposé.
ça me rassure.
Le topic  de =116697 jcg56123 est quand même assez éloquent:
"J'ai un petit exercice à faire pour l'école"....demande de toutes les combinaisons possibles.

Allez, encore un topic a oublié.
C'est assez désobligeant de voir le nombre de posts restant sans réponse de la part de l"émetteur du topic.  

Enfin ! pour ma part, ça me fait re-bouger les neurones après une journée de boulot de prog...

Sur ce, bonne soirée de programmation à tous,
et dans l'attente de trouver un topic intéressant.....et dans mes compétences.

jean-marc.
0
cs_jcg56123 Messages postés 6 Date d'inscription samedi 7 juin 2003 Statut Membre Dernière intervention 29 mai 2009
5 déc. 2006 à 21:34
Ouf là ... Après un jour d'absence, je reviens sur mon topic et que vois-je .... ça "geule" de partout sans aucune raison.


C'est justement en pourrissant un topic de commentaire pareils que j'aurais envie de ne pas y répondre et d'aller voir ailleur.

Critiquer le fait que des étudiants viennent chercher de l'aide... Je n'ademet pas, je ne demande pas toutes les solutions mais une piste.

Bon ... Maintenant je continue mon post sagement ...



Je récapitule depuis le début ce que ce bout de code est sencé faire:

Le but est remplir un tableau indicé de paires de nombres de 0-> (indice max/2) et que ses nombres soient placés à des endroits aléatoires du tableau. Le but étant de créer mon tableau de variables pour un mémory.

Et avant que l'on ne vienne me dire qu'il existe une source mémory sur VB france. Voici déja ma réponse: "J'ai été consulter cette source, TRES complète. Mais malheureusement trop complexe à comprendre pour mes faibles connaissances en VB"

Merci d'avance à ceux qui pourront apporter quelques bout de codes à mon problème
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 déc. 2006 à 22:39
Alors, jeune ami impatient (et je commence à l'être également) !

Ton code ? Je l'ai déjà fait hier....

Mais je n'aime vraiment pas le flou artistique ....

Si tu veux donc ce code, mon vieux, tu vas répondre à ceci (car c'est bien toi qui a écrit, avec ton 1er post : "Le but du programme est de remplir un tableau de 12 indices avec 6 paires de nombres allant de un à six. Je sais qu'il existe aussi le IsEmpty pour vérifier si une variable est vide. Normalement je n'ai pas encore vu de fonction pour mélanger un tableau.")

Et si ces précisions étaient inutiles, pourquoi les avoir exposées, alors , hein ?

Allons-y alors :
Question 1 : que te demande-t-on de répartir exactement ?
a) des paires constituées des combinaisons, 2 à 2, de nombres pris dans une série de 1 à 6, sans tenir compte de l'ordre de la paire (ainsi : la paire ab = la paire ba) ? pour ton information, on obtiendrait dans ce cas 15 paires possibles et pas 12 !....
b) des paires constituées des combinaisons, 2 à 2, de nombres pris dans une série de 1 à 6, en tenant compte de l'ordre de la paire (ainsi : la paire ab = la paire ba) ? pour ton information, on obtiendrait dans ce cas un nombre beaucoup plus élévé de paires possibles....

c) finalement, je me suis mal expliqué et on me demande de partir de 12 chiffres différents. C'est moi qui en ai déduit qu'il fallait diviser 12 par 2....... (ce qui est faux !!!!). Et là encore : en tenant compte de l'odre ou sans en tenir compte ?

Une fois ceci clarifié (et les paires possibles déterminées, donc), leur présentation dans un ordre aléatoire viendra.

Voilà, jeune ami...
C'est mon dernier mot.
Tu prends ou ne prends pas...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 déc. 2006 à 22:44
Ps : j'ai vu ou tu "vas voir ailleurs" et où, compte tenu de tes explications non comprises (bien évidemment) quelqu'un a fini par te proposer un code venant encore d'ailleurs pour "mixer des cartes à jouer".
J'ai bien ri dans ma barbe..(si tu veux savoir)...
Voilà donc une affaire au demeurant simple, qui traîne ici et là depuis quelques jours....
A toi de voir ....
0
Rejoignez-nous