procedure FileSort(Name: String);
var f: file of byte; i, j, min, PosMin, tmp: byte;
begin
assign(f,name);
reset(f);
for i:=0 to FileSize(f)-2 do
begin
seek(f,i);
read(f,min);
{Поиск минимума}
for j:=i+1 to FileSize(f)-1 do
begin
seek(f,j);
read(f,tmp);
if tmp<min then
begin
min:=tmp;
PosMin:=j
end;
end;
{Обмен}
seek(f,i);
read(f,tmp);
seek(f,i);
write(f,min);
seek(f,PosMin);
write(f,tmp);
end;
seek(f,0);
while not eof(f) do
begin
read(f,tmp);
write(tmp:4);
end;
close(f);
end;
var f: file of byte; s: string; i,x: byte;
begin
s:='C:\PABCWork.NET\Pas\FileSort.dat';
assign(f,s);
rewrite(f);
randomize;
for i:=0 to 9 do
begin
x:=random(256);
write(f,x);
write(x:4);
end;
writeln;
close(f);
FileSort(s);
end.
procedure FileSort(Name: String);
var f: file of byte; i, j, min, PosMin, tmp: byte;
begin
assign(f,name);
reset(f);
for i:=0 to FileSize(f)-2 do
begin
PosMin:=i;
seek(f,i);
read(f,min);
{Поиск минимума}
for j:=i+1 to FileSize(f)-1 do
begin
seek(f,j);
read(f,tmp);
if tmp<min then
begin
min:=tmp;
PosMin:=j
end;
end;
{Обмен}
seek(f,i);
read(f,tmp);
seek(f,i);
write(f,min);
seek(f,PosMin);
write(f,tmp);
end;
seek(f,0);
while not eof(f) do
begin
read(f,tmp);
write(tmp:4);
end;
close(f);
end;
var f: file of byte; s: string; i,x: byte;
begin
s:='C:\PABCWork.NET\Pas\FileSort.dat';
assign(f,s);
rewrite(f);
randomize;
for i:=0 to 9 do
begin
x:=random(256);
write(f,x);
write(x:4);
end;
writeln;
close(f);
FileSort(s);
end.
/home/micren/projects/Pascal/test
194 144 172 98 119 79 149 92 85 161
79 85 92 98 119 144 149 161 172 194
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.