datos son muchos. Se le llama 'suma de verificación' (checksum).
Si un programa requiere datos mixtos (cadenas y números), se los puede combinar en una
misma lista DATA, a condición de que READ los lea en el orden correcto. Por ejemplo, si una
lista DATA contiene dos números seguidos de una cadena, la instrucción READ tendrá que leer
primero dos variables numéricas y luego una literal:
10
DIM
a(5),b(5),s$(5)
20
FOR
i=1
TO
30
READ
a(i),b(i),s$(i)
40
NEXT
50
DATA
1,7,Alfredo,3,9,Juan,2,2,Enrique,4,6,Pedro, 9, 1,
60
FOR
i=1
TO
70
PRINT
s$(i),":";a(i)*b(i)
80
NEXT
También se pueden separar los datos en dos listas distintas:
10
DIM
a(5),b(5),s$(5)
20
FOR
i=1
TO
30
READ
a(i),b(i)
40
NEXT
50
FOR
i=1
TO
60
READ
s$(i)
70
NEXT
80
DATA
1,7,3,9,2,2,4,6,9,1
90
DATA Alfredo,Juan,Enrique,Pedro,Manuel
100
FOR
i=1
TO
110
PRINT
s$(i),":";a(i)*b(i)
120
NEXT
Si ahora cambiamos el límite superior de la línea 20:
20
FOR
i=1
TO
los dos primeros intentos de leer cadenas darán '9' y 'V. Estos valores son cadenas válidas, pero
el programa no funciona como esperábamos. Una forma de asegurar que el programa funcione
correctamente consiste en incluir las líneas:
15
RESTORE
80
45
RESTORE
90
La orden RESTORE hace que el puntero de datos 'apunte' hacia el principio de la línea
especificada; por lo tanto se la puede incluir en una instrucción condicional para que el bloque de
datos leídos dependa del resultado de alguna comprobación. Por ejemplo, en un juego que esté
previsto para varios niveles de destreza, los datos de cada nivel pueden ser seleccionados
mediante una variable adecuada. Veamos un ejemplo:
1000
REM sección para dibujar la pantalla
1010
IF
nivel=1
1020
IF
nivel=2
1030
IF
nivel=3
1040
FOR
y=1
1050
FOR
x=1
1060
READ car
1070
LOCATE x,y:PRINT
5
5
5
5
5
4
THEN RESTORE
2010
THEN RESTORE
2510
THEN RESTORE
3010
TO
25
TO
40
CHR$(car);
Manual de Amstrad CPC 6128 (revisión 2008) - Página 347
Manuel