RosettaCodeData/Task/Loops-Nested/XBasic/loops-nested.basic

50 lines
1.0 KiB
Plaintext

PROGRAM "loopsnested"
IMPORT "xst" ' for XstGetSystemTime
DECLARE FUNCTION Entry()
' Pseudo-random number generator
' Based on the rand, srand functions from Kernighan & Ritchie's book
' 'The C Programming Language'
DECLARE FUNCTION Rand()
DECLARE FUNCTION SRand(seed%%)
FUNCTION Entry()
DIM array%[10, 10]
XstGetSystemTime (@msec)
SRand(INT(msec) MOD 32768)
FOR row% = 0 TO 10
FOR col% = 0 TO 10
array%[row%, col%] = INT(Rand() / 32768.0 * 20.0) + 1
NEXT col%
NEXT row%
isFound% = $$FALSE
FOR row% = 0 TO 10
PRINT "Row:"; row%
FOR col% = 0 TO 10
PRINT " Col:"; col%; ", value:"; array%[row%, col%]
IF array%[row%, col%] = 20 THEN
isFound% = $$TRUE
EXIT FOR
END IF
NEXT col%
IFT isFound% THEN
EXIT FOR
END IF
NEXT row%
END FUNCTION
' Return pseudo-random integer on 0..32767
FUNCTION Rand()
#next&& = #next&& * 1103515245 + 12345
END FUNCTION USHORT(#next&& / 65536) MOD 32768
' Set seed for Rand()
FUNCTION SRand(seed%%)
#next&& = seed%%
END FUNCTION
END PROGRAM