Вычисляемый оператор перехода

Вычисляемый оператор переходапозволяет осуществлять в программах разветвления вычислительного процесса. Этот оператор имеет следующий формат:

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 по одной из следующих формул:

Вычисляемый оператор перехода - student2.ru Вычисляемый оператор перехода - student2.ru

Соответствующий фрагмент программы может быть представлен так:

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) задана соотношением:

Вычисляемый оператор перехода - student2.ru I) Вычисляемый оператор перехода - student2.ru II) Вычисляемый оператор перехода - student2.ru

С помощью арифметического оператора IF разветвление в программе может быть выполнено следующим образом. Блок-схема на (рис. 4, а) ):

Результат:

Вычисляемый оператор перехода - student2.ru 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 и т.д.

Наши рекомендации