Разветвляющиеся программы
Разветвляющиеся программы организуются с помощью условного оператора IF.
Различают однострочные и многострочные условные операторы.
Форматы однострочного оператора IF:
а) простой однострочный оператор
IF <условие> THEN <операторы>
При выполнении оператора IF проверяется условие и, если оно истинно, то выполняется действие, указанное после оператора THEN. Если выражение ложно, то управление передается на оператор, следующий за оператором IF.
IF x<e THEN GOTO m1
IF x<a THEN y=SIN(x)*EXP(2^LOG(x)): GOTO m2
б) простой расширенный оператор IF
IF <условие> THEN <операторы 1 > ELSE <операторы 2>
При выполнении оператора IF, если условие истинно, то выполняются операторы, указанные после оператора THEN, в ином случае выполняются операторы, следующие за оператором ELSE. После выполнения соответствующей группы операторов управление передается на оператор, следующий за оператором IF.
IF x<a THEN y=SIN(x)*EXP(2^LOG(x)) ELSE y=3*x^2-5*x+4
После операторов THEN и ELSE может быть указано несколько операторов, разделенных двоеточием. Однако, число операторов ограничено длиной строки. Этих недостатков лишен многострочный оператор IF.
Пример 9.4.7. Вычислить выражение
x2 - 5 , если x<a
y = x , если а<= х <=b
-x , если x>b
Решение.
INPUT "Введите значение Х", Х
INPUT "Введите значения a и b ",a,b
IF x<a THEN y = x^2 –5: GOTO m1
IF x>=a AND x<=b THEN y=x: GOTO m1
y = -x
m1:
PRINT "x="; x, "y="; y
END
При использовании многострочного IF алгоритм для решения примера 9.4.7 будет выглядеть следующим образом:
INPUT "Введите значение Х", Х
INPUT "Введите значения a и b ",a,b
IF x<a THEN
y = x^2 –5
ELSEIF x>=a AND x<=b THEN
y=x
ELSE
y = -x
END IF
PRINT "x="; x, "y="; y
END
Форматы многострочного оператора IF:
а) простой IF <условие> THEN <первая группа операторов> ELSE <вторая группа операторов> END IF | б) расширенный IF <условие> THEN <первая группа операторов> ELSEIF <условие> THEN <вторая группа операторов> ELSE <третья группа операторов> END IF |
При записи операторов следует обращать внимание на структуру записи. Структура должна соответствовать той, что указана в примере.
Достоинство многострочного IF состоит в том, что число операторов в группах не ограничено.