Ввод и вывод в Паскале
В этой статье мы поговорим о том как сделать ввод или вывод на языке Паскаль. В общем случае это означает, что он должен сообщать результат своей работы потребителю: пользователю-человеку или другой программе (например, программе управления принтером).
Мы не будем описывать здесь внутренние автоматические процессы, использующие сигналы непрерывно функционирующих программ, а сосредоточим внимание на взаимодействии программы и человека, т.е. на процессах ввода информации с клавиатуры и вывода ее на экран.
В программировании существует специальное понятие консоль, которое обозначает клавиатуру при вводе и монитор при выводе.
Для того чтобы получить данные, вводимые пользователем вручную (т.е. с консоли), применяются команды
read ( <список_ввода> )
readln ( <список_ввода> )
Первая из этих команд считывает все предложенные ей данные, оставляя курсор в конце последней строки ввода, а вторая - сразу после окончания ввода переводит курсор на начало следующей
строки. В остальном же их действия полностью совпадают.
readln(k, x, c, s);
{k:byte; x:real; c:char; s:string}
программа может получить с клавиатуры данные сразу для четырех переменных, относящихся к различным типам данных.
readln ( <список_ввода> )
Первая из этих команд считывает все предложенные ей данные, оставляя курсор в конце последней строки ввода, а вторая - сразу после окончания ввода переводит курсор на начало следующей
строки. В остальном же их действия полностью совпадают.
Список ввода - это последовательность имен переменных, разделенных запятыми.
Например, при помощи команды
{k:byte; x:real; c:char; s:string}
программа может получить с клавиатуры данные сразу для четырех переменных, относящихся к различным типам данных.
Вводимые значения необходимо разделять пробелами, а завершать ввод - нажатием клавиши Enter.
Ввод данных заканчивается в тот момент, когда последняя переменная из списка ввода получила свое значение.
Следовательно, вводя данные при помощи приведенной на слайде выше команды, вы можете нажать Enter четыре раза - после каждой из вводимых переменных, - либо же только один раз, предварительно введя все четыре переменные в одну строчку (обязательно нужно разделить их пробелами).
Если же программе все-таки необходимо получить с консоли значение для boolean-величины, придется действовать более хитро:
Øвводить оговоренный символ, а уже на его основе присваивать логической переменной соответствующее значение.
Пример ввода и вывода на Паскале:
Пример ввода и вывода на Паскале:
repeat
writeln('Согласны ли Вы с этим утверждением?');
writeln('y - да, n - нет');
readln(c); {c:char}
case c of
'y': b:=true;
'n': b:=false;
else: writeln('Ошибка!');
end;
until (c='n') or (c='y');
write( <список_вывода> )
writeln( <список_вывода> )
writeln('Согласны ли Вы с этим утверждением?');
writeln('y - да, n - нет');
readln(c); {c:char}
case c of
'y': b:=true;
'n': b:=false;
else: writeln('Ошибка!');
end;
until (c='n') or (c='y');
Второе исключение: строки, хотя они и не являются базовым типом, вводить тоже разрешается.
Признаком окончания ввода строки является нажатие клавиши Enter, поэтому все следующие за нею переменные необходимо вводить с новой строчки.
Вывод на консоль
Для того чтобы вывести на экран какое-либо сообщение, воспользуйтесь процедурами
writeln( <список_вывода> )
Первая из них, напечатав на экране все, о чем ее просили, оставит курсор в конце выведенной строки, а вторая переведет его в начало следующей строчки.
Список вывода может состоять из нескольких переменных или констант, записанных через запятую; все эти переменные должны иметь тип либо базовый, либо строчный.
Например:
writeln(a, b, c);
Переменные, составляющие список вывода, могут относиться к целому, вещественному, символьному или булевскому типам.
В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.
Оператор Writеln без параметров реализует пропуск строки и переход к началу следующей строки.
Если для вывода информации промто перечислять переменные через запятую, то выводимые символы окажутся "слепленными".
Чтобы этого не случилось, нужно позаботиться о пробелах между выводимыми переменными:
writeln(a, ' ', b, ' ', c);
Но предпочтительнее задать для всех (или хотя бы для некоторых) переменных формат вывода:
writeln(a:5, b, c:20:5);
Если число длиннее, чем отведенное под него пространство, количество позиций будет автоматически увеличено.
Если же выводимое число короче заданного формата, то спереди к нему припишутся несколько пробелов.
Таким образом можно производить вывод красивыми ровными столбиками, а также следить за тем, чтобы переменные не сливались. это называется форматированный вывод данных, т.е при таком действии вывод подгоняется под определенный формат.
Примеры форматированного вывода в Паскале
Оператор вывода | Значение переменной | Результат |
Write(R:8:4); | 511.04 | 511.0400 |
Write(R:7:2); | -46.78 | _-46.78 |
Write(R:9:4); |
-46.78
| _-46.7800
|