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