Loops/Wrong ranges: Difference between revisions

Content added Content deleted
(Loops/Wrong ranges en BASIC256)
(Applesoft BASIC)
Line 210: Line 210:
</pre>
</pre>


=={{header|Applesoft BASIC}}==
<lang ApplesoftBasic>0 LIMIT = 10 :MAX=1E37
10 DATA-2,2,1,NORMAL
20 DATA-2,2,0,ZERO INCREMENT
30 DATA-2,2,-1,INCREMENTS AWAY FROM STOP VALUE
40 DATA-2,2,10,FIRST INCREMENT IS BEYOND STOP VALUE
50 DATA2,-2,1,"START MORE THAN STOP: POSITIVE INCREMENT
60 DATA2,2,1,"START EQUAL STOP: POSITIVE INCREMENT
70 DATA2,2,-1,"START EQUAL STOP: NEGATIVE INCREMENT
80 DATA2,2,0,"START EQUAL STOP: ZERO INCREMENT
90 DATA0,0,0,"START EQUAL STOP EQUAL ZERO: ZERO INCREMENT
100 FOR I = 1 TO 9
110 READ START,FINISH,INCR,COMMENT$
120 PRINT CHR$(13)COMMENT$
130 LAST = FINISH
140 REM D = SGN(FINISH - START)
150 REM IF D AND NOT (D = SGN(INCR)) THEN LAST = SGN(INCR)*MAX
160 PRINT TAB(5)CHR$(91)" "MID$(" ",(START<0)+1)START" TO "MID$(" ",(FINISH<0)+1)FINISH" STEP "MID$(" ",(INCR<0)+1)INCR" ] ";
170 COUNT = 0
180 PRINT MID$(" ",(START<0)+1);
190 FOR J = START TO LAST STEP INCR
200 PRINT MID$(" ",(COUNT=0)+1)J;
210 IF COUNT < LIMIT THEN COUNT = COUNT + 1 : NEXT J
220 IF COUNT = LIMIT THEN PRINT " ... ";:if ABS(LAST) = MAX THEN PRINT MID$("-",SGN(LAST)+2,1)"INFINITY";
230 NEXT I</lang>
{{out}}
<pre>
NORMAL
[ -2 TO 2 STEP 1 ] -2 -1 0 1 2
ZERO INCREMENT
[ -2 TO 2 STEP 0 ] -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 ...
INCREMENTS AWAY FROM STOP VALUE
[ -2 TO 2 STEP -1 ] -2
FIRST INCREMENT IS BEYOND STOP VALUE
[ -2 TO 2 STEP 10 ] -2
START MORE THAN STOP: POSITIVE INCREMENT
[ 2 TO -2 STEP 1 ] 2
START EQUAL STOP: POSITIVE INCREMENT
[ 2 TO 2 STEP 1 ] 2
START EQUAL STOP: NEGATIVE INCREMENT
[ 2 TO 2 STEP -1 ] 2
START EQUAL STOP: ZERO INCREMENT
[ 2 TO 2 STEP 0 ] 2
START EQUAL STOP EQUAL ZERO: ZERO INCREMENT
[ 0 TO 0 STEP 0 ] 0
</pre>
=={{header|AWK}}==
=={{header|AWK}}==
<lang AWK>
<lang AWK>