FUNCTION |
Fonction |
---|---|
QuickBASIC/QBasic |
Syntaxe
FUNCTION nom [(listeArg)] [STATIC] [instructions] nom = expression [instructions] END FUNCTION |
Paramètres
Nom | Description |
---|---|
nom | Ce paramètre permet d'indiquer le nom de la fonction. Le même nom doit être utilisé pour retourner la valeur de la fonction. |
listeArg | Ce paramètre permet d'indiquer les arguments de la fonction. La liste d'arguments doit avoir la syntaxe suivante : variable[( )] [AS type] [, variable[( )] [AS type]]... |
instructions | Ce paramètre permet d'indiquer les instructions à exécuter lorsqu'on appel cette fonction. |
expression | Ce paramètre permet d'indiquer la valeur a retourner par la fonction. |
STATIC | Ce paramètre permet d'indiquer que les variables locales doivent conservés leurs valeurs mêmes une fois sortie de la fonction. |
Description
Cette instruction permet de définir une fonction.
Remarques
- Un paramètre listeArg a la syntaxe suivante :
- Une procédure FUNCTION est comme une procédure SUB : elle peut accepter des paramètres, exécuter une série d'instructions et modifier les valeurs de ses paramètres. Contrairement à un SUB, une FUNCTION est utilisée dans une expression de la même manière qu'une fonction intrinsèque QBASIC ou QuickBASIC.
- Comme les procédures SUB, les procédures FUNCTION utilisent des variables locales. Toute variable ne figurant pas dans la liste de paramètres est locale à FUNCTION, sauf si elle est déclarée comme variable partagée dans une instruction SHARED, ou à moins que la variable n'apparaisse dans une instruction DIM ou COMMON avec l'attribut SHARED.
- Pour renvoyer une valeur à partir d'une fonction, affectez la valeur au nom de la fonction. Par exemple, dans une fonction nommée RechercheBinaire, vous pouvez affecter la valeur de la constante FAUX au nom pour indiquer que la valeur n'a pas été trouvée :
- L'utilisation du mot-clef STATIC augmente légèrement la vitesse d'exécution. Le paramètre STATIC n'est généralement pas utilisé avec les procédures FUNCTION récursives.
- L'instruction EXIT FUNCTION fournit une sortie alternative d'une FUNCTION. Voir l'instruction EXIT.
- Étant donné que BASIC peut réorganiser les expressions arithmétiques pour atteindre une plus grande efficacité, évitez d'utiliser des procédures FUNCTION modifiant les variables de programme dans les expressions arithmétiques. Évitez également d'utiliser des procédures FUNCTION effectuant des entrées/sorties dans des instructions d'entrées/sorties.
- Les procédures FUNCTION de QBASIC ou QuickBASIC sont récursives - elles peuvent s'appeler elles-mêmes pour exécuter une tâche donnée.
variable[( )][AS type][,variable[()][AS type]] |
Une variable est une variable QBASIC ou QuickBASIC valide. Le type facultatif peut être INTEGER, LONG, SINGLE, DOUBLE, STRING ou un type défini par l'utilisateur. Les versions antérieures de QBASIC ou QuickBASIC nécessitaient le nombre de dimensions entre parenthèses après un nom de tableau. Le nombre de dimensions n'est plus nécessaire. Seules les parenthèses sont nécessaires pour indiquer que le paramètre est un tableau. Par exemple, l'instruction suivante indique que les MotsClefs$ et MotClefTypes sont des tableaux :
FUNCTION ParseLine(MotsClefs$(),MotClefTypes())
FUNCTION RechercheBinaire(...)
CONST FAUX=0
' :
' Valeur introuvable. Renvoie une valeur FAUX.
IF Inferieur > Superieur THEN
RechercheBinaire=FAUX
EXIT FUNCTION
END IF
' :
END FUNCTION
Exemple
Voici un exemple permettant d'afficher le logarithme inférieurs à 2 en utilisant le mot réservé «FUNCTION» :
on obtiendra le résultat suivant :
LOG(0.100000)=-2.302585LOG(0.200000)=-1.609438
LOG(0.300000)=-1.203973
LOG(0.400000)=-0.916291
LOG(0.500000)=-0.693147
LOG(0.600000)=-0.510826
LOG(0.700000)=-0.356675
LOG(0.800000)=-0.223143
LOG(0.900000)=-0.105360
LOG(1.000000)=0.000000
LOG(1.100000)=0.095310
LOG(1.200000)=0.182322
LOG(1.300000)=0.262364
LOG(1.400000)=0.336472
LOG(1.500000)=0.405465
LOG(1.600000)=0.470004
LOG(1.700000)=0.530628
LOG(1.800000)=0.587787
LOG(1.900000)=0.641854
Voir également
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - DECLARE
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - DEF FN
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - EXIT
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - SHARED
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - STATIC
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - SUB