Ниже рассмотрены примеры применения условного оператора.
Пример1. (Применение полной формы условного оператора). Пусть требуется вычислить функциюY, принимающую значение –3(Х+2) при Х<0 и значение 5X при Х>=0. Такое вычисление можно выполнить с помощью одного условного оператора:
IF X<=0 THEN Y:= -3*(X+2) ELSE Y:= 5*X;
Пример2. (Применение составного оператора). Пусть требуется вычислить площадь круга S и длину окружности L по заданному радиусу R при выполнении некоторого условия А > D:
IF A>D THEN {далее – составной оператор, включающий два простых оператора:}
Begin S:=pi*R*R; L:=2*pi*R End;
Примечание. Этот оператор записан синтаксически правильно, так как в языке Паскаль допускается произвольное расположение операторов по строкам. Однако в соответствии с принципами структурирования программ (см. главу 4) для наглядности лучше записать так:
IF A>D THEN
Begin
S:=pi*R*R; L:=2*pi*R
{перед End знак «точка с запятой» в Паскале можно не cтавить}
End;
Очевидно, что для корректного вычисления S и L необходимо провести проверку еще одного условия “R>=0” и в случае невыполнения его выдать на монитор соответствующее сообщение.
Ниже приводится два варианта программирования этой задачи:
{Вариант первый: два условия объединены в однологической операцией And(И), которая означает «одновременно, и то и другое»:}
IF (A>D) and (R>=0) THEN
Begin
S:=pi*R*R; L:=2*pi*R
End
ELSE write(‘Вычисления невозможны, так как условие
ложно’);{объединение двух условий в одно не позволяет выявить точную причину невозможности вычисления, так как результатом логического умножения будет значение False при получении значения False любым из сомножителей, то есть при нарушении любого из отдельных условий, входящих в логическое произведение, или при нарушении обоих условий одновременно }
{ Вариант второй: условия разделеныи проверяются разными условными операторами:}
IF (A>D) THEN
BEGIN
If (R>0) then
Begin
S:=pi*R*R; L:=2*pi*R
End
Else write(‘Вычисления невозможны, так как радиус R<=0’)
END
ELSE write(‘Вычисления невозможны, так как условие A>D не выполнено’);
ОПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА(по метке) –имеет структуру GOTO metka; и служит для безусловного (обязательного) изменения направления последовательности выполнения операторов программы. Здесь metka – код (целое без знака) или слово, указывающие на оператор, который будет выполняться после оператора GOTO metka.