Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование. Методичка.3.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
59.39 Кб
Скачать

8.2. Операторы ввода 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 <ВВОД>

8.3. Оператор вывода write

Оператор записи (write) производит вывод числовых данных, символов, строк и булевских значений.

Формат :

write(Y1,Y2,...,Yn); или write(FV,Y1,Y2,...,Yn);

где Y1,Y2,...,Yn- выражения типа integer, byte, real, char, boolean и т.д. FV- имя файла, куда производится вывод.

Для вывода на принтер FV равно Lst.

При работе в диалоговом режиме следует перед операторами ввода использовать оператор вывода на экран приглашения-подсказки о том, что наступило время ввода информации и какой именно информации. Например: Write('Введи целые числа K,L,M').

Примеры операторов вывода:

write(234); выражение представлено значением;

write(A+B-2); выводится результат выражения;

write(Lst,Summa,Argument1,Argument2);

write (Lst,'Результат вычислений=',Rezalt1).

В первом варианте формата значения Y1,Y2,...,Yn выводятся на экран дисплея, во втором - на алфавитно-цифровое печатающее устройство. После записи каждого выражения можно задать целочисленное выражение, определяющее ширину поля вывода.