Реферат: Семантика оператора case

где "j: 1£j£n: Bj = i=j.

Рис. 11.2.

Оператор IF, представленный на рис. 11.2, надо выполнять до тех пор, пока для очередного значения i истинен хоть один Bi º i=n. Как только при очередном выполнении IF ни одно из условий не будет выполнено, то более повторять выполнение этого IF не надо.

Обозначим

BB=B1 Ú B2 Ú B3 Ú ... Ú Bk ,

тогда оператор IF на рис. 9.2 надо выполнять до тех пор, пока выполняется BB.

Теперь рассмотрим циклы вида (2). Для этого вернемся к примеру 10.1, программа для которого представлена на рис. 10.1. Интересующий нас в данный момент фрагмент дан на рис. 11.3.

begin fctrl:=1;

for i:=2 to n do fctrl:=fctrl*i

end {if n=0}

Рис. 11.3

Здесь был использован цикл вида (2). Все состояния вычислительного процесса, соответствующие этому циклу, были пока

заны на рис. 10.2. Там же, в колонке, где указан номер итерации, указано и условие, при выполнении которого надо выполнять тело цикла на данной итерации.

Рассмотрим оператор IF на рис. 11.4.

i:=2 ; if

B1 ® fctrl:=fctrl*i; i:=i+1;

B2 ® fctrl:=fctrl*i; i:=i+1;

. . . . .

B5 ® fctrl:=fctrl*i; i:=i+1

endif

где "k: 1£ k £5 Bk º i=k.

Рис. 11.4

Если его выполнять до тех пор, пока выполняется BB, то мы получим конструкцию, эквивалентную той, что показана на рис. 11.3 с той оговоркой, что значение параметра цикла i после выхода из цикла на рис. 11.3 считается не определенным. Для того, чтобы убедиться в эквивалентности этих конструкций, достаточно построить вычислительный процесс, соответствующий циклическому выполнению IF с рис. 11.4 и сравнить его с вычислительным процессом на рис.10.2.

Таким образом, мы видим, что циклы вида (2) тоже сводятся к последовательному выполнению операторов типа IF, пока выполняется условие BB.

Рассмотрим теперь циклы вида (3):

repeat S until B.

На интуитивном уровне действие операторов цикла этого вида можно описать так: после каждого выполнения оператора S надо проверять условие B. Если оно не выполняется, то надо выполнить S еще раз, если выполняется, то цикл заканчивается. Другими словами, оператор цикла вида (3) можно выразить оператор цикла вида (1) следующим образом:

repeat S until B;

º

К-во Просмотров: 1348
Бесплатно скачать Реферат: Семантика оператора case