вот что получилось:
const len=10;
type mymas=array [1..len] of integer;
var A,B,work:mymas; i:integer;
procedure index(m:mymas; var ind:mymas);
var i,j,k:integer;
begin
for i:=1 to len do begin
j:=m[i];k:=0;
while j>0 do begin
k:=k+1;
j:=j div 10;
end;
ind[i]:=k;
end;
end;
procedure doit(m,ind:mymas;var x:mymas);
var k,i,j,max:integer; indx:mymas;
begin indx:=ind;
for i:=1 to len do
for j:=i to len do begin
if (max<indx[i]) then begin max:=indx[i];
k:=j;end;
indx[i]:=ind[k];
indx[k]:=ind[i];
x[i]:=m[k];
end;
end;
begin
for i:=1 to len do
begin
writeln('vvod');
readln(a[i]);
end;
index(A,work);
doit(A,work,B);
for i:=1 to len do
writeln(b[i]);
end.
в искомом массиве получаются одни нули, где ошибка?