Составители:
Рубрика:
последовательности является композицией h°g двух частных
функций h и g: [P]={(X,Z)⎥ Z=h(g(X))}.
Пример 2.13. Задана программа в виде последовательности операторов
присваивания на алгоритмическом языке PASCAL (рис.2.2). Требуется
определить функцию, реализуемую этим алгоритмом.
Рассмотрим поле данных (x,y,z), которое используется в данной
программе. Начальное значение поля данных (x
0
,y
0
,z
0
).
Процесс прослеживания состояния
поля данных после выполнения каждого
оператора называется трассировкой. Его
удобно представить таблицей 2.1.
x
:= y + z; y:= x - z; z:= -x + y;
Рис.2.2.
Таблица 2.1
Оператор
x y z
x:=y+z
x
1
=y
0
+ z
0
y
1
=y
0
z
1
=z
0
y:=x-z
x
2
=x
1
y
2
=x
1
-z
1
z
2
=z
1
=x y =y z =-x +y
x
z:=-x+y
3 2 3 2 3 2 2
После выполнения первого оператора присваивания первоначальное значение
x
стирается и заменяется новым значением, x =y +z
0 1 0 0
, причем значения y и z не
меняются, т.е. y
=y , z =z
1 0 1 0
. После выполнения второго оператора присваивания
получаем:
x
= x = y + z ,
2 1 0 0
= x - z = y + z - z = y
y
,
2 1 1 0 0 0 0
= z = z
z
.
2 1 0
После выполнения третьего оператора присваивания получаем:
x
= x = x = y + z ,
3 2 1 0 0
=y = y
y
,
3 2 0
= -x + y = -y -z + y = -z
z
.
3 2 2 0 0 0 0
Таким образом, функцию реализуемую алгоритмом, можно представить
как одновременное присваивание (x,y,z):= (y
+z , y , -z
0 0 0 0
) , в результате
которого первоначальное значение поля данных (x
,y ,z ) изменится на (y +z
0 0 0 0 0
,
y
, -z ).
0 0
113
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »