Форматированный вывод
Если для вывода информации воспользоваться командой, приведенной в конце предыдущего пункта, то выводимые символы окажутся "слепленными". Чтобы этого не случилось, нужно либо позаботиться о пробелах между выводимыми переменными: writeln(a,' ',b,' ',c); либо задать для всех (или хотя бы для некоторых) переменных формат вывода: writeln(a:5,b,c:20:5); Первое число после знака ":" обозначает количество позиций, выделяемых под всю переменную, а второе - под дробную часть числа. Десятичная точка тоже считается отдельным символом. Если число длиннее, чем отведенное под него пространство, количество позиций будет автоматически увеличено. Если же выводимое число короче заданного формата, то спереди к нему припишутся несколько пробелов. Таким образом можно производить вывод красивыми ровными столбиками, а также следить за тем, чтобы переменные не сливались. Например, если a = 25, b = 'x', а c = 10.5, то после выполнения команды writeln(a:5,' ',b,c:10:5) на экране или в файле будет записано следующее (подчерки в данном случае служат лишь для визуализации пробелов): _ _ _25_x_ _10.50000 Особенно важен формат при выводе вещественных переменных. К примеру, если не указать формат, то число 10.5 будет выведено как _1.05000000000000Е+0001. Такой формат называется записью с плавающей точкой. Если же задать только общую длину вещественного числа, не указывая длину дробной части, то оно будет занимать на экране заданное количество символов (в случае надобности, спереди будет добавлено соответствующее количество пробелов), но при этом останется в формате плавающей точки. Минимальной длиной для вывода вещественных чисел является 10 (при формате _x.xE+yyyy). Первая позиция зарезервирована под знак "-". Необходимо помнить, что в случае недостаточной длины вывода число будет автоматически округлено, например (подчерк служит для визуализации пробела):
Теперь, когда мы познакомились с примерами, можно сформулировать общее правило записи процедур вывода: · Список вывода разделяется запятыми; · Список содержит выражения, а также их частные случаи – переменные и константы логических, целых, вещественных, символьного и строкового типов. · После любого значения можно через двоеточие указать формат, т.е. количество отводимых под него позиций. Если значение короче, оно «прижимается» к правому краю отведенного поля, если длиннее, поле «раздвигается» до необходимых размеров. · Для вещественных чисел можно указать второй формат, сообщающий, сколько позиций из общего количества отводится под дробную часть числа. Необходимо учитывать, что десятичная точка также занимает одну позицию. Если второй или оба формата не указаны, вещественное число выводится в форме с порядком. · Если форматы не указаны, под целое число, символ и строку отводится минимальный необходимый для их представления количество позиций. Под вещественное число всегда отводится 23 позиции, причем 14 из них – под его дробную часть. · Форматы могут быть выражениями целого типа. Теперь изучено достаточно материала, чтобы с полным пониманием написать первую законченную программу. Пример. Написать программу, которая переводит температуру в градусах по Фаренгейту в градусы по Цельсия по формуле: С=5/9(F-32), где С – температура по Цельсию, F – температура по Фаренгейту. program P1; Var fahr, cels: real; Begin Writeln('Введите температуру по Фаренгейту'); Readln(fahr); cels:=5/9*(fahr-32); Writeln('По Фаренгейту: ', fahr:6:2, ' в градусах Цельсия: ',cels:6:2); Readln; end.
|