Melanger un tableau vb.net

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 - Modifié par Whismeril le 12/09/2015 à 19:32
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 12 sept. 2015 à 23:53
Bonjour,

J'ai un tableau :

Dim Montant(24) As Integer

je rentre manuellement les données
'Attribution des montants
        Montant(1) = 1
        Montant(2) = 5
        Montant(3) = 10
        Montant(4) = 20
        Montant(5) = 50
        Montant(6) = 75
        Montant(7) = 100
        Montant(8) = 150
        Montant(9) = 200
        Montant(10) = 300
        Montant(11) = 400
        Montant(12) = 500
        Montant(13) = 1000
        Montant(14) = 2000
        Montant(15) = 3000
        Montant(16) = 3500
        Montant(17) = 4500
        Montant(18) = 5000
        Montant(19) = 6000
        Montant(20) = 7500
        Montant(21) = 10000
        Montant(22) = 25000
        Montant(23) = 50000
        Montant(24) = 100000


je cherche maintenant a mélanger mon tableau ?

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.


l'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai ...

2 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
12 sept. 2015 à 19:40
Bonsoir, une solution avec une List(Of), en fait deux.

Tu remplis la première avec tes données et tu initialises la seconde vide.

Ensuite tu fais une boucle while (il reste des données dans la liste1)
{
  • génère un index entier entre 0 et le nombre d'enregistrements de liste
  • ajoute la valeur de liste1(index) à liste2
  • supprime l'entrée à l'index de liste1


}
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 13/09/2015 à 00:19
Bonjour,
Ce qui s'appelle tout simplement touiller un tableau
J'ai déjà eu l'occasion de montrer comment le faire sur le tableau lui-même et en n'en parcourant que la moitié en boucle.
Le code qui suit (pour VB6) est très facilement transposable en VB.Net. Seule la partie relative au tirage aléatoire (randomize et Rnd sont différentes) ===>> Montant étant donc le nom de ton tableau ===>>

Randomize Timer
nb = UBound(montant)
For i = 0 To nb \ 2
ou = Int(((nb - i) * Rnd))
temp = montant(ou)
montant(ou) = montant(nb - i)
montant(nb - i) = temp
Next

ce code est ultra rapide

EDIT : attention au signe \ : il indique une division entière
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Rejoignez-nous