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.