User's Manual

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+2dx, xs+3dx, … 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:
J1 # 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.