Условные и составные операторы

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;