Section courante

A propos

Section administrative du site

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

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 :

  1. 20 INPUT a: CLS
  2. 36 INPUT "Devinez le nombre",b
  3. 46 IF a=b THEN PRINT "Correct": STOP
  4. 50 IF a<b THEN GO SUB 100
  5. 60 IF a>b THEN GO SUB 100
  6. 70 GO TO 30
  7. 100 PRINT "Essayer a nouveau"
  8. 110 RETURN

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 :

  1. 100 LET x=10
  2. 110 GO SUB 500
  3. 120 PRINT s
  4. 130 LET x=x+4
  5. 140 GO SUB 500
  6. 150 PRINT s
  7. 160 LET x=x+2
  8. 170 GO SUB 500
  9. 180 PRINT s
  10. 190 STOP
  11. 500 LET s=0
  12. 510 FOR y=1 TO x
  13. 520 LET s=s+y
  14. 530 NEXT y
  15. 540 RETURN

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.



Dernière mise à jour : Mercredi, le 19 avril 2023