Page 21-58
The START…STEP construct
The general form of this statement is:
start_value end_value START program_statements increment
NEXT
The start_value, end_value, and
increment
of the loop index can be
positive or negative quantities. For
increment > 0
, execution occurs as
long as the index is less than or equal to
end_value
. For
increment < 0
,
execution occurs as long as the index is greater than or equal to
end_value
.
Example
– generating a list of values
Suppose that you want to generate a list of values of x from x = 0.5 to x =
6.5 in increments of 0.5. You can write the following program:
«
→
xs xe dx
«
xs DUP xe START DUP dx + dx STEP DROP xe
xs – dx / ABS 1 +
→
LIST
»
»
and store it in variable
@GLIST
.
In this program , xs = starting value of the loop, xe = ending value of the loop,
dx = increment value for loop. The program places values of xs, xs+dx,
xs+2
⋅
dx, xs+3
⋅
dx, … in the stack. Then, it calculates the number of elements
generated using the piece of code:
xe xs – dx / ABS 1. +
Finally, the program puts together a list with the elements placed in the stack.
•
Check out that the program call 0.5
`
2.5
`
0.5
`
@GLIST
produces the list {0.5 1. 1.5 2. 2.5}.
•
To see step-by-step operation use the program DBUG for a short list, for
example:
J
1
#
1.5
#
0.5
`
Enter parameters 1 1.5 0.5
[ ‘ ]
@GLIST
`
Enter the program name in level 1
„°LL
@)@RUN@ @@DBG@
Start the debugger.