DEF FN |
Définition de fonction |
---|---|
ST BASIC |
Syntaxe
DEF FN functionname[(parameter,parameter)] = definition |
Description
Cette instruction permet de définir une fonction.
Remarques
- L'instruction DEF FN vous permet de définir votre propre fonction ST BASIC à utiliser dans un programme. Le nom de la fonction peut être n'importe quel nom de variable autorisé.
- La liste des variables entre parenthèses est facultative. Vous pouvez utiliser n'importe quel type de variable à l'exception des tableaux. Ces variables sont locales à la fonction que vous définissez et n'affectent pas les variables du même nom ailleurs dans le programme. Les variables entre parenthèses peuvent être considérées comme des espaces réservés pour les valeurs que vous transmettez à la fonction lorsque vous l'appelez. Les valeurs que vous transmettez à votre fonction doivent correspondre à celles entre parenthèses en type et en nombre.
- Vous pouvez utiliser toutes les variables globales de votre programme dans la définition de fonction. Ils seront traités exactement comme l'indique la définition de la fonction. Si vous modifiez leurs valeurs dans la fonction, ils prendront leurs nouvelles valeurs tout au long du programme.
- La définition est une expression définissant ce que fait la fonction. La description est limitée à une ligne de programme. Si le nom de la fonction inclut une spécification de type, telle que FNA$, la définition ne peut pas entrer en conflit avec ce type. Les paramètres passés à la fonction (entre parenthèses) doivent également être conformes à ce type.
Exemples
Voici un exemple typique de l'utilisation de l'instruction DEF FN :
- 10 DEF FNA=A*2+5
L'exemple suivant montre une combinaison de plusieurs DEF FN :
- 10 INPUT "LARGEUR DU MATERIAU EN POUCES"; MATERIAL.WIDTH
- 20 INPUT "LARGEUR DU SEUIL DE FENETRE EN POUCES"; WINDOW.WIDTH
- 30 PANELS.NEEDED=WINDOW.WIDTH/MATERIAL.WIDTH
- 40 INPUT "LONGUEUR DU SEUIL DE FENETRE EN POUCES"; WINDOW.LENGTH
- 50 YARDAGE.NEEDED=PANELS.NEEDED*WINDOW.LENGTH
- 60 INPUT "PRIX DU MATERIEL PAR CHANTIER"; PRICE.YARD!
- 70 DEF FNSLACK=YARDAGE.NEEDED/15+YARDAGE.NEEDED
- 80 DEF FNCOST!=(PRICE.YARD!/36)*FNSLACK
- 90 PRINT "VOUS AVEZ BESOIN ";FNSLACK;" POUCES DE ";MATERIAL.WIDTH;" MATERIEL EN POUCES.":PRINT "VOTRE COUT EST:"; FNCOST!
- 100 DEF FNINYARDS=FNSLACK/36
- 110 PRINT FNSLACK; " POUCES EN CHANTIERS EST ";FNINYARDS
- RUN
on obtiendra le résultat suivant :
LARGEUR DU MATERIAU EN POUCES? 30LARGEUR DU SEUIL DE FENETRE EN POUCES? 60
LONGUEUR DU SEUIL DE FENETRE EN POUCES? 60
PRIX DU MATERIEL PAR CHANTIER? 2.00
VOUS AVEZ BESOIN 128 POUCES DE 30 MATERIEL EN POUCES.
VOTRE COUT EST: 7.11111
128 POUCES EN CHANTIERS EST 3.55555
Ok
Dernière mise à jour : Vendredi, le 7 Août 2020