Операторы ввода read, readln

Оператор чтения (read) обеспечивает ввод числовых данных, символов, строк для последующей их обработки программой.

Значения переменных логического типа вводить нельзя. Переменной логического типа можно присвоить значение либо в разделе констант, либо в операторе присваивания.

Формат:

read(X1,X2,...,Xn); или read(FV,X1,X2,...,Xn);, где X1,X2,...,Xn - переменные допустимых типов данных, FV - переменная, связанная с файлом, откуда будет выполняться чтение.

Ввод в языке Паскаль может быть только бесформатный. Числовые значения X1,X2,...,Xn набираются минимум через один пробел на клавиатуре пользователем и высвечиваются на экране. Между символами, между числом и символом разделитель не нужен. После набора данных для одного оператора Read нажимается клавиша ввода <ВВОД>. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Если соответствие нарушено(например, Х1 имеет тип integer, а при вводе набирается значение типа char),то возникают ошибки ввода-вывода. Сообщение об ошибке имеет вид: I/O error XX, где ХХ - код ошибки.

Пример.

Var I:real;

J:integer;

K:char;

Begin read(I,J,K);.......

Первый вариант ответа: Второй вариант ответа:

235.98 100G G 235.98 100

Нажимаем клавишу ВВОД Нажимаем клавишу ВВОД

Первый вариант обеспечивает нормальный ввод данных, так как набираемые значения 235.98, 100 и G соответствуют типам переменных I, J, K в операторе read. Второй вариант ввода вызовет ошибку с кодом 10, ибо для переменной I типа real набирается значение типа char.

Если в программе имеется несколько операторов read,данные для них вводятся потоком, т.е. после считывания значений переменных для одного оператора read данные для следующего оператора read набираются в той же строке, что и для предыдущего до окончания строки, затем происходит переход на следующую строку.

Пример.

Var A,B,Sum1:integer;

C,D,Sum2: real;

.....

read(A,B);

Sum1:=A+B; read(C,D); Sum2:=C+D;

.....

Набираем на клавиатуре:

18758 34 2.62Е-02 1.54Е+01

После набора каждой пары данных нажимаем клавишу <ВВОД>, т.е. 18758 34 <ВВОД> 2.62Е-02 1.54Е+01 <ВВОД>.

Оператор чтения readln аналогичен оператору read, единственное отличие заключается в том, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора readln будут считываться с начала новой строки. Если в предыдущем примере заменить операторы read на readln:

.....

readln (A,B);

Sum1:=A+B; readln (C,D); Sum2:=C+D;

.....

то после набора на клавиатуре значений для А и В курсор автоматически перейдет на новую строку, где будут набираться данные для С и D:

18758 34 <ВВОД>

2.62Е-02 1.54Е+01 <ВВОД>


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: