Descargar Imprimir esta página

AMSTRAD sinclair ZX Spectrum +3 Manual Del Usario página 81

Publicidad

Otra cosa que hay que evitar es saltar al interior de un bucle
FOR. . . NEXT
desde fuera
de él. BASIC sólo prepara correctamente la variable de control cuando ejecuta su senten­
cia
FOR;
si el ordenador no ejecuta una sentencia
FOR,
la sentencia
NEXT
lo dejará com­
pletamente confundido. La consecuencia más probable es el mensaje de error
'NEXT
sin
FOR',
o bien
'VARIABLE NO DEFINIDA'.
Nada impide utilizar un bucle
FOR. . . NEXT
en una orden directa. Por ejemplo, pruebe
la
siguiente:
FOR
m=O
TO 10: PRINT
m:
NEXT
m
Hay una forma (un tanto artificial) de repetir automáticamente una orden directa. (Re­
cuerde que
GO TO
necesita un número de línea, yeso es lo que una orden directa no puede
tener.) Por ejemplo,
FOR
m=O
TO 1 STEP
O:
INPUT
a:
PRINT
a:
NEXT
m
El hecho de que el paso sea O hace que la orden se repita indefinidamente.
Pero este método no es muy recomendable: si se produce un error se pierde la orden y
hay que volver a escribirla; además,
CONTINUE
no funcionará en este caso.
Ejercicios
. .
1.
Asegúrese de que entiende perfectamente que una variable de control no sólo tiene un
nombre y un valor, como una variable ordinaria, sino además un límite, un paso y una
conexión con la sentencia
FOR
correspondiente.
Por otra parte, cuando se ejecuta la
sentencia
FOR,
toda esta información se encuentra disponible y es suficiente para que
la sentencia
NEXT
sepa cómo tiene que modificar el valor de la variable, si debe o no
repetir el bucle y, de ser así, a qué línea tiene que saltar.
2. Ejecute el tercer programa de esta sección y luego dé la orden:
PRINT
e
¿Por qué la respuesta es 6 y no 5?
(Respuesta: la orden
NEXT
de la línea 60 es ejecutada cinco veces, yen cada una de
ellas suma 1 a c. La última vez e se convierte en 6; por eso la orden
NEXT
decide no
repetir el bucle, sino continuar, ya que e ha sobrepasado el límite).
3. ¿Qué ocurre si ponemos
STEP 2
al final de la línea 20 del tercer programa? Pruebe
con
STEP 10.
Ahora modifique el tercer programa de forma que, en lugar de sumar automáticamente
los cinco números, pregunte al usuario cuántos quiere sumar. Al ejecutar este progra ­
ma, ¿qué ocurriría
si
usted respondiese con un O
(10
que significaría que no quiere su­
mar ningún número)? ¿Cree que esto le causaría algún problema al +3, aun estando
claro lo que usted quiere decir?
Sección 4. Bucles
71

Publicidad

loading