4. Операторы ввода-вывода

Простейший оператор ввода в Паскале - оператор READ, он записывается в виде:

READ(uмя,uмя,...);

где имя - имена переменных или типизированных констант. Вводимые значения задаются в виде допустимых в Паскале констант и разделяются любым количе­ством пробелов. Для окончания ввода следует нажать клавишу Enter. Оператор ввода можно записать и как READLN, при вводе числовых переменных они эк­вивалентны. Кроме того, оператор READLN без списка в скобках можно ис­пользовать для организации задержки в работе программы - он будет ожидать нажатия клавиши Enter.

Простейший оператор вывода записывается в виде: WRITE(выраженuе,выраженuе,...);

или

WRITELN(выраженuе,выраженuе,...); Вывести можно любое выражение, если необходимо вывести текст, он за­ключается в апострофы. Оператор WRITELN отличается от оператора WRITE тем, что после вывода происходит переход на новую строку. Можно использо­вать оператор WRITELN без списка вывода для пропуска строки. Запишем при­мер программы, осуществляющей ввод и вывод : VAR i : Integer; w : Word; r : Real;

BEGIN

WRITELN;

|-------------ввод-------------}

WRITE('Введите целое число ');

READ(i); WRITELN;

WRITE('Введите натуральное число ');

READ(w); WRITELN;

WRITE('Введите вещественное число ');

READ(r); WRITELN;

І------------- вывод ------------- }

МГСШШ^СВы ввели :     ',w,' ',r,' их сумма=',i+w+r); WRITELN('Нажмите Enter для выхода');

READLN;

END.

Впервые записав осмысленную программу, остановимся и обсудим ее внеш­ний вид. Даже на таком тривиальном примере мы можем понять некоторые ос­новные правила оформления программы.

1. Организация диалога с пользователем. Прежде чем записать оператор READ, вы обязаны записать хотя бы один WRITE, который выведет на экран приглашение "Введите      причем из этого приглашения пользователь долженпонять, какие именно данные ему следует ввести. Так, в нашем примере опера­торы '\УР\1ТЕ('Введите 1 '); КЕЛБ(1); были бы неуместны, так как пользователю неизвестно, что такое ^ и он мог бы ввести, например, вещественное число, что привело бы к аварийному завершению программы.

2. Оформление текста программы. Хорошо оформленная программа легко читается и быстрее отлаживается, следует стремиться к "прозрачности" текста, но не к некоторой, вполне субъективной, "красоте". Так, скажем, операторы, вы­полняющиеся последовательно, следует и записывать строго друг под другом, но не "елочкой" или какой-либо другой фигурой. Средства, используемые для оформления текста, крайне просты и доступны всякому - это пробелы, пустые строки и комментарии.

При выводе чисел можно их форматировать, т.е. управлять формой их представления. Для этого в списке вывода после выводимого выражения можно указывать модификаторы : ":Ь:0" - для вещественных значений и ":Ь" для ве­щественных и целых. Ь и а1 - целочисленные выражения, первое из них определя­ет, сколько всего позиций отводится для выводимого числа на экране, а второе -сколько выводится цифр после десятичной точки. Если при выводе веществен­ного числа задан модификатор ": Ь: а", то оно выводится с фиксированной точкой, если же задан модификатор ": Ь" или он отсутствует - то с плавающей точкой. Пусть значение переменной X равно 123.45678, тогда оператор

\УМТЕ(Х);       выведет " 1.2345678000Е+02"

\¥МТЕ(Х:8:2);   выведет " 123.46"

WRIТE(X:10:5); выведет " 1.235Е+02"

\¥МТЕ(Х:10);    выведет " 1.235Е+02"

WRIТE(X:8);     выведет " 1.2Е+02"

WRIТE(X:1);     выведет " 1.2Е+02" По умолчанию вещественные числа всегда разделяются при выводе пробе­лами, но если вы выводите подряд несколько целых чисел, не форматируя их и не выводя между ними пробелов, они будут выводиться подряд и сольются в од­но число.