Ce qu'il faut retenir sur les sous-programmes et les fonctions:
- un sous-programme ou sub-routine ou procedure est un bout de programme, dont la déclaration commence par
SUB suivi de son nom, et qui se termine par
END_SUB.
- on peut définir des paramètres entre parenthèses.
- on appelle un sous-programme ou sub-routine ou procedure par son nom suivi de () s'il n'y a pas de paramètres, ou par des paramètres séparés par des virgules et entourés de parenthèses.
- un sous-programme est donc appelé comme une commande, sauf qu'il y a des parenthèses.
exemple:
- Code:
-
DIM I%,R
- - -
SANS_PARAMETRE()
AVEC_UN_PARAMETRE(3*I%)
AVEC_DEUX_PARAMETRES(3*I%, 7-4*R)
END
SUB SANS_PARAMETRE()
- - -
END_SUB
SUB AVEC_UN_PARAMETRE(K%)
- - -
END_SUB
SUB AVEC_DEUX_PARAMETRES(Z%, W)
- - -
END_SUB
- les paramètres (par exemple Z% et W) ne doivent pas être déclarés. Ils peuvent avoir les mêmes noms que des variables globales (variables qui sont déclarées par
DIM) mais n'affectent en aucun cas les variables globales, car ces paramètres n'ont d'existence que dans le sous-programme.
- dans un sous-programme, si dans la définition un nom de paramètre est identique au nom d'une variable globale, c'est la variable en paramètre qui est utilisée.
- enfin, ils peuvent posséder des variables locales, définies par
DIM_LOCALPour les fonctions, c'est pareil, sauf qu'elles retournent un résultat et qu'on les utilise dans des expressions ou dans des affectations.
- une fonction est définie par
FNC suivi d'un nom et se termine par
END_FNC. On peut définir des paramètres entre parenthèses.
- dans la fonction, la valeur de retour est définie par
RESULT- on appelle une fonction dans une expression ou dans une affectation par son nom suivi de () s'il n'y a pas de paramètres, ou par des paramètres séparés par des virgules et entourés de parenthèses.
- Code:
-
DIM I%,R$,A
- - -
A=SANS_PARAMETRE()
BUTTON 150+AVEC_UN_PARAMETRE%(3*I%)
CAPTION 0,"ABC"+AVEC_DEUX_PARAMETRES$(3*I%, 7-4*R$)
END
FNC SANS_PARAMETRE()
RESULT 21.89
END_FNC
FNC AVEC_UN_PARAMETRE%(K%)
RESULT K%*23
END_FNC
FNC AVEC_DEUX_PARAMETRES$(Z%, W$)
RESULT LEFT$(W$,Z%+10)
END_FNC
Les fonctions sont typées comme les variables :
- si le nom d'une fonction se termine par %, elle retourne un entier
- si le nom d'une fonction se termine par $, elle retourne une chaine de caractères
- si le nom d'une fonction se termine par une lettre ou un chiffre, elle retourne un réel
PANORAMIC permet en outre d'utiliser les sous-programmes "à l'ancienne", comme dans les BASIC des années 80...
Un sous-programme est défini par un
LABEL suivi de son nom, et se termine par
RETURNOn l'appelle par
GOSUBIl n'y a alors pas de paramètres et pas de variables locales et le sous-programme utilise les variables globales (variables définies par
DIM)