Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
02.04.2015
Размер:
605.17 Кб
Скачать

 

 

41

 

 

3. Структуры с ветвлениями

 

Пример 4.3. Рассмотрим блок-схему программы.

 

 

 

 

g

 

 

 

1

 

 

f

q

 

 

 

 

 

 

X

1

 

0

Y

 

 

 

 

p=

s

 

 

 

 

 

 

 

1

 

0

 

h

 

 

 

 

r

 

 

 

 

0

Рис. 4.4 Блок-схема алгоритма

 

 

42

g

1

 

 

1

q

 

f

 

0

 

 

g

2

 

 

 

1

 

h

r

 

 

 

 

 

3

 

0

 

 

1

 

S

g

4

 

 

 

0

 

1

 

h

 

 

 

 

r

 

 

 

 

 

0

5

 

 

 

Рис. 4.5 E-дерево выполнения программы

43

Условия ветвления выражаются предикатами s, q, r. Программная функция алгоритма с ветвлениями без циклов определяется как объединение композиций программных функций, которые получаются непосредственно из E-дерева. Необходимое и достаточное условие выполнения конкретной ветви определяется композицией каждого предиката с предшествующей функцией пути.

44

Здесь имеется пять путей выполнения. Программная функция каждого пути имеет вид:

{(X,Y): s(X) & q(f(X)) & Y=g(f(X))}.

{(X,Y): s(X) & q(f(X)) & r(h(f(X))) & Y=g(h(f(X)))}. {(X,Y): s(X) & q(f(X)) & r(h(f(X))) & Y=h(f(X))}. {(X,Y): s(X) & r(h(X)) & Y=g(h(X))}.

{(X,Y): s(X) & r(h(X)) & Y=h(X)}.

45

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

[P]={(X,Y) s(X) & q(f(X)) Y=g(f(X));

s(X) & (q( f(X) )& r(h(f(X))) Y=g(h( f(X)));

s(X) & (q(f(X))) & (r(h(f(X)))) Y=h(f(X));

s(X) & r(h(X)) Y=g(h(X));

s(X) & (r(h(X))) Y=h(X)}.

46

Пример 4.4. Задан алгоритм с использованием операторов ветвления (Рис.4.6).

IF x<-1 THEN x:=x+y ELSE IF y<0 THEN y:=x-y; IF y>-2 THEN y:=x+y ELSE x:=x-y

Рис.4.6

Требуется определить программную функцию, реализуемую этим алгоритмом.

47

В данном алгоритме начальное значение поля данных (x0,y0). Введем обозначения для предикатов, описывающих условия ветвления:

P1(x)="x<-1" , P2(y)="y<0" , P3(y)="y>-2",

а также обозначения для операторов присваивания:

A1="x:=x+y", A2="y:=x-y", A3="y:=x+y", A4="x:=x-y".

48

Тогда можно записать схему алгоритма в следующем виде (рис.4.7).

IF P1 THEN A1 ELSE IF P2 THEN A2;

IF P3 THEN A3 ELSE A4

Рис.4.7.

Этой схеме соответствует блок-схема алгоритма (рис.4.8) и E-схема (рис.4.9).

49

 

 

 

A1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

A3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p =

X

 

 

 

 

 

 

 

 

Y

 

 

 

 

A2

 

 

 

 

 

 

P1

 

 

 

P3

 

 

 

 

 

 

1

 

0

0

A4

 

P2

 

 

Рис. 4.8

 

50

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

P3

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P1

 

 

A2

 

 

 

 

 

 

 

 

 

 

 

P3

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

P2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.9

A3

1.1

1.2

A4

A3

2.1

2.2

A4

A3

3.1

3.2

A4

Соседние файлы в папке Электронные лекции 2013