|
Repeated Text |
Top Previous Next |
|
The REPEAT..ENDREPEAT construct allows the repetition of sections of input text.
The syntax looks like a FOR loop in procedural languages, but we emphasize that in FlexPDE this feature constitutes a textual repetition, not a procedural repetition.
The form of a repeat clause is
REPEAT name = initial TO final REPEAT name = initial BY delta TO final
These statements specify that the following lines of descriptor text should be repeated a number of times. The given name is defined as if it had appeared in the DEFINITIONS section, and is given the value specified by initial.
The repeated section of text is terminated by the statement
ENDREPEAT
At this point, the value of name is incremented by delta (or by one, if no delta is given). If the new value is not greater than final, the repeated text is scanned again with the new value in place of name. If delta is negative, the value of name is decremented and the termination test is modified accordingly.
The REPEAT statement can appear in the following locations:
Use of ARRAYS and the $integer string function can extend the power of the REPEAT loop.
Examples:
REPEAT xc=1/4 by 1/4 to 7/4 REPEAT yc=1/4 by 1/4 to 7/4 START(xc+rad,yc) ARC(CENTER=xc,yc) ANGLE=360 CLOSE ENDREPEAT ENDREPEAT
This double loop constructs a 7 x 7 array of circles, all part of the same REGION.
See the sample problems:
[Note: REPEAT..ENDREPEAT replaces the older FOR..ENDFOR facility used in earlier versions of FlexPDE. The older facility is still supported for backward compatibility, but should not be used in new problem descriptors.]
|