Soyez le premier à donner votre avis sur cette source.
Snippet vu 8 560 fois - Téléchargée 31 fois
Public Function MiniMax(choix As Variant, tdd(), debut, fin) 'Cette fonction retourne le minimum ou le Maximum d'une liste d'éléments Dim boucle As Long, VarTmp As Variant, ODC As Integer, Terminus As Integer 'is If Not IsNumeric(choix) Then choix = UCase(choix) If choix = "MAX" Or choix = ">" Then ODC = 1 Else ODC = -1 ElseIf IsNumeric(choix) Then If choix = 0 Then ODC = 1 Else ODC = -1 End If 'Vérifie si le tableau posséde un élément vide de données Terminus = fin For boucle = debut To fin If IsEmpty(tdd(boucle)) = True Then Terminus = boucle - 1 Exit For End If Next VarTmp = tdd(1) ' Parcours de l'ensemble des arguments For boucle = 2 To Terminus ' Comparaison de l'élément courant avec le MiniMax If (VarTmp * ODC) < (tdd(boucle) * ODC) Then VarTmp = tdd(boucle) Next boucle ' Retourne l'élément le plus grand ou le plus petit MiniMax = VarTmp End Function
15 oct. 2005 à 21:59
La fonction doit etre publique dans la classe...
public function MiniMax(Choix As eMaxMin, tdd() As Variant, debut As Integer, fin As Integer)
Et pour utiliser la classe a partir d'une form ou d'un module :
dim MyMatVar as cMath
Math.MiniMax(e_Max,MonTableau,0,ubound(Montableau))
15 oct. 2005 à 21:56
Dans un module de classe cMath:
Public Enum eMaxMin
e_Max = 0
e_Min = 1
End Enum
Private Function MiniMax(Choix As eMaxMin, tdd() As Variant, debut As Integer, fin As Integer)
'Cette fonction retourne le minimum ou le Maximum d'une liste d'éléments
'select case
Dim boucle As Long, VarTmp As Variant, ODC As Integer
Select Case Choix
Case e_Max
ODC = 1
Case Else
ODC = -1
End Select
VarTmp = tdd(debut) ' Initialisation de la valeur max
' Parcours de l'ensemble des arguments
For boucle = debut To fin
' Comparaison de l'élément courant avec le MiniMax
If ((VarTmp * ODC) < (tdd(boucle) * ODC)) Then VarTmp = tdd(boucle)
Next boucle
' Retourne l'élément le plus grand ou le plus petit
MiniMax = VarTmp
End Function
4 janv. 2004 à 20:52
'Cette fonction retourne le minimum ou le Maximum d'une liste d'éléments
'select case
Dim boucle As Long, VarTmp As Variant, ODC As Integer
Select Case UCase(choix)
Case "MAX", 0, ">"
ODC = 1
Case Else
ODC = -1
End Select
VarTmp = tdd(debut) ' Initialisation de la valeur max
' Parcours de l'ensemble des arguments
For boucle = debut To fin
' Comparaison de l'élément courant avec le MiniMax
If ((VarTmp * ODC) < (tdd(boucle) * ODC)) Then VarTmp = tdd(boucle)
Next boucle
' Retourne l'élément le plus grand ou le plus petit
MiniMax = VarTmp
End Function
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.