Trouver (en VB) le plus grand nombre parmis une liste
boursicotteur
Messages postés201Date d'inscriptionmercredi 25 septembre 2002StatutMembreDernière intervention10 novembre 2007
-
27 juil. 2003 à 16:33
pcpunch
Messages postés1247Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 2019
-
27 juil. 2003 à 18:11
Quelqu'un connaît-il une fonction VB, une API ou encore un truc VRAIMENT TRÈS RAPIDE pour trouver le plus grand nombre dans une liste de nombres?
ATTENTION:
Je ne veux pas entrer les nombres 1 par 1 dans un contrôle ni les comparer 1 à la fois mais trouver le plus grand nombre en une seule étape dans le style de la fonction Max(val1, val2, val3, val4,...) dans excel.
J'ai cherché dans VB (rien trouvé), dans les API (rien trouvé) et j'ai aussi cherché des trucs comme SORT d'un Array mais ce truc n'est pas faisable en VB... à ma connaissance.
Il doit certainement y avoir un moyen mais je ne vois plus où chercher.
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 27 juil. 2003 à 16:44
pourquoi en une ligne ??? tu penses que çca sera plus rapide qu'en plusieurs ligne ???
pense que l'idéal çca serais de te faire une fonction qui le fait
comme ça tu as une function qui en une ligne appel MaxVal avec un tableau de longeur variable sans aucun problème
public function MaxVal(tableau() as integer) as integer
dim i as integer
MaxVal = tableau(LBound(tableau))
for i = LBound(tableau) + 1 to UBound(tableau)
if MaxVal < tableau(i) then
MaxVal = tableau(i)
end if
next i
end function
pcpunch
Messages postés1247Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 27 juil. 2003 à 18:11
autre possibilité : utilise un trie a bulle
Private Sub Form_Load()
Dim tableau(1 To 5)
tableau(1) = 2
tableau(2) = 235
tableau(3) = 33
tableau(4) = 234
tableau(5) = 11
' TRI A BULLE du tableau dans l ordre croissant
For j = 1 To UBound(tableau)
DoEvents
BOL = False
For i = 1 To (UBound(tableau) - j)
If tableau(i) > tableau(i + 1) Then
BOL = True
Temp = tableau(i)
tableau(i) = tableau(i + 1)
tableau(i + 1) = Temp
End If
Next
If Not BOL Then j = UBound(tableau)
Next
MsgBox "le nombre le plus grand est : " & tableau(UBound(tableau))