- •Кафедра посэ
- •Минск 2003
- •Издание утверждено на заседании кафедры посэ
- •8. Методические указания
- •8.1.Ввод-вывод. Общие сведения
- •8.2. Операторы ввода read, readln
- •8.3. Оператор вывода write
- •8.4. Форматы оператора вывода write
- •8.4.1. Вывод данных целочисленного типа
- •8.4.2. Вывод данных вещественного типа
- •8.4.3. Вывод данных символьного типа
- •8.4.4. Вывод данных строкового типа
- •8.4.5. Вывод данных булевского типа
- •8.5. Оператор вывода writeln
- •9. Требования к знаниям и умениям студентов
- •План 2002/2003, поз. 134
- •Организация ввода - вывода данных стандартных скалярных типов
- •220114, Г. Минск, Староборисовский тракт 8, к.2
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 выводятся на экран дисплея, во втором - на алфавитно-цифровое печатающее устройство. После записи каждого выражения можно задать целочисленное выражение, определяющее ширину поля вывода.
