Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
W-10_Fort_68_стр_10г..doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.18 Mб
Скачать

2.3 Операторы передачи управления.

Безусловный оператор перехода имеет формат: GO TO n

где n – метка следующего выполняемого оператора, содержащегося в том же программном модуле. Служебные слова GO TO можно писать слитно: GOTO.

Пример:

A = .597 * D

GO TO 15

  1. Y = A / 3. + X * B

15 Y = X ** 2.5

В примере сначала присваивается значение переменной А, далее следует оператор GO TO 15, который указывает, что следующим должен выполняться оператор 15, а не 14. Таким образом, оператор 14 оказывается невыполнимым. Чтобы этот оператор выполнился, когда нужно, в программном модуле должен быть другой оператор перехода, который передавал бы управление оператору 14. Из этого видно, что оператор, следующий непосредственно за оператором GO TO должен быть помеченным.

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

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

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

  1. Z = X * X – Y * Y

GO TO 50

  1. Z = X * X + Y * Y

GO TO 50

45 Z = X ּ Y

  1. 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 и т.д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]