10. Операторы ввода и вывода

 Рассмотрим организацию ввода и вывода данных с терминального уст-

ройства. Терминальное устройство - это устройство, с которым работает

пользователь, обычно это экран (дисплей) и клавиатура.

 Для ввода и вывода данных используются стандартные процедуры ввода

и вывода Read и Write, оперирующие стандартными последовательными файлами

INPUT и OUTPUT.

 Эти файлы разбиваются на строки переменной длины,  отделяемые друг

от друга признаком конца строки.  Конец строки задается нажатием кла-

виши ENTER.

 Для ввода исходных данных используются операторы процедур ввода:

 

 Read(A1,A2,...AK);

 ReadLn(A1,A2,...AK);

 ReadLn;

 

 Первый из них реализует чтение К значений исходных данных и прис-

ваивание этих значений переменным А1, А2, ..., АК. Второй оператор

реализует чтение К значений исходных данных, пропуск остальных значе-

ний до начала следующей строки, присваивание считанных значений пере-

менным А1, А2, ..., АК. Третий оператор реализует пропуск строки ис-

ходных данных.

 При вводе исходных данных происходит преобразование  из внешней

формы представления во внутреннюю, определяемую типом переменных. Пе-

ременные, образующие  список ввода, могут принадлежать либо к целому,

либо к  действительному, либо к символьному типам.  Чтение исходных

данных логического типа в языке ПАСКАЛЬ недопустимо.

 Операторы ввода при чтении значений переменных целого и

действительного типа пропускает пробелы, предшествующие числу.  В то

же время эти операторы не пропускают пробелов,  предшествующих значе-

ниям символьных переменных,  так как пробелы являются равноправными

символами строк. Пример записи операторов ввода:

 

 var rV, rS: Real;

 iW, iJ: Integer;

 chC, chD: Char;

 ................

 Read(rV, rS, iW, iJ);

 Read(chC, chD);

 

 Значения исходных данных могут отделяться друг от друга пробелами

и нажатием клавиш табуляции и Enter.

 Для вывода результатов работы программы на экран используются

операторы:

 

 Write(A1,A2,...AK);

 WriteLn(A1,A2,...AK);

 WriteLn;

 

 Первый из этих операторов реализует вывод значений переменных А1,

А2,...,АК в  строку экрана. Второй оператор реализует вывод

значений переменных А1, А2, ..., АК и переход к началу следующей

строки. Третий  оператор реализует пропуск строки и переход к началу

следующей строки.

 Переменные, составляющие список вывода, могут относиться к целому,

действительному, символьному или булевскому типам. В качестве элемен-

та списка вывода кроме имен переменных могут использоваться выражения

и строки.

 Вывод каждого значения в строку экрана происходит в соот-

ветствии с шириной поля вывода, определяемой конкретной  реализацией

языка.

 Форма представления значений в поле вывода соответствует типу пе-

ременных и выражений:  величины целого типа выводятся как целые деся-

тичные числа,  действительного типа - как действительные десятичные

числа с десятичным порядком,  символьного типа и строки - в виде сим-

волов, логического типа - в виде логических констант TRUE и FALSE.

 Оператор вывода позволяет задать ширину поля вывода для каждого

элемента списка вывода. В этом случае

элемент списка вывода имеет вид А:К, где

А - выражение или строка,  К - выражение либо константа целого типа.

Если выводимое значение занимает в поле вывода меньше позиций, чем К,

то перед этим значением располагаются пробелы. Если выводимое значе-

ние не помещается в ширину поля К,  то для этого значения будет отве-

дено необходимое количество позиций. Для величин действительного типа

элемент списка вывода может иметь вид А:К:М, где А - переменная или выраже-

ние действительного типа,  К - ширина поля вывода, М - число цифр

дробной части  выводимого значения. К и М - выражения или константы

целого типа.  В этом случае действительные значения выводятся в форме

десятичного числа с фиксированной точкой.

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

 . . . . . . . . . . . .

 var rA, rB: Real; iP,iQ:Integer;

 bR, bS: Boolean; chT, chV, chU, chW: Char;

 . . . . . . . . . . . .

 WriteLn(rA, rB:10:2);

 WriteLn(iP, iQ:8);

 WriteLn(bR, bS:8);

 WriteLn(chT, chV, chU, chW);

Электротехника курсовые, лабораторные, практика Математика, физика