ГЛАВА 6
ОПЕРАТОРЫ READ, DATA и RESTORE
Краткое содержание: READ, DATA, RESTORE
В некоторых предыдущих программах мы видели, что информация или
данные могут быть введены в компьютер при помощи оператора INPUT.
Иногда это может быть очень утомительно, особенно если многие данные
повторяются каждый раз при выполнении программы. Вы можете сэко-
номить много времени, используя команды READ, DATA и RESTORE.
Например:
10 READ a,b,c
20 PRINT a,b,c
30 DATA 10,20,30
40 STOP
Оператор READ состоит из слова READ за которым следует список
имен переменных, разделенных запятыми. Он выполняется значительно эф-
фективнее оператора INPUT, особенно когда вводимые значения
присваиваются переменным.В этом случае компьютер ищет величины пере-
менных в утверждении DATA.
Каждый оператор DATA - это список значений (числовых или строчных)
разделенных запятыми. Вы можете вводить их где Вам угодно в программе,
так как компьютер игнорирует их, за исключением тех случаев, когда их
использует оператор READ.
Вы должны представить себе выражение для всех операторов DATA в
программе, что позволит Вам вводить совместно формы одной длины
списка выражений (списка DATA). Сначала компьютер выбирает первое зна-
чение из списка DATA для величины из оператора READ, в следующий раз
он берет второе значение из списка DATA, и, таким образом, выбираемые
последовательно операторы READ обрабатывается с использованием
списка DATA.(Если оказалось, что список просмотрен до конца, то возника-
ет ошибка). Заметьте для себя, что является бесполезным введение операто-
ра DATA а виде управляющего оператора, так как оператор READ не
обнаружит его. Оператор DATA выполняется только в программе.
Можно посмотреть, как эти требования выполнены в весьма характер-
ной программе:
• строка 10 даёт указание компьютеру читать три значения данных и
присвоить их переменным a, b и с;
• строка 20 говорит о том, что надо вывести (PRINT) три значения;
• в строке 30 оператор DATA задаёт значения для a, b и с;
• строка 40 заканчивает программу.
Информация в операторе DATA может быть частью FOR... NEXT цикла.
Например:
lOFORn-1 ТО 6
20 READ d
30 DATA 2,4,6,8,10,12
40 PRINT d
50 NEXT n
60 STOP
Когда выполняется эта программа, то можно увидеть, как READ опера-
тор перебирает весь список DATA.
Оператор DATA может содержать также и строчные переменные.
Например:
10 READ d$
20 PRINT "The data is",d$
30 DATA "June 1-st, 1982"
40 STOP
Это простой способ получения выражений из DATA списка: старт и вы-
полнение от начала до тех пор, пока не будет достигнут конец. Однако Вы
можете использовать и программный переход для DATA списков, используя
оператор RESTORE. В этом случае используется оператор RESTORE с ука-
занием после него номера строки с оператором DATA, и все последователь-
но встречающиеся в программе операторы READ вводят данные подряд,
начиная с первого оператора DATA. Вообще-то Вы можете не указывать но-
мер строки в операторе RESTORE, и , в этом случае, указатель данных ста-
новится на первый оператор в программе.
Попробуйте выполнить такую программу:
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
В этой программе переменным вводимым в строке 10 будут присвоены
значения а - 1 и b - 2. Оператор RESTORE 10 сбрасывает указатель данных
в начальное положение и строка 40 присвоит значения переменным х, у, z
начиная с первого значения в DATA.
Выполните программу без строки 30 и Вы увидите сами, что из этого
получится.