Tri

Résolu
luca62 Messages postés 56 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 4 août 2005 - 29 juil. 2005 à 15:29
luca62 Messages postés 56 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 4 août 2005 - 29 juil. 2005 à 15:49
j'ai une suite (6 nombres) de nombre à trier, voilà comment j'ai fait :

public i, j
dim k as integer

For i = 0 To 4
For j = i + 1 To 5
If txtResultat(i).Text > txtResultat(j).Text Then
k = txtResultat(i).Text
txtResultat(i).Text = txtResultat(j).Text
txtResultat(j).Text = k
End If
Next j
Next i

Si je prend un exemple : 1 - 15 - 41 - 3 - 5 - 21 il va me les trier comme ceci : 1 - 15 - 21 - 3 - 41 - 5
comme si les nombres à deux chiffres étaient à virgule ?

Est ce que c'est un problème de déclaration ?

Merci. Luca62

2 réponses

cs_toods Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
29 juil. 2005 à 15:39
Pour pouvoir comparer, il faut que tu castes en entier
car si tu restes en text, il compare caractère par caractère. donc 15 avant 2
normal car il compare le 1 et le 2 (en valeur ascii bien sur) et il classe
Donc pour résoudre le pb, je te propose:

For i = 0 To 4
For j = i + 1 To 5
If CInt(txtResultat(i).Text) > CInt(txtResultat(j).Text) Then
k = txtResultat(i).Text
txtResultat(i).Text = txtResultat(j).Text
txtResultat(j).Text = k
End If
Next j
Next i

Plus tu vas moins vite, moins tu vas plus loin
3
luca62 Messages postés 56 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 4 août 2005
29 juil. 2005 à 15:49
Merci beaucoup. Ca fonctionne.

Luca62.
0
Rejoignez-nous