Код:
uses crt;
const n=10;
type
itype=word;
var mass : array [1..n] of itype;
i, j,x, k: integer;
Procedure Swap(Var a, b: itype);
Var p: integer;
begin
p := a;
a := b;
b := p;
end;
function LengthI(ch:integer):integer;
var
s:string;
begin
str(ch,s);
lengthi:=length(s);
end;
function NumberPos(ch,posi:integer):integer;
var
s:string;
code,tmpi:integer;
begin
str(ch,s);
if length(s)<posi then
numberpos:=0
else
begin
delete(s,1,length(s)-posi);
if length(s)>1 then
delete(s,2,length(s)-1);
val(s,tmpi,code);
numberpos:=tmpi
end;
end;
procedure BucketSort(var mas: array [1..n] of itype);
var
i,k,koliter,posf,posi,tmp:integer;
mastmp: array [1..n] of itype;
pos: array [1..n] of byte;
begin
koliter:=0;
for i:=1 to n do
begin
if lengthi(mas[i])>koliter then
koliter:=lengthi(mas[i]);
pos[i]:=0;
end;
for i:=1 to koliter do
begin
for k:=1 to n do
begin
pos[k]:=numberpos(mas[k],i);
mastmp[k]:=mas[k];
end;
posi:=1;
for posf:=0 to 9 do
for k:=1 to n do
if (pos[k]=posf) then
begin
mas[posi]:=mastmp[k];
inc (posi);
end;
end;
end;
procedure CreateArr;
const arr:array[1..10]of itype = (1235,2345,3462,42415,4214,2425,12412,4200,1255,24456);
var a:byte;
begin
randomize;
WriteLn(' Створення');
WriteLn(' 1 Випадкове заповнення');
WriteLn(' 2 Масив -константа');
WriteLn(' 0 Повернення в головне меню');
readln(a);
case a of
1:begin
for i:= 1 to n do
mass[i] := random(65535);
writeln('Масив створено');
end;
2: begin
for i:= 1 to n do
mass[i] := arr[i];
writeln('Масив створено');
end;
end;
end;
Procedure PrintArr(var m:array[1..n] of word );
Begin
for i:= 1 to n do
write (m[i],' ');
writeln;
end;
procedure SelectionSort(var m:array[1..n] of word );
begin
for i:= 1 to n-1 do
begin
for j:= i+1 to n do
if mass[i]>mass[j] then
swap(m[i],m[j]);
end;
end;
begin
repeat
WriteLn('1. Створення');
WriteLn('2. Виведення');
WriteLn('3. Сортування вибором');
WriteLn('4. Розподілбьне сортування');
WriteLn('0. Виход');
Write(' Обер1ть д1ю: ');
readln (x);
case x of
1:CreateArr();
2:PrintArr(mass);
3:SelectionSort(mass);
4: BucketSort(mass);
0:break;
end;
until false;
end.
помогите пожалуйста