Условные и составные операторы
Begin
Пример 4.4
const m = 6; n = 2;
var omega, q: real;
………………………………
writeln(omega:8:3, q:m:n);
………………………………
Конкретные значения выводимых данных в большинстве случаев программисту не известны, поэтому при назначении длин форматов легко допустить ошибку. При этом может возникнуть одна из двух ситуаций: либо длина формата назначена больше, чем это необходимо, либо она недостаточна для вывода данного.
В первом случае лишние позиции заполняются пробелами перед целой частью числа, а во втором длина формата автоматически увеличивается до минимально необходимой.
Если количество цифр в дробной части выводимого числа превышает величину n, указанную в формате, то дробная часть округляется до n-ного знака. Если же количество цифр в дробной части меньше величины n то дробная часть дополняется нулями в соответствии с величиной n.
Пример 4.5.Пусть x = 1.23456780000000E+0003, тогда:
а) оператор writeln(x:9:4) выведет 1234.5678 – формат полностью соответствует выводимому данному;
б) оператор writeln(x:12:4) выведет 1234.5678 – длина формата превышает количество позиций в числе (восемь цифр плюс точка); три лишние позиции заполнены пробелами перед целой частью числа;
в) оператор writeln(x:12:2) выведет 1234.57 – под дробную часть данного отведено две позиции вместо необходимых четырех, поэтому она округлена до двух знаков после десятичной точки; пять лишних позиций перед целой частью заполнены пробелами;
г) оператор writeln(x:8:4)выведет 1234.5678 – длина формата увеличена до минимально необходимой;
д) оператор writeln(x:12:6) выведет 1234.567800 – дробная часть числа справа дополнена двумя нулями, целая часть слева одним пробелом.
Для вывода данных целого, символьного и булевского типов используют спецификацию формата, состоящую из одной целой константы, которая задает его длину.
Пример 4.6.Пусть z = 5656. Тогда:
а) оператор writeln(z:6) выведет 5656;
б) оператор writeln(z:3) выведет 5656, причем длина формата будет автоматически увеличена на одну позицию.
При указании только длины формата вещественные числа распечатываются в нормализованной форме.
Пример 4.7.Пусть x = 421.53. Тогда:
а) оператор writeln(x) выведет 4.215300000000000E+0002, а
б) оператор writeln(x:8); выведет 4.2E+02
Вычислительные процессы, алгоритм которых содержит хотя бы одну типовую ветвящуюся структуру, называются ветвящимися.
Для организации ветвлений в программах используют операторы передачи управления (операторы перехода).
Допускается запись условного оператора в двух формах - полной и краткой.
Полная форма условного оператора if предназначена для программирования разветвлений и имеет вид:
if Логическое выражение then оператор 1 else оператор 2;
где оператор1, оператор2 – простые (в том числе и условные) или составные операторы. Здесь используются ключевые слова: if – если; then [зен] – тогда (то); else [элз] – иначе.
В дальнейшем для удобства изложения оператор 1 будем называть then-ветвью, а оператор 2 - else-ветвью. Подчеркнем, что в каждой из ветвей может находиться толькоодин оператор. Перед else символ ’;’ не ставится никогда.
Оператор if выполняется так:
1) вычисляется значение логического выражения, результат вычислений анализируется;
2) если результатом является true, выполняется оператор 1, если false – оператор 2.
После выполнения любой из ветвей выполняется следующий по порядку оператор программы.
Пример 4.8.Составить программу нахождения максимального из двух чисел.
var a, b, max: real;