Операторы ввода исходных данных.
Оператор LET является наиболее распространенным средством однократного присвоения значения переменной. Однако он оказывается неудобным в случае присваивания значений большому числу переменных. Для этой цели служит оператор DАTА и READ. Первый из них формирует в памяти блок данных и имеет вид
DATA список констант
Например,
DATA 5, 7.35, 1Е-2
Оператор DATA может содержать любые допустимые числовые или строковые константы. Используемая строковая константа заключается в кавычки, только если она содержит разделители (запятые, двоеточия) или пробелы в начале и в конце строки; они могут идти вперемежку с числовыми константами. Например,
DATA 7.2, BASIC, 3. 14159," PROGRАM"
Оператор DATА может находиться в любом месте программы. В одной программе может быть несколько операторов DATА, которые последовательно создают один блок данных, начиная с констант, указанных в операторе DÀTА, расположенном первым в тексте программы.
В операторе DATА нельзя использовать символ подчёркивания строки для продолжения строки и записывать в строке с оператором DATA комментарий.
Значения констант из блока данных присваиваются переменным и элементам массивов с помощью оператора ввода.
READ список переменных
В процессе использования программы оператор READ считывает константы из оператора DATА в том порядке, в каком они там появляются. Например, выполнение операторов
DÀTА 5, 7.35, BАSIC, 1E-2
DÀTА 701.5, 46, 3.14153
READ N%, А, X%, B, C, D#
эквивалентно следующим присваивания:
N%=5 А=7.35: X&=BАSIC": В=1Е-2: С=70.5: М=46: D#=3.14159
Неиспользованные значения из блока данных игнорируются, а если при выполнении некоторого оператора READ оказалось, что блок данных уже исчерпан, выдается сообщение об ошибке «out of DATА» («нет данных»).
Типы переменных, указанных в операторе REАD, должны быть совместимы с типами присваиваемых им значений. Так, недопустимо, чтобы переменная была числовой, а значение - строковой или наоборот. Если и переменная, и константа являются числовыми, но их типы различаются по точности, оператора READ выполняет преобразования, аналогичные действию оператора LET.
Данные из области DATА можно считывать повторно, используя, оператор RESTORES. Например, после выполнения операторов
REАD А, В, С %
DATА 10.6, 0.1,15
RESTORE:
REАD E, F
будет. А=10.6, В=0.1, С%=15, Е=10.6,F=0.1
В BASIC существует еще один способ ввода исходных данных – ввод значения переменных с клавиатуры с помощью операторов
INPUT список переменных
Например:
INPUT A, N%, X$
Выполняя, оператор INPUT, ЭВМ вводит на экран дисплея знак вопроса. Появление этого знака означает, что пользователь программы должен ввести с клавиатуры значение каждой переменной оператора INPUT, отделив, их друг от друга запятыми. Количество и тип значений должны соответствовать количеству и типу переменных в списке оператора INPUT. После набора последнего значения следует нажать клавишу ENTER. Для указанного выше оператора INPUT на экране возможно появление строки
? 7.35; 5,BASIC
Oоператор INPUT, позволяет кроме знака вопроса (или вместо него) выводить некоторое наводящее сообщения. Текст этого сообщения должен указываться в операторе INPUT в виде строковой константы, заключённой в кавычки и отделяется от имени переменной точкой с запятой. Например, следующий оператор:
INPUТ "Скорость равна’’; v
Обеспечит появление на экране сообщения:
Скорость равна?
Если вместо точки с запятой поставить запятую, то знак вопроса не появится.
После того как пользователь нажимает клавишу ENTER, отмечая окончание ввода, производится проверка правильности вводимого сообщения. Если количество набранных пользователем значении больше или меньше числа переменных оператора INРUТ либо если пользователь вводит строковое значения числовой переменной, то выдается сообщение «? Redo from start» («Повторите ввод»). После этого сообщения осуществляется повторный ввод всех значений с самого начала строки. Операторов INРUТ может быть сколь угодно много и размещаться они могут в любом месте программы.
Упражнения
1) Определить значение переменной. С после выполнения фрагмента программы:
DATA 1., слон, 5, 6E-3
READ X, 2$, Y
C%=SQR (ABS (X-Y))
2) Перечислите через запятую значения переменных A и B, которые они примут после выполнения фрагмента программы:
READ A
DATA –1.6, 2.3
RESTORE
DATA 5.8
READ B
3) Найти значение третьего элемента массива N(3) после выполнения операторов
OPTION BASE 1
DEFINT K-0
DIM N (3)
DATA 2,3,3
READ N (1), N (2), I
N (i-1)*N (2*i-5)
4) Укажите значение переменной A после выполнения фрагмента программы INPUT X, Т
? 0.6,-1.
A%=FIX (x*t-x/t)
5) Определите значение переменной N после выполнения операторов
DATA country, man READA$, В$
С$=A$+B$
N%=LEN(С$)
Дата добавления: 2015-02-10; просмотров: 1284;