Задача 9.
Условие: В файле из вещественных чисел переставить элементы таким образом, чтобы сначала были записаны все положительные, затем все отрицательные, а потом все нули.

Программа:
program S2_Z9;
type fi=file of integer; m=array[1..100] of integer;
var f1:fi;n:integer;

procedure vvod(n:integer;var f:fi);
var i,a:integer;
begin
assign (f,'c:\f.int');
rewrite(f);
writeln('Введите компоненты файла');
for i:=1 to n do begin
read(a);write(f,a);end;
close (f);
end;

procedure sort(n:integer;var f:fi);
var buf:fi;s,i,j,k:integer; a:m;
begin
reset(f);
assign (buf,'c:\buf.int');
rewrite(buf);
while not eof(f) do begin
for i:=1 to n do begin read(f,s); A[i]:=s;end;end;
for j:=1 to n do
for i:=1 to n do
if a[i]>a[i-1] then begin
s:=a[i];a[i]:=a[i-1];a[i-1]:=s;end;
k:=0;
for i:=1 to n do
if a[i]=0 then begin s:=a[i];a[i]:=a[n-k];a[n-k]:=s;k:=k+1;end;
for i:=1 to n do write(buf,a[i]);
close(buf);close(f);
erase(f);
rename(buf,'c:\f.int');
end;

procedure w(var f:fi);
var a:integer;
begin
reset(f);
while not eof(f) do begin
read(f,a);write(a:4);end;
end;

begin
writeln('Задайте кол-во компонентов файла');readln(n);
vvod(n,f1);
sort(n,f1);
w(f1);
write;
end.
