43 lines
551 B
Text
43 lines
551 B
Text
PROC PrintTable(INT ARRAY tab BYTE size)
|
|
BYTE i
|
|
|
|
FOR i=0 TO size-1
|
|
DO
|
|
PrintF("%I ",tab(i))
|
|
OD
|
|
PutE()
|
|
RETURN
|
|
|
|
PROC KnuthShuffle(INT ARRAY tab BYTE size)
|
|
BYTE i,j
|
|
INT tmp
|
|
|
|
i=size-1
|
|
WHILE i>0
|
|
DO
|
|
j=Rand(i+1)
|
|
tmp=tab(i)
|
|
tab(i)=tab(j)
|
|
tab(j)=tmp
|
|
i==-1
|
|
OD
|
|
RETURN
|
|
|
|
PROC Main()
|
|
BYTE i,size=[20]
|
|
INT ARRAY tab(size)
|
|
|
|
FOR i=0 TO size-1
|
|
DO
|
|
tab(i)=-50+10*i
|
|
OD
|
|
|
|
PrintE("Original data:")
|
|
PrintTable(tab,size)
|
|
PutE()
|
|
|
|
KnuthShuffle(tab,size)
|
|
|
|
PrintE("Shuffled data:")
|
|
PrintTable(tab,size)
|
|
RETURN
|