Entry
BBCBASIC: Windows: Recursion: Can you write a program creating nested FOR NEXT loops?
May 4th, 2007 10:33
Knud van Eeden,
----------------------------------------------------------------------
--- Knud van Eeden --- 09 April 2021 - 07:57 pm ----------------------
BBCBASIC: Windows: Recursion: Can you write a program creating nested
FOR NEXT loops?
===
1. -To create the equivalent of 3 nested loops
FOR I% = 1 TO 3
FOR J% = 1 TO 3
FOR K% = 1 TO 3
PRINT I%, J%, K%
NEXT K%
NEXT J%
NEXT I%
you can e.g. create a recursive program
2. -Create e.g. the following program
--- cut here: begin --------------------------------------------------
DIM I%( 100 )
:
PROCForNext( 1, 3, 3 )
REM PROCForNext( 1, 4, 4 )
REM PROCForNext( 1, 5, 5 )
REM PROCForNext( 1, 6, 6 )
END
:
:
:
DEF PROCForNext( minI%, maxI%, nestMaxI% )
PROCForNextSub( nestMaxI% )
ENDPROC
:
DEF PROCForNextSub( nestMaxI% )
LOCAL I%
IF nestMaxI% = 0 THEN PROCForNextPrint( minI%, maxI% ) : ENDPROC
FOR I% = minI% TO maxI%
I%( nestMaxI% ) = I%
PROCForNextSub( nestMaxI% - 1 )
NEXT I%
ENDPROC
:
DEF PROCForNextPrint( minI%, maxI% )
LOCAL I%
FOR I% = maxI% TO minI% STEP -1
PRINT; I%( I% ); " ";
NEXT I%
PRINT
ENDPROC
:
--- cut here: end ----------------------------------------------------
3. -If you run this it will show
--- cut here: begin --------------------------------------------------
1 1 1
1 1 2
1 1 3
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3
2 1 1
2 1 2
2 1 3
2 2 1
2 2 2
2 2 3
2 3 1
2 3 2
2 3 3
3 1 1
3 1 2
3 1 3
3 2 1
3 2 2
3 2 3
3 3 1
3 3 2
3 3 3
--- cut here: end ----------------------------------------------------
4. -If you run it with
PROCForNext( 1, 4, 4 )
it will show the equivalent of
--- cut here: begin --------------------------------------------------
FOR I% = 1 TO 4
FOR J% = 1 TO 4
FOR K% = 1 TO 4
FOR L% = 1 TO 4
PRINT I%, J%, K%, L%
NEXT L%
NEXT K%
NEXT J%
NEXT I%
--- cut here: end ----------------------------------------------------
5. -If you run it with
PROCForNext( 1, 5, 5 )
it will show the equivalent of
--- cut here: begin --------------------------------------------------
FOR I% = 1 TO 5
FOR J% = 1 TO 5
FOR K% = 1 TO 5
FOR L% = 1 TO 5
FOR M% = 1 TO 5
PRINT I%, J%, K%, L%, M%
NEXT M%
NEXT L%
NEXT K%
NEXT J%
NEXT I%
--- cut here: end ----------------------------------------------------
===
Internet: see also:
---
BBCBASIC: Windows: Combinatorics: Link: Can you give an overview of
links?
http://www.faqts.com/knowledge_base/view.phtml/aid/45285/fid/768
----------------------------------------------------------------------