La sentencia GO TO 30 de la línea 70, y la sentencia STOP del programa siguiente, son
muy importantes; si no fuera por ellas, los programas entrarían en las subrutinas y se pro
duciría un error ('7 RETURN sin GO SUB') al llegar a la sentencia RETURN.
El siguiente programa utiliza una subrutina (líneas 100 a 150) que escribe la tabla de multi
plicar correspondiente al parámetro n. La orden GO SUB 100 que invoca la subrutina
puede estar en cualquier lugar del programa. Cuando BASIC encuentra la orden RE
TURN en la línea 150 de la subrutina, el control retorna al programa principal, que conti
núa funcionando a partir de la sentencia siguiente a aquélla en que se encontraba el GO
SUB original. Al igual que ocurría con GO TO, se puede escribir GO SUB en una sola
palabra: GOSUB.
10 REM Tabla de multiplicar del 2. el 5. el 10 y el 11
20 LET n=2: GO SUB 100
30 LET n=5: GO SUB 100
40 LET n=10: GO SUB 100
50 LET n=11: GO SUB 100
60 STOP
70 REM Fin del programa principal. comienzo de la subrutina
100 PRINT "Tabla de multiplicar por ";n
110 FOR v=1 TO 9
120 PRINT v;" x ";n;" = ";v*n
130 NEXT v
140 PRINT
150 RETURN
Una subrutina puede invocar a otra, o incluso a sí misma. (Una rutina que se invoca a
'sí misma es una rutina
recursiva).
Capitulo 8. Guía de programación en +3 BASIC
74