En quelque mot ce code permet de calculer la factorielle d'un nombre exemple: !5 = 120
Source / Exemple :
Option Explicit
'*************************************
'******transmission d'argument *******
'****** par steven007 ****************
'****** 23/06/2002 03h37 *************
'****** steven007@caramail.com********
'****** www.steven007.fr.st***********
'*************************************
' NOTE :
' les deux procédures Function sont déclarées avec le type de données LONG.
'La valeur de l'argument déterminée à l'aide du contrôle Incrément doit être
'limitée à 12 car 12 tient dans le domaine de validité du type Long, mais pas 12 !
'dans le cas contraire vous aurez un msgbox d'erreur de Dépassement de capacité.
'v'la pour l'info personnel...
'Variable pour l'argument
Dim intargument As Integer
Private Function FactorRef(ByRef IntN As Integer) As Long
'Calcule la factorielle de intN
Dim ingtemp As Long
ingtemp = 1
Do
ingtemp = ingtemp * IntN
IntN = IntN - 1
Loop While IntN > 0
FactorRef = ingtemp
End Function
Private Function FactorVal(ByVal IntN As Integer) As Long
'Calcule la factorielle de intN
Dim ingtemp As Long
ingtemp = 1
Do
ingtemp = ingtemp * IntN
IntN = IntN - 1
Loop While IntN > 0
FactorVal = ingtemp
End Function
Private Sub Command1_Click()
Label1.Caption = intargument & "! = " & Format$(FactorRef((intargument)), "#,###,###,##0")
'ici vous pouvez modificer cette instruction et remplacer par:
'Label1.Caption = intargument & "! = " & Format$(FactorRef(intargument), "#,###,###,##0")
'avec cette solution la l'égalité affichée est fausse, mais n'est valable
'que pour la valeur 10. C est pour ne pas tomber sur -1! = 0
'Désactive les boutons
Command1.Enabled = False
Command2.Enabled = False
End Sub
Private Sub Command2_Click()
Label1.Caption = intargument & "! = " & FormatNumber(FactorVal(intargument), 0)
'Désactive les boutons
Command1.Enabled = False
Command2.Enabled = False
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub UpDown1_Change()
'Détermine la valeur de l'argument
intargument = UpDown1.Value
'Active les boutons
Command1.Enabled = True
Command2.Enabled = False
End Sub
' CECI EST OPTIONNEL
' CECI EST OPTIONNEL
'Vérifie si un argument optionnel a été transmis.
Public Function puissance3(Optional nombre As Integer) As Long
'Définition de la procédure Function
'avec des arguments optionnels
If IsMissing(nombre) Then
puissance3 = 1
Else
puissance3 = nombre * nombre * nombre
End If
End Function
Conclusion :
y a pas de bugs
http://www.steven007.fr.st
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.