Manual de Basic Spectrum 48k.

Capítulo 6

READ, DATA, RESTORE

Resumen

  • READ, DATA, RESTORE.

En algunos programas anteriores, vimos que la información, o datos, puede introducirse directamente en el ordenador con el empleo de la sentencia INPUT. A veces, ello puede ser muy tedioso, sobre todo si muchos datos se repiten cada vez que se ejecuta el programa. Puede ahorrar mucho tiempo utilizando los comandos READ, DATA y RESTORE. Por ejemplo:

10 READ a,b,c
20 PRINT a,b,c
30 DATA 10,20,30
40 STOP

Una sentencia READ está constituida por READ seguida de una lista de nombres de variables, separados por comas. Actúa de forma bastante similar a una sentencia INPUT, salvo que en lugar de hacerle introducir por el teclado los valores asignados a las variables, el ordenador busca los valores en la sentencia DATA.

Cada sentencia DATA es una línea de expresiones, númericas o de cadenas, separadas por comas. Puede ponerlas en cualquier lugar que desee en un programa, porque el ordenador las ignora salvo cuando está realizando una sentencia READ. No obstante todas las sentencias DATA en el programa suelen ponerse juntas para formar una larga lista de expresiones, la lista de datos. La primera vez que el ordenador llega a la función READ de un valor, toma la primera expresión de la lista DATA; la siguiente vez, toma la segunda ,así, a medida que encuentra las sucesivas sentencias READ, abre su camino a través de la lista de DATA (si intenta ir más allá del final de dicha lista, se producirá un error).

Observe que es una pérdida de tiempo poner las sentencias DATA en un comando directo, porque READ no las encontrará. Las sentencias DATA han de ir en el programa.

Veamos cómo se encajan juntas en el programa que acaba de introducir por el teclado. La línea 10 dice al ordenador que efectúe la lectura de tres elementos de datos y los asigne a las variables a, b y c. La línea 20 le dice que imprima (PRINT) estas variables. La sentencia DATA en la línea 30, da los valores de a, b y c. La línea 40 detiene el programa. Para ver el orden en que se realizan las cosas, cambie la línea 20 a:

20 PRINT b,c,a

La información en DATA puede ser parte de un bucle FOR ... NEXT. Teclee:

10 FOR n=1 TO 6
20 READ D
30 DATA 2,4,6,8,10,12
40 PRINT D
50 NEXT n
60 STOP

Cuando este programa se ejecuta (RUN), puede ver a la sentencia READdesplazarse a través de la lista de DATA. Las sentencias DATA pueden contener también variables de cadena.Por ejemplo:

10 READ d$
20 PRINT "La fecha es",d$
30 DATA "1 junio 1982"
40 STOP

Esta es la forma sencilla de buscar expresiones a partir de la lista de DATA: Comenzar por el principio y seguir a través de ella hasta que llegue al final. Sin embargo, puede hacer que el ordenador salte a cualquier lugar en la lista de DATA, con el empleo de la sentencia RESTORE. Esta sentencia está constituida por RESTORE seguida por un número de línea y hace que las subsiguientes sentencias READ comiencen la lectura de sus datos a partir de la primera sentencia DATA, o después del número de línea dado (puede pasar por alto el número de línea, en cuyo caso es como si hubiera tecleado el número de la primera línea en el programa).

Pruebe este programa:

10 READ a,b
20 PRINT a,b
30 RESTORE 10
40 READ x,y,z
50 PRINT x,y,z
60 DATA 1,2,3
70 STOP

En este programa, los datos requeridos por la línea 10 hacen a=1 y b=2. La instrucción RESTORE 10 restaura las variables y permite que sean objeto de lectura (READ) las variables x,y y z comenzando a partir del primer número en la sentencia DATA. Vuelva a ejecutar este programa sin la línea 30 y vea lo que sucede.

Manual de Basic Spectrum 48k.