Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Любая программа обладает возможностью обмена информацией с внешними устройствами. В качестве внешних (терминальных) устройств могут быть дисплей, дисковод с дисками, печатающее устройство, телетайп, перфоратор и т. д. В этой главе ограничимся лишь изложением ввода данных с клавиатуры дисплея в память ЭВМ и выводом данных из памяти на экран дисплея (функции ввода и вывода будут дополнены в гл. 13).
Клавиатура и дисплей - стандартные устройства ввода и вывода,
Для ввода и вывода данных в языке ПАСКАЛЬ предусмотрены стандартные встроенные программы, которые называются процедурами. Процедура ввода вызывается с помощью оператора ввода READ, процедура вывода — с помощью оператора вывода WRITE.
Необходимо отметить, что ввод и вывод данных зависят от конкретной реализации ЭВМ. Рассмотрим ДВК.
Оператор ввода служит для ввода данных в процессе выполнения программы. При этом значения вводимых данных присваиваются переменным. Данные могут быть разбиты на отдельные строки.. Признаком конца строки является нажатие клавиши ВК.
Различают три вида оператора ввода:
а) READ (a1, a2, а3,..., аn) — каждое вводимое значение присваивается последовательно переменным a1, a2, а3,..., аn.
б) READLN (а1, а2, а3,..., аn) — каждое вводимое значение присваивается последовательно переменным а1, а2, а3,..., аn, после чего
происходит переход на новую строку (следующий оператор ввода будет вводит данные с новой строки);
в) READLN - переход на новую строку при вводе данных. Последовательно расположенные операторы вида а) и в) эквивалентны одному оператору б).
В языке ПАСКАЛЬ допускается вводить целые, действительные и символьные данные. Логические данные вводить не разрешается. Существует различие между вводом числовых и символьных данных, поэтому рассмотрим ввод этих данных отдельно.
Ввод числовых данных. Числовые данные, целые и действительные, должны разделяться пробелом (пробелами) или возвратом каретки ВК. Пробелы и ВК игнорируются перед числом.
Пример ввода:
VAR A,B,C:REAL;
K,T:INTEGER;
...
READ(A,B,C);
READLN;
READ(K,T);
После набора на экране дисплея всей программы и запуска ее на выполнение происходит останов машины при встрече READ (А, В, С). На клавиатуре ЭВМ необходимо набрать три действительных числа, затем с новой строки (выполняется оператор READLN) - два целых тела соответственно оператору READ (К, Т). Например,
0.5 6.23 - 7.1 ВК
3 48 ВК
Здесь ВК означает конец вводимой строки данных(см.приложение1). При этом переменные получат следующие значения:
А = 0.5, В = 6.23, С = - 7.1, К = 3, Т =48,
и выполнение программы продолжится.
Числа можно отделять друг от друга не только пробелами, но и ВК, например:
0.5 ВК
6.23 ВК
- 7.1 ВК
3 ВК
48 ВК
т. е. каждое число вводится с новой строки.
Однако будет ошибкой ввод чисел в одну строку:
0.5 6.23 -7.1 3 48 ВК
гак как после выполнения оператора READ (А, В, С) выполняется оператор перехода на новую строку READLN и четвертое число (3) должно быть набрано только с новой строки. Рассмотренные три оператора ввода
READ(А,В,С);
READLN;
READ(К,Т);
полностью эквивалентны следующим двум операторам:
READLN(А,В,С);
READ(K,T);
Необходимо отметить, что оператор ввода позволяет в процессе выполнения программы вводить любые другие значения данных. При этом программа не изменяется, а переменные принимают другие значения, например:
8.45 6.0 3.2 ВК
16 45 ВК
Ввод символьных данных. Ввод символьных данных имеет особенности. Поскольку пробел, как и любой символ языка ПАСКАЛЬ, относится к символьным данным, символьные данные вводятся сплошной строкой в соответствии с оператором ввода. Напомним, что одной переменной можно присвоить значение только одного символа.
Пусть имеется фрагмент программы:
VAR А,В,С:CHAR;
...
READ(А,В,С);
Если после набора на экране дисплея всей программы и запуска ее на выполнение ввести данные в виде
SNR ВК
то переменные А, В, С получат следующие значения:
A='S', B = 'N', C = 'R'.
При вводе данных в виде
S N R ВК
переменные получат значения
A='S', В = ' ’, С = 'N'.
Другая особенность ввода символьных данных заключается в том, что нажатие клавиши ВК воспринимается как символ пробела.
Пример: необходимо задать переменным значения
А = 3, В = 4, С = 'W’, D = 'F'.
При выполнении фрагмента программы
VAR A,B:INTEGER;
C,D:CHAR;
...
READ(A,B);
READ(C,D);
и вводе данных в виде
3 4 BK
WF BK
переменные получат значения А=3, В=4, С =’ ’ (символ ВК - конец первой строки, воспринимается как пробел) D = 'W’.
Для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку READLN, чтобы их ввод осуществлялся всегда с новой строки. Например,
READ(А,B);
READLN;
READ(C,D);
В этом случае переменные получат правильные значения:
А = 3, В = 4, С = 'W, D = 'F'.
Если даже оператор ввода символьных данных стоит первым в программе, все равно необходимо перед ним ставить оператор READLN.
Дата публикования: 2014-11-02; Прочитано: 862 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!