Program Filesort;
uses crt;
var f: file of integer;
x, y : integer;
i, j : integer;
begin
{$I-}
Clrscr;
assign (f, 'sort_dat.pas');
{$I+} { Создаем файл случайных чисел}
Rewrite ( f );
Randomize;
J :=random( 100 ); { количество элементов файла }
For i:=1 to j do
begin
x:=random(100);
write( f, x );
End;
close ( f );
writeln ('исходный файл');
reset ( f );
for i:=1 to fileSize ( f ) do
begin
read ( f, x );
write ( x:4 );
end;
writeln;
close ( f ); { сортировка }
reset ( f );
for I :=fileSize(f)-1 downto 1 do
{ всплывание очередного максимального элемента на 1-ую позицию}
for j:=0 to I -1 do
begin
seek ( f, j );
Read (f, x, y);
if x>y then
begin
seek(f, j);
write ( f, y, x );
end;
end;
close ( f );
reset ( f );
writeln ('отсортированный файл');
for i:=1 to fileSize ( f ) do
begin
read( f, x );
write ( x:4 );
end;
readln;
close ( f );
end.