Puesto que todas las funciones están ahora en subrutinas (controladas por la instrucción ON el
GOSUB), tienen que terminar en una instrucción RETURN. De ahí que hayamos incluido las
líneas 85, 125, 170 y 200.
¿Recuerda para qué sirve RETURN? Hace que BASIC retorne de la subrutina a la instrucción
siguiente a aquella que invocó la subrutina. En nuestro caso, el punto de retorno es la instrucción
siguiente a la línea 38, que es la línea 40. Si dejamos que esto ocurra, el programa entra en la
subrutina de 'Introducción de datos'. Para impedirlo añadimos la línea
39
GOTO
32
que reconduce el programa al menú.
Ejecute el programa y vea cuánto hemos progresado.
Bien; vamos a echar un vistazo al listado. (Detenga el programa pulsando [ESC] dos veces.)
Escriba:
LIST
Esto es lo que tenemos por el momento:
10
REM guia de telefonos
20
DIM
NOMBRE$(100)
30
DIM
TEL$(100)
32
PRINT
"1. Introd. datos"
33
"2. Listado"
PRINT
34
"3. Busqueda"
PRINT
35
PRINT
"4. Grabar datos"
36
PRINT
"5. Cargar datos"
37
INPUT
"Elija una opcion (1-5)
38
ON el GOSUB
39
GOTO
32
40
FOR
x=1
TO
45
CLS
47
PRINT"Pulse [RETURN] para terminar"
50
INPUT;" Nombre
55
IF
NOMBRE$(x)=""
60
INPUT;" Telefono
70
NEXT
80
PRINT
"Fin de la entrada de datos"
85
RETURN
90
FOR
x=1
TO
95
IF
NOMBRE$(x)=""
100
PRINT
NOMBRE$(x);"
110
NEXT
120
PRINT
"Fin de la lista"
125
RETURN
130
INPUT
"Buscar
140
FOR
x=1
150
IF
INSTR(NOMBRE$(x),BUSCA$)=0
160
PRINT
NOMBRE$(x);"
170
END
180
NEXT
190
PRINT"No lo encuentro"
40,90,130
100
";NOMBRE$(x)
THEN
80
";TEL$(x)
100
THEN
120
";TEL$(x)
";BUSCA$
TO
100
";TEL$(x)
Manual de Amstrad CPC 6128 (revisión 2008) - Página 102
";el
180
THEN