Un petit code tout bête qui montre comment effectuer un tri a bulle sur une variable indicé contenant des valeurs numériques...
Source / Exemple :
'Déclaration des variables
Dim bpermute As Boolean
Dim cprovisoire As String
Dim cfiche(1 To 10) As Integer
'Mise en vars temporaires
imax = 10 '-->Nombre de fiches
cfiche(1) = 7
cfiche(2) = 4
cfiche(3) = 5
cfiche(4) = 2 '-->Valeurs de la variable indicée
cfiche(5) = 7
cfiche(6) = 9
cfiche(7) = 3
cfiche(8) = 1
cfiche(9) = 10
cfiche(10) = 6
bpermute = True 'Il faut au moins parcourir une fois
Do While bpermute = True 'On tourne tant que l'on bouge des valeurs
bpermute = False 'Si on est ici c qu'il faut réinitialiser bpermute
For t = 1 To imax - 1 'On tourne autant de fois qu'il y a de fiches(-1 vu qu'on compare 2 valeurs)
If cfiche(t) > cfiche(t + 1) Then 'Si on a trouvé deux valeurs mal rangées (autrement dit une valeur qui se trouve plus bas dans le tableau mais qui est plus élevée...
cprovisoire = cfiche(t) 'On inverse les deux chaines
cfiche(t) = cfiche(t + 1) 'bis
cfiche(t + 1) = cprovisoire 'bis
bpermute = True
End If
Next t
Loop
'Affichage du résultat classé
For i = 1 To 10
List1.AddItem cfiche(i)
Next i
Conclusion :
thx a mon père ;-)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.