Page 21-57
@SST
↓
@
Empty stack (NEXT – end of loop)
--- loop execution number 3 for k = 2
@SST
↓
@
SL1 = 2. (k)
@SST
↓
@
SL1 = 4. (SQ(k) = k
2
)
@SST
↓
@
SL1 = 1.(S), SL2 = 4. (k
2
)
@SST
↓
@
SL1 = 5. (S + k
2
)
@SST
↓
@
SL1 = 1., SL2 = 5. (S + k
2
)
@SST
↓
@
SL1 = 2.(k), SL2 = 1., SL3 = 5. (S + k
2
)
@SST
↓
@
SL1 = 3.(k+1), SL2 = 5. (S + k
2
)
@SST
↓
@
SL1 = ‘k’, SL2 = 3., SL3 = 5. (S + k
2
)
@SST
↓
@
SL1 = 5. (S + k
2
) [Stores value of SL2 = 3,
into SL1 = ‘k’]
@SST
↓
@
SL1 = ‘S’, SL2 = 5. (S + k
2
)
@SST
↓
@
Empty stack [Stores value of SL2 = 0, into
SL1 = ‘S’]
@SST
↓
@
Empty stack (NEXT – end of loop)
--- for n = 2, the loop index is exhausted and control is passed to the statement
following NEXT
@SST
↓
@
SL1 = 5 (S is recalled to the stack)
@SST
↓
@
SL1 = “S”, SL2 = 5 (“S” is placed in the
stack)
@SST
↓
@
SL1 = S:5 (tagging output value)
@SST
↓
@
SL1 = S:5 (leaving sub-program
»
)
@SST
↓
@
SL1 = S:5 (leaving main program
»
)
The step-by-step listing is finished. The result of running program
@@@S1@@
with n
= 2, is S:5.
Check also the following results:
J
3
@@@S1@@
Result:
S:14
4
@@@S1@@
Result:
S:30
5
@@@S1@@
Result:
S:55
8
@@@S1@@
Result:
S:204
10
@@@S1@@
Result:
S:385
20
@@@S1@@
Result:
S:2870
30
@@@S1@@
Result:
S:9455
100
@@@S1@@
Result:
S:338350