Transmission d'argument

Soyez le premier à donner votre avis sur cette source.

Vue 2 392 fois - Téléchargée 142 fois

Description

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
93
Date d'inscription
samedi 9 juin 2001
Statut
Membre
Dernière intervention
6 mai 2005
1
c'est le chit qui est monté ;)
Messages postés
150
Date d'inscription
jeudi 24 janvier 2002
Statut
Membre
Dernière intervention
27 avril 2007

oups, je rectifi quelque chose dans les commentaires du code:

'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 13 !

scusez moi

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.