Les
Procédures
Qu'est qu'une procédure
?
C'est un sous-programme a qui l'on
donne un nom, une sorte d'instruction
supplémentaire.
Cela sert à :
- Alléger la lecture d'un
programme :
Un programme trop long est difficile
à comprendre. On va donc découper
se programme en tronçons pour
en alléger la lecture.
- Eviter les répétitions
de partie de programme. Il peut arriver
qu'une tache (une partie de programme)
se répète plusierus
fois, en créant une procédure
on écrira cette partie de programme
qu'une fois, évitant ainsi
des erreurs possibles.
Déclaration
d'une procédure
[Private | Public | Friend] [Static]
Sub nom [(arguments)]
Les procédures Sub peuvent
être récursives ;
en d'autres termes, elles peuvent faire
appel à elles-mêmes pour
exécuter une tâche.
La procédure "Toto"
est déclarée "Public"
dans un module "Bas".
Elle est visible par tous et exécutable
sous la forme : Toto
La procédure "Routine2"
est aussi déclarée
"Public".
Elle est visible par tous et exécutable
sous la forme : Form1.Routine2
La procédure "Routine1"
est déclarée "Private".
Elle n'est visible que par les
éléments contenus
dans Form1.
La procédure "Routine3"
est par défaut "Private"
et visible que par les éléments
de Form2.
|
|
Friend :Utilisé
uniquement dans un module de classe.
Indique que la procédure Sub
est visible dans tout le projet, mais
pas d'un contrôleur d'une instance
d'objet.
Static
: Indique que les variables locales
de la procédure Sub sont conservées
entre les appels. L'attribut Static
n'a aucun effet sur les variables déclarées
en dehors de la procédure Sub,
même si elles sont utilisées
dans cette dernière.
Les arguments suivent la syntaxe et
comprend les éléments
suivants :
[Optional] [ByVal | ByRef] [ParamArray]
varname[( )] [As type] [= defaultvalue]
Élément
|
Description
|
Optional |
Facultatif. Mot clé
indiquant qu'un argument n'est pas
nécessaire. |
ByVal |
Facultatif. Indique que l'argument
est passé par valeur. |
ByRef |
Facultatif. Indique que l'argument
est passé par référence.
ByRef est l'option par défaut
dans Visual Basic. |
ParamArray |
Facultatif. Utilisé exclusivement
comme dernier argument dans arglist
pour indiquer que l'argument final
est un tableau Optional contenant
des éléments de type
Variant. Le mot clé ParamArray,
qui permet d'indiquer un nombre
quelconque d'arguments, ne peut
être utilisé avec les
mots clé ByVal, ByRef ou
Optional. |
varname |
Nom de la variable représentant
l'argument. |
type Facultatif. |
Type de données de l'argument |
defaultvalue |
Facultatif. Toute constante ou
expression constante. |
exemple :
Routine publique nommée
"CreateTable", crée
une table dans une base de donnée
"Worksdata" et lui donne
pour nom le contenu de la variable
"Table".
L'appelle de cette routine se
fait ainsi dans le programme :
...
CreateTable "machin"
...
OU :
Table = "machin"
...
CreateTable Table
...
|
Public Sub CreateTable(ByVal
Table As String)
Dim Tb As TableDef
Set Tb = Worksdata.CreateTableDef(Table)
For q = 1 To 25
Tb.Fields.Append Tb.CreateField("Champ"
& Format(q), dbText, 255)
Next q
Worksdata.TableDefs.Append Tb
End Sub |
Les
Fonctions
Comme les procédures une fonction
est un ensemble d'instructions réalisant
une certaine tâche. Alors qu'une
procédure ne renvoi pas de résultat,
la fonction renvoie un résultat.
Déclaration
d'une fonction
[Public | Private | Friend] [Static]
Function nom [(arguments)] [As type]
Nous retrouvons les mêmes éléments
que dans la déclaration d'une
procédure, mais en plus nous
devons déclarer quel type de
variable la fontion doit retourner
Les Fonctions peuvent être récursives ;
en d'autres termes, elles peuvent faire
appel à elles-mêmes pour
exécuter une tâche.
Pour retourner une valeur, il suffit
d'assigner cette valeur à la
fonction à l'intérieur
du bloc d'instruction. Par exemple si
la fonction s'appelle "machin"
on écrira dans le bloc d'instruction
"machin = valeur".
Exemple, une fonction récursive
:
Cette fonction doit renvoyer
comme valeur la somme de tous
les nombres entiers inférieur
nou égal à un nombre
donné.
si n=3, retourne 3 + 2 +1
si n=10, retourne 10+9+8+7+6+5+4+3+2+1
etc...
L'appelle de cette fonction se
fait ainsi dans le programme :
...
valeur = somme(n)
...
|
Public
Function somme(ByVal n as integer)as
long
if n=1 then
somme = 1
else
somme=n+somme(n-1)
end if
End Function |
|