53 lines
805 B
Plaintext
53 lines
805 B
Plaintext
program Knuth;
|
|
|
|
const
|
|
startIdx = -5;
|
|
max = 11;
|
|
type
|
|
tmyData = string[9];
|
|
tmylist = array [startIdx..startIdx+max-1] of tmyData;
|
|
|
|
procedure InitList(var a: tmylist);
|
|
var
|
|
i: integer;
|
|
Begin
|
|
for i := Low(a) to High(a) do
|
|
str(i:3,a[i])
|
|
end;
|
|
|
|
procedure shuffleList(var a: tmylist);
|
|
var
|
|
i,k : integer;
|
|
tmp: tmyData;
|
|
begin
|
|
for i := High(a)-low(a) downto 1 do begin
|
|
k := random(i+1) + low(a);
|
|
tmp := a[i+low(a)]; a[i+low(a)] := a[k]; a[k] := tmp
|
|
end
|
|
end;
|
|
|
|
procedure DisplayList(const a: tmylist);
|
|
var
|
|
i : integer;
|
|
Begin
|
|
for i := Low(a) to High(a) do
|
|
write(a[i]);
|
|
writeln
|
|
end;
|
|
|
|
{ Test and display }
|
|
var
|
|
a: tmylist;
|
|
i: integer;
|
|
begin
|
|
randomize;
|
|
InitList(a);
|
|
DisplayList(a);
|
|
writeln;
|
|
For i := 0 to 4 do
|
|
Begin
|
|
shuffleList(a);
|
|
DisplayList(a);
|
|
end;
|
|
end.
|