codea
Messages postés94Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention 6 août 2006 15 oct. 2005 à 21:59
** Petite erreur :
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))
codea
Messages postés94Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention 6 août 2006 15 oct. 2005 à 21:56
Pour le choix Min ou Max ... Je suggère d'utiliser un type Enum, de cette façon pas besoin de retourner voir dans la fonction pour savoir quel paramètre lui passer quand ca fais longtemps qu'on a pas utilisé cette fonction... une idée... et dans une classe...
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
JoePatent
Messages postés171Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention20 juillet 2008 4 janv. 2004 à 20:52
Private Function MiniMax(choix As Variant, 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 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
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