Vous êtes sur la page 1sur 9

Programmation structure e en Visual Basic Fonctions et procdures e

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

Programmation structure e en Visual Basic Fonctions et procdures e

Licence Universit Lille 1 e Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr

Premi`re anne DEUST 2008-09 e e

V0 (28-01-2009)

www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf

Programmation structure e en Visual Basic Fonctions et procdures e

Fonction
Une fonction est une forme dinstruction compose dont e lexcution dpends de param`tres : e e e

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

Function Identificateur (DeclarationParametres) As TypeDeRetour Instructions Affectation dIdentificateur Exit Function End Function

Par exemple, on peut calculer la somme de 2 entiers avec le code suivant :

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

Programmation structure e en Visual Basic Fonctions et procdures e

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

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

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

On peut utiliser la fonction Convert.ToInt32 pour convertir une cha en entier. ne


V6 (28-01-2009) www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf

Programmation structure e en Visual Basic Fonctions et procdures e

Procdure e

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

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

Programmation structure e en Visual Basic Fonctions et procdures e

Mode de passage

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

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

Programmation structure e en Visual Basic Fonctions et procdures e

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

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

Attention, sans prcision sur le type de passage : e


Function SquareFct( P As Integer ) As Integer

vb le suppose du type ByRef ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !


V6 (28-01-2009) www.l.univ-lille1.fr/sedoglav/VisualBasic/Cours03.pdf

Programmation structure e en Visual Basic Fonctions et procdures e

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

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

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

Programmation structure e en Visual Basic Fonctions et procdures e

Rcursivit e e

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

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

Programmation structure e en Visual Basic Fonctions et procdures e

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

Fonction Procdures e Passage de param`tres e Complments e


Port de dclaration e e Rcursivit e e Surcharge

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

Vous aimerez peut-être aussi