Составной оператор объединяет некоторую последовательность операторов в единый оператор путем заключения этой последовательности в операторные скобки — служебные слова BEGIN и END.
Формат оператора:
BEGIN < .оператор 1> . .< .оператор 2> . …(оператор N> . END
Операторы, входящие в составной оператор, выполнаятся в том порядке, в котором они записаны.
Примеры составных операторов:
BEGIN I:=0 END
BEGIN Y:=X/2 . Х:=Х+H END
25.2.2 Условные операторы
В Турбо Паскале имеются два условных оператора IF и CASE. Рассмотрим оператор IF. С помощью оператора IF выбирается и выполняется один из операторов, входящих в его состав. Формат оператора: IF < .логическое выражение> . THEN < .оператор1> . ELSE < .оператор2> .
Выполнение такого условного оператора происходит так: если логическое выражение истинно, то выполняется первый оператор, если ложно, то второй.
Условный оператор используется также в сокращенной форме:
IF < .логическое выражение> . THEN < .оператор> .
В этом случае, если логическое выражение ложно, то не происходит никаких действий.
По синтаксису после THEN и ELSE может стоять только один оператор, поэтому если необходимо выполнить несколько операторов, то их объединяют в составной оператор.
Примеры условных операторов:
IF X< .0 THEN I:=I+1 ELSE K:=K+1
IF (X< .Y) AND D THEN BEGIN X:=SIN(X) . Y:=Y+1 END
Во втором примере D — логическая переменная.
Рассмотрим оператор CASE.
Часто в программе бывает необходимо проверять достаточно много условий и в зависимости от них выполнять те или иные действия. Для этого можно использовать многократно вложенные друг в друга условные операторы. Однако в этом случае программа становится громоздкой и ее трудно понимать. Считается, что число уровней вложения не должно превышать двух-трех. Если же необходимо выбирать из большего числа условий, то целесообразным становится применение оператора варианта.
Формат оператора:
CASE < .селектор варианта> . OF
< .константа варианта 1> .:< .оператор 1> . .
< .константа варианта 2> .:< .оператор 2> . .
…
< .константа варианта n> .:< .оператор n> .
END
Селектор варианта может быть любого простого типа, за исключением типа REAL. Константы варианта должны быть того же типа, что и селектор варианта.
При выполнении оператора варианта сначала вычисляется значение селектора варианта, а затем выполняется тот оператор, который отмечен константой варианта, имеющей данное значение. Если подходящей константы нет, то возникает ошибка. Чтобы избежать этого в Турбо Паскале предусмотрена следующая конструкция:
CASE < .селектор варианта> . OF
< .константа варианта 1> .:< .оператор 1> . .
…
< .константа варианта n> .:< .оператор n> . .
ELSE < .оператор> .
END
Теперь, если значение селектора варианта не совпало ни с одной константой, то будет выполняться оператор, записанный после служебного слова ELSE.
Для того чтобы пометить оператор в списке выбора можно использовать несколько констант варианта, а также диапазоны. Например:
CASE CH OF
A,B,E,I:CH1:=SUCC(CH1) .
K..R:CH1:=PRED(CH1)
END .
Отметим, что если после константы варианта нужно выполнить не один, а несколько операторов, то необходимо использовать составной оператор.