Вычисляемый оператор перехода
Вычисляемый оператор переходапозволяет осуществлять в программах разветвления вычислительного процесса. Этот оператор имеет следующий формат:
GO TO (m1, m2,….mn), K
где m1, m2, …mn – список меток операторов,
K – простая переменная целого типа.
При выполнении программы значения переменной K истолковывается как порядковый номер метки из списка меток, заключенного в скобки. Пример: GO TO (12, 29, 34, 2), K
Выполнение этого оператора состоит в выборе одной из возможных ветвей вычислений. Если К = 1, то осуществляется переход к оператору с меткой 12; если К = 2, то к оператору с меткой 29; если К = 3 к метке 34, при К = 4 к метке 2.
При использовании вычисляемого оператора перехода необходимо соблюдать следующие правила:
1) список операторов, которым можно передавать управление, заключается в скобки; метки в списке разделяются запятыми;
2) запятая должна ставиться и после закрывающей скобки;
3) управляющая переменная может принимать значения от 1 до n; если она выходит из этого диапазона значений, что оператор считается неопределенным, и результат его действий является непредсказуемым;
4) если за оператором перехода записаны какие–либо другие операторы, то первый из них должен быть помеченным.
2.5 Условный арифметический оператор IF:
Условный арифметический оператор имеет следующий вид: IF (A) n1, n2, n3
где А– арифметическое выражение целого или вещественного типа
n1, n2, n3 – метки операторов.
Действие операторов сводится к следующему:
- если значение арифметического выражения в скобках отрицательно, то управле
ние передается оператору с меткой n1;
- если значение А равно нулю, то управление передается на метку n2;
- если значение А положительно - на n3.
Как и в случае операторов перехода, если за условным арифметическим оператором следуют другие операторы, то первый должен иметь метку:
Пример 1: Вычислить функцию Z по одной из следующих формул:
Соответствующий фрагмент программы может быть представлен так:
IF (X – Y) 35, 40, 45
35 Z = X * X – Y * Y
GO TO 50
40 Z = X * X + Y * Y
GO TO 50
45 Z = X ּ Y
50 PRINT*,’Z=’,Z
Следует обратить внимание на необходимость двух операторов безусловного перехода. GO TO 50. При отсутствии, например, первого из них, после оператора с меткой 35 выполнялся бы оператор с меткой 40, что приводило бы к неверному результату. Таким образом, с помощью арифметического оператора IF обеспечивается разветвление программы на три ветви, однако, если требуется выполнить разветвление расчета только по двум ветвям, то одна из меток в операторе IF должна быть повторена дважды.
Пример 2 ( I), II)): функция f (x) задана соотношением:
I) II)
С помощью арифметического оператора IF разветвление в программе может быть выполнено следующим образом. Блок-схема на (рис. 4, а) ):
Результат:
I) IF (X) 27, 28, 27 II) IF(X-1) 3, 4, 4
27 F = SIN (X) / X 3 F=1.
GO TO 50 GO TO 5
28 F = 1.0 4 F=X*X
50 PRINT*, ’F=’, F и т.д. 5 PRINT *, ‘F=’ , F и т.д.