Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
52
Task/Knuth-shuffle/Pascal/knuth-shuffle.pas
Normal file
52
Task/Knuth-shuffle/Pascal/knuth-shuffle.pas
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue