Les sous-programmes
Parfois, différentes parties du programme auront des tâches assez similaires à faire, et vous vous retrouverez à taper les mêmes lignes deux fois ou plus ; Toutefois, ce n'est pas nécessaire. Vous pouvez taper les lignes une fois, sous une forme connue sous le nom de sous-programme, puis les utiliser ou les appeler n'importe où ailleurs dans le programme sans avoir à les retaper. Pour ce faire, vous utilisez les instructions GO SUB (abréviation de l'anglicisme GO to SUBroutine) et RETURN.
Cela prend la syntaxe suivante :
GO SUB n |
où n est le numéro de ligne de la première ligne du sous-programme. C'est exactement comme GO TO n sauf que l'ordinateur se souvient de l'endroit où se trouvait l'instruction GO SUB afin qu'il puisse revenir après avoir exécuté la sous-routine. Pour ce faire, il place le numéro de ligne et le numéro d'instruction dans la ligne (ensemble, ils constituent l'adresse de retour) au-dessus d'une pile d'entre eux (la pile GO SUB) :
RETURN |
prend l'adresse de retour supérieure de la pile GO SUB et passe à l'instruction la suivant.
À titre d'exemple, regardons à nouveau le programme de devinettes de nombres. Retapez-le comme suit :
L'instruction GO TO à la ligne 70 est très importante car sinon le programme s'exécutera dans le sous-programme et provoquera une erreur (7 RETURN without GO SUB) lorsque l'instruction RETURN est atteinte.
Voici un autre programme plutôt simpliste illustrant l'utilisation de GO SUB :
Lorsque ce programme est exécuté, voyez si vous pouvez comprendre ce qui se passe. Le sous-programme commence à la ligne 500.
Une sous-routine peut heureusement en appeler une autre, ou même elle-même (une sous-routine qui s'appelle elle-même est récursive), alors n'ayez pas peur d'avoir plusieurs couches.