МНР-программа для функции f(x, y)=x+y:
Рассмотрим первый пример детально.
Запишем необходимые команды, для  обсчета функции f(x, y)=x+y. Имеем:
  1. J(1,2,5)
  2. S(0)
  3. S(2)
  4. J(0,0,1)

Теперь покажем, как работает программа на конкретном примере. Следовательно, имеем:
f(x, y)=x+y:

f(2,3)=2+3

Начальные условия записываем в регистры Rи R1.  Шаг за шагом выполняем необходимые команды, пока машина не остановится.

R0R1R2R3
2
3
0
0
3
3
0
0
3
3
1
0
4
3
1
0
4
3
2
0
5
3
2
0
5
3
3
0

 Результ считываем из регистра R0.  Следовательно, имеем, что 2+3=5



МНР-программа для функции f(x, y)=x-y:

  1. J(0,1,5)
  2. S(1)
  3. S(2)
  4. J(0,0,1)
  5. Т(2,0)

Аналогично, к предыдущему примеру имеем: f(x, y)=x-y:

f(5,2)=5-2

R0R1R2R3
5
2
0
0
5
3
0
0
5
3
1
0
5
4
1
0
5
4
2
0
5
5
2
0
55
3
0
3
5
3
0

  Результ считываем из регистра R0.  Следовательно, имеем, что 5-2=3.
Для следующих примеров, действия аналогичны.

 

МНР-программа для функции f(x)=2x:

  1. T(0,1)
  2. J(1,2,6)
  3. S(0)
  4. S(2)
  5. J(0,0,2)


. МНР-программа для функции f(x, y)=max(x, y):
  1. J(0,2,5)
  2. J(1,2,6)
  3. S(2)
  4. J(0,0,1)
  5. Т(1,0)

 МНР-программа для функции f(x)=x/2:

  1. J(0,2,6)
  2. S(2)
  3. S(2)
  4. S(1)
  5. J(0,0,1)
  6. Т(1,0)

МНР-программа для предиката "x=y":

  1. J(0,1,3)
  2. J(0,0,4)
  3. S(2)
  4. T(2,0)

МНР-программа для функции f(x)=[x/2]:

  1. J(0,2,7)
  2. S(2)
  3. J(0,2,7)
  4. S(2)
  5. S(1)
  6. J(0,0,1)
  7. Т(1,0)

МНР-программа для функции f(x)=sg(x):

  1. J(0,1,4)
  2. Z(0)
  3. S(0)

 МНР-программа для функции f(x, y)=x⋅y,

  1. J(3,1,9)
  2. J(0,2,6)
  3. S(2)
  4. S(4)
  5. J(0,0,2)
  6. Z(2)
  7. S(3)
  8. J(0,0,1)
  9. Т(4,0)



2012-12-05 • Просмотров [ 5061 ]