Académique Documents
Professionnel Documents
Culture Documents
V0 (28-01-2009)
www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf
Fonction
Une fonction est une forme dinstruction compose dont e lexcution dpends de param`tres : e e e
Function Identificateur (DeclarationParametres) As TypeDeRetour Instructions Affectation dIdentificateur Exit Function End Function
Function Som(ByVal X As Integer, ByVal Y As Integer) As Integer Som = X+Y Exit Function End Function
V6 (28-01-2009)
www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf
Le mot clef Return. Il est possible daecter la valeur de retour et dinterrompre lexcution de la fonction grce au e a mot clef Return :
Function Somme(ByVal X As Integer) As Integer Return X + 1 End Function
La fonction InputBox. Cette fonction permet de crer une e boite de dialogue et de rcuprer une cha de caract`res. e e ne e
Sub RecupereEtAffiche() Dim s As String s=InputBox("Saisissez votre message") MsgBox(s) End Sub
Procdure e
Une procdure est une forme dinstruction compose dont e e lexcution dpend de param`tres mais qui ne retourne rien e e e (contrairement ` une fonction) : a
Sub Identificateur (DeclarationDeParametres) Instructions Exit Function End Sub
V6 (28-01-2009)
www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf
Mode de passage
Le passage de param`tre peut se faire de deux faons e c direntes : e 1. par valeur : cest une copie qui est passe en param`tre e e ` la fonction. Cette derni`re peut manipuler la copie a e mais ne peut pas modier les valeurs des variables de la routine appelantes ; 2. par rfrence : cest une copie de ladresse dune ee variable dnie dans lespace dadressage de la fonction e appelante qui est passe en param`tre. Cette fois, la e e routine appele peut modier les variables de la routine e appelantes.
V6 (28-01-2009)
www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf
Exemples
Function SquareFct( ByVal P As Integer ) As Integer P *=P le param\etre sutilise comme Return P une variable usuelle End Function Sub SquareProc( ByRef Q As Integer ) Q *=Q End Function Sub Main() Dim X,Y As Integer X=2 Y=3 X=SquareFct(X) SquareProc(Y) End Sub
La port de la dclaration dune variable est constitue par e e e lensemble dinstructions pouvant manipuler cette variable. Dans lexemple suivant :
Module essai Dim var1 As Integer Sub foo() Dim var2 As Integer End Sub Sub main() Dim var3 As Integer End Sub End Module
La variable var1 est utilisable par toutes les routines dnies dans le module. e La variable var2 nest uniquement utilisable que dans la routine foo. La variable var3 nest uniquement utilisable que dans la routine main.
V6 (28-01-2009) www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf
Rcursivit e e
Une routine rcursive est une routine qui contient un appel ` e a elle-mme e
Function FactorielleRecursive (ByVal n As ULong) As ULong If n=0 Then Return 1 ElseIf n=1 Then Return 1 Else Return n*FactorielleRecursive(n-1) End Function
V6 (28-01-2009)
www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf
Surcharge
La signature dune routine est constitue dun identicateur e et dune liste de param`tre avec de plus dune valeur de e retour pour une fonction. Il est possible dutiliser plusieurs fois le mme identicateur e pour direntes signatures. Dans ce cas, cette identicateur e est surcharg. e
Overloads Function Square (ByVal X As Integer) As Integer return X*X End Function Overloads Function Square (ByVal X As Double) As Double return X*X End Function
Lors de lappel, la premi`re version rencontre de la fonction e e correspondant aux param`tres fournis est excute. e e e
V6 (28-01-2009) www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf