E) Структурированный (разветвленный) IF

1) Структурированный, короткий, простой IF.

В структурированном операторе содержится последовательная проверка вложенных условий.

Пример 7.

Вычислить r=ln(x+y+z), если x > 0, y > 0, z > 0.

Написать фрагмент программы вычисление функции структурированным оператором условия.

Решение.

Оператор условия запишется в виде:

IF x>0 then

IF y>0 then

IF z>0 then

R:=LN(X+Y+Z);

Пример 8.

Если вместо структурированного оператора условия использовать оператор с логическим выражением, то пример 7 запишется в виде:

IF (x>0) and (y>0) and (z>0) then R:=LN(X+Y+Z);

В примере 8 уместна логическая операция «and». Данную строку можно прочитать следующим образом «если (x>0) и (y>0) и (z>0) тогда R:=LN(x+y+z);». В примере 9 используется оператор условия с логическим выражением, где применяется логическая операция «or».

Пример 9.

Вычислить r=x+y+z, если выполняется хотя бы одно из условий x>0, y>0, z>0. Оператор условия запишется в виде:

IF (x>0) or (y>0) or (z>0) then R:=(x+y +z);

Данную строку можно прочитать следующим образом «если (x>0) или (y>0) или (z>0) тогда R:=LN(x+y+z);». В примерах 8, 9 логические выражения включают в себя логические операции и условия, каждое условие следует заключать в скобки.

2) Структурированный, полный, простой IF.

Пример 10.

Вычислить:

r=ln(x)+ln(y)+ln(z), если x>0, y>0, z>0;

r= ln(x)+ln(y)+z, если x>0, y>0;

r=ln (x)+y+ z, если x>0, иначе r = x+y+z .

Оператор условия запишется в виде:

IF x>0 then

IF y>0 then

IF z>0 then r:=ln(x)+ln(y)+ln(z) else r:= = ln(x)+ln(y)+z

Else r:= ln (x)+y+z

Else r:= x+y+z;

Вначале проверяются три условия. Если они выполняются, то вычисляется r=ln(x)+ln(y)+ln(z). Иначе выполняются первые два условия, а последнее не выполняется и z ≤ 0 (первое слово else относится к последнему условию). В этом случае вычисляется r= ln(x)+ln(y)+z.

Если из двух условий выполняетcя только первое, то вычисляется r=ln x+y+z (второе слово else относится ко второму условию) и в этом случае y ≤ 0. Последнее слово else относится к первому условию и в этом случае х ≤ 0. В этом случае вычисляется r=x+y+z.