Manual de Basic Spectrum 48k. |
Capítulo 5
SubrutinasResumen
A veces, partes diferentes del programa tendrán tareas bastante similares que realizar y se encontrará tecleando las mismas líneas en dos o más ocasiones; sin embargo, ello no es necesario. Puede teclear las líneas una sola vez, en una forma conocida como una subrutina, y luego utilizarlas, o llamarlas, en cualquier lugar del programa sin necesidad de volverlas a introducir por el teclado. Para realizar esta operación, utilice las sentencias GO SUB (GO a SUBrutina) y RETURN. Ello adopta la forma: GO SUB n
en donde n es el número de línea de la primera línea en la subrutina. Es lo mismo que GO TO n con la salvedad de que el ordenador recuerda en donde estaba la sentencia GO SUB, de modo que pueda retornar después de realizar la subrutina. Lo hace poniendo el número de línea y el número de la sentencia dentro de la línea (juntos constituyen la dirección de retorno) en la parte superior de una pila (la pila GO SUB). RETURN
toma la dirección de retorno superior de la pila GO SUB y la lleva a la sentencia que la sigue. A título de ejemplo, vuelva a examinar el programa para adivinar números. Vuelva a teclear lo siguiente:
La sentencia GO TO en la línea 70 es muy importante porque, de no ser por ella, el programa pasará en su ejecución a la subrutina y se producirá un error (7 RETURN without GO SUB - Return sin GO SUB) cuando se llegue a la sentencia RETURN. Veamos otro programa bastante sencillito que ilustra el empleo de GO SUB,
Cuando se ejecute este programa, vea si puede determinar lo que está sucediendo. La subrutina comienza en la línea 500. Una subrutina puede llamar a otro o incluso a sí misma (en este último caso, se llama recursivo). |
Manual de Basic Spectrum 48k. |