Полный и сокращенный оператор IF

ОРганизация ветвлений

Ветвящимися называют адаптивные алгоритмы, в которых после проверки заданных логических условий управление при выполнении алгоритма может передаваться нескольким вариантам последовательностей команд (ветвей алгоритма). Ветвление прерывает обычный линейный (в порядке возрастания номеров) порядок выполнения команд алгоритма. Оно является одной из трех базовых алгоритмических конструкций в структурном программировании.

В языке Паскаль для организации ветвления используются два типа оператора - IF (полный и сокращенный) и CASE (полный и сокращенный). Также к ветвлению относят оператор безусловного перехода GOTO, поскольку он нарушает последовательный линейный порядок выполнения команд. Однако в случае оператора GOTO для перехода не требуется проверки логических условий.

Полный оператор условного перехода IF в языке Паскаль имеет следующий синтаксис:

if условие then оператор 1 else оператор 2;

где условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1пропускается. После выполнения указанных операторов программа переходит к выполнению команды, стоящей непосредственно после оператора if. Графически логика полного оператора IF в виде блок-схемы представлена на рис.5.1.

Рис.5.1. Полный оператора IF Рис.5.2. Сокращенный оператора IF

Сокращенный оператор условного перехода IF в языке Паскаль отличается от полного отсутствием альтернативы else:

if условие then оператор 1;

В случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.

Синтаксис языка (правила построения и выполнения операторов) допускает запись только одного оператора после ключевых слов then и else, поэтому при необходимости выполнения нескольких операторов их обязательно надо заключать в составной оператор (между операторными скобками begin ... end). Иначе программа будет работать неправильно.

Примеры 1 применения полного и сокращенного операторов IF.

1)if x>=0 then modx:= x else modx:=-x;{вычисление абсолютной величины числа х}

2)if x>=0 then sqrtx = sqrt(x);{вычисление квадратного корня из числа х}

3)if а[i]>max then begin max:=а[i];imax:=i end;{поиск макс. эл-та массива и его номера}

4)max:=а;if b>а then max:=b;if с>max then max:=с;{определение max(a,b,c)}

На рис.5.3 дана блок-схема фрагмента программы из задания 4) примера 1, в котором определяется max(a,b,c).

Рис.5.3. Блок-схема фрагмента программы, в котором определяется max(a,b,c).