DEF FN |
Définir une fonction |
---|---|
Turbo Basic |
Syntaxe
DEF FNnom(variable)=formule |
DEF FNnom(variable) instruction FNnom = valeuretour END DEF |
Paramètres
Nom | Description |
---|---|
nom | Ce paramètre permet d'indiquer le nom de la fonction |
variable | Ce paramètre permet d'indiquer le nom de la variable utilisé dans la formule |
formule | Ce paramètre permet d'indiquer la formule a employé dans la fonction |
instruction | Ce paramètre permet d'indiquer les instructions a exécuter dans la fonction |
valeuretour | Ce paramètre permet d'indiquer la valeur que cette fonction doit retourner |
Description
Cette commande permet de définir une fonction.
Remarques
- Le paramètre nom est le nom unique à associer à la fonction et doit respecter les conventions de dénomination applicables aux étiquettes et aux variables (c'est-à-dire une lettre suivie d'un nombre quelconque de lettres et/ou de chiffres). Le paramètre variable est une séquence facultative de paramètres formels, délimitée par des virgules. Les paramètres utilisés dans la liste de paramètres servent uniquement à définir la fonction: ils n'ont aucun lien avec les autres variables du programme portant le même nom.
- Les instructions DEF FN et END DEF fixent et nomment un groupe d'instructions du type sous-programme appelé fonction. Une fonction peut être facultativement passée un ou plusieurs paramètres par valeur. Les fonctions retournent une valeur (dont le type est contrôlé par le nom de la fonction, comme s'il s'agissait d'une variable) et peuvent donc être appelées à partir de toute instruction pouvant accepter une valeur du type approprié.
- Définitions de fonctions et déroulement du programme : La position des définitions de fonction est immatérielle. Une fonction peut être définie à la ligne 1 ou à la ligne 1 000 d'un programme sans se soucier de l'endroit où elle est utilisée; et vous n'avez pas besoin de diriger programme comme via une fonction par étape d'initialisation (comme vous devez le faire avec des fonctions monolignes dans l'interpréteur BASIC). Le compilateur voit vos définitions où qu'elles se trouvent.
- En outre, contrairement aux sous-programmes, l'exécution ne peut pas tomber accidentellement dans une fonction. En ce qui concerne le chemin d'exécution d'un programme, les définitions de fonctions et de procédures sont invisibles.
- Les définitions de fonction doivent être traitées comme des îlots de code isolés. Ne sautez pas dedans ou sortez-les avec les instructions GOTO, GOSUB ou RETURN. Dans les définitions, cependant, ces déclarations sont autorisés.
- Notez que les définitions de fonctions et de procédures peuvent ne pas être imbriquées; c'est-à-dire qu'il est illégal de définir une procédure ou une fonction dans une procédure ou une fonction (bien qu'une définition de procédure ou de fonction puisse contenir des appels à d'autres procédures et fonctions).
- Déclaration de variables locales (fonctions multilignes uniquement) : Pour déclarer des variables locales dans une fonction, utilisez l'instruction LOCAL avant toute instruction exécutable dans la définition.
- Variables statiques et partagées : Par défaut, les variables apparaissant dans les définitions de fonction ont l'attribut SHARED; c'est-à-dire qu'ils sont globaux pour le reste du programme. Comme cette valeur par défaut est sujette à modification, vous devez vous efforcer de déclarer chaque variable utilisée dans une fonction.
- Déclarez des variables avec l'attribut STATIC s'il est important qu'une variable ne perde pas sa valeur à chaque appel, et pourtant, elle ne peut être modifiée que dans la fonction.
- Une définition de fonction multiligne inclut généralement une affectation à l'identificateur de fonction et doit être terminée par END DEF. Si vous choisissez de ne pas inclure d'affectation à l'identificateur de fonction, la valeur renvoyée par la fonction n'est pas définie.
- Utilisez l'instruction EXIT DEF pour renvoyer une fonction étant ailleurs qu'à la fin.
Exemple
Voici un exemple d'une fonction «teste» retourner 50 à l'écran :
- DEF FNteste(a)
- FNteste = a * 10
- END DEF
-
- PRINT FNteste(5)
on obtiendra le résultat suivant :
50Références
INFOGUIDE - Turbo Basic, Editions P.S.I., Bénédicte Hudault, 1988, ISBN: 2-86595-531-1, page 72
Dernière mise à jour : Mardi, le 28 juillet 2015