functions
Introduction
Les fonctions permettent de découper un programme en plusieurs parties. Cela évite d’avoir une grosse procédure Main().
Dans Gambas, vous disposez de deux types de « fonctions » :
-
Functions : retourne une valeur.
-
Procedures : Ne retourne aucune valeur.
Procédures
En premier lieu, vous avez déjà vu une procédure. Son nom est
Main() :-) . cette procédure est un peu spéciale car elle est la première procédure que l’interpréteur Gambas commence à lire. Voici comment définir une procédure :
Sub Nomdeprocédure (arguments)
End
Les arguments permettent de transmettre des paramètres à la procédure. Si vous n’avez pas besoin de passer d’arguments, alors vous pouvez laisser les parenthèses vides. Ceci est un exemple pour montrer comment utiliser une procédure dans un programme :
Sub disBonjour()
Print "Bonjour !"
End
Public Sub Main()
disBonjour()
End
Le résultat est :
Bonjour !
Voici un autre exemple mais avec des arguments cette fois ci :
Sub infoUtilisateur (prenom As String, age As Integer)
PRINT "Prénom : " & prenom
PRINT "Age : " & age
End
Public Sub Main()
Dim prenom As String
Dim age As Integer
Print "Comment vous appelez vous ? "
Input prenom
Print "Quel âge avez-vous ?"
Input age
infoUtilisateur (prenom, age)
End
Le résultat est :
Comment vous appelez vous ?
François
Quel âge avez-vous ?
21
Prénom : François
Age : 21
Les noms de variable peuvent être les mêmes que ceux des arguments. Comme vous pouvez le voir, Gambas n’a pas de problème avec ça :-) . Mais il important de dire que ce ne sont pas les mêmes variables _ !
Fonctions
Les fonctions agissent comme les procédures excepté qu’elles renvoient une valeur. Leur utilisation et leur définition sont les mêmes que celles des procédures. Nous devons juste indiquer quel type de valeur doit être renvoyé. Par exemple, nous allons demander un nombre à l’utilisateur, et nous afficherons le carré de ce nombre :
Public Sub Main()
Dim nombre As Integer
Print "S.V.P entrez un nombre : "
Input nombre
Print "Le carré de " & nombre & " est " & carre(nombre)
End
Function carre (nombre As Integer) As Integer
Return nombre * nombre 'indique la valeur que la fonction renvoie.
End
Pour obtenir la valeur renvoyée par la fonctions, vous devez déclarer une variable pour stocker le résultat.
Accessibilité
La procédure Main() est précédée par le mot clé
PUBLIC. Pour cette procédure, C’est sa signature. Mais pour les procédures que vous définissez vous-même, ce mot clé permet de définir l’accessibilité de votre procédure. C.a.d. , si vous avez plusieurs modules Gambas, qui vous permet d’appeler ces procédures depuis d’autres modules.
Cependant, si vous voulez que les procédures et fonctions soient uniquement appelées depuis le module même, vous devez indiquer le mot clé
PRIVATE en face de vos procédures et fonctions.