Votre code source, au fur et à mesure du développement, devient de plus en plus lourd. Certains ensembles d'instructions reviennent régulièrement, ce qui rend l'écriture longue , répétitive, et le code moins clair.
Une SUB est un morceau de programme que l'on peut appeler à partir du module principal (appelées fonctions dans d'autres langages plus récents), autant de fois qu'on le souhaite.
CLS
INPUT "Votre nom: ", nom$
PRINT réponse est: " + nom$
PRINT "Question suivante:"
PRINT ""
INPUT "Votre age: ", age$
PRINT "La réponse est: " + age$
PRINT "Question suivante:"
PRINT ""
END
Nous pouvons créer une SUB pour éviter de retaper les trois instructions PRINT à chaque question:
CLS
INPUT "Votre nom: ", nom$
CALL afficher nom$
INPUT "Votre age: ", age$
CALL afficher age$
END
| SUB |
SUB afficher (variable$)
PRINT "La réponse est: ", variable$
PRINT "Questions suivante:"
PRINT ""
END SUB
|
|
Pour créer une SUB, cliquez sur "Edition", "Nouveau SUB", puis entrez le nom de la sub (sans arguments).
Dans l'appel "CALL afficher nom$", nom$ est la variable qui sera transmise à la SUB, car les variables d'un programme ne sont pas accesibles depuis les SUB.
Dans notre cas, le contenu de la variable nom$ est envoyé dans la variable variable$. On peut lui donner n'importe quel nom, ou transmettre plusieurs variables à une SUB, à conditions qu'elles soient séparées par des virgules.
EXEMPLE: CALL exemple nom$, age$, "texte", numero%
Les SUB rendent les propgrammes moins lourds, mais surtout plus clair. Abusez-en, car le module principal d'un programme QuickBasic n'a qu'une taille limitée.
Ajout du 31/03/06 :
Suite à la réaction d'un lecteur par email (Alter Ego), voici les informations qu'il souhaite ajouter :
Les sous-programmes SUB sont récursifs, ce qui signifie qu'ils peuvent s'appeler eux-mêmes.
Les variables d'un tel sous-programme sont locales (elles sont indépendantes des variables du même nom éventuellement présentent dans le reste du programme).
NOTE: L'instruction CALL est en réalité optionnelle puisqu'il est possible d'appeler un sous-programme SUB simplement en indiquant son nom; dans ce cas, les parenthèses d'encadrement doivent être omises et l'instruction DECLARE doit apparaître en début de programme.
Il ne faut pas oublier les FUNCTIONs.
Les fonctions définies avec FUNCTION sont récursives, ce qui signifie qu'elles peuvent s'appeler elle-mêmes. Les variables d'une fonction définie sont locales (elles sont indépendantes des variables contenues dans le reste du programme, mêm si leurs noms sont identiques).
À partir du moment où une fonction est définie, elle est tout à fait comparable à une fonction déjà existante de QuickBASIC (CHR$, ABS, VAL, etc.). On peut donc employer les fonctions définies par le programmeur comme n'importe laquelle de ces fonctions.