Тема: Розбити програму на окремі процедури
Допоможіть, будь ласка, переробити програму, використовуючи підпрограму типу функцій
uses crt;
const n=20;
var a:array[1..n] of integer;
i,j,k,x:integer;
begin
clrscr;
randomize;
writeln('Вихідний масив:');
for i:=1 to n do
begin
a[i]:=-9+random(19);
write(a[i],' ');
end;
writeln;
writeln;
{упорядковуємо негативні елементи}
for i:=1 to n-1 do
for j:=i+1 to n do
if(a[i]<0)and(a[j]<0)and(a[i]>a[j]) then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
{упорядковуємо позитивні елементи}
for i:=1 to n-1 do
for j:=i+1 to n do
if(a[i]>0)and(a[j]>0)and(a[i]>a[j]) then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
writeln('Упорядкування:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
{Перестановка негативних елементів вперед}
k:=0;
for i:=1 to n do
if a[i]<0 then
begin
k:=k+1;
x:=a[i];
for j:=i downto k+1 do
a[j]:=a[j-1];
a[k]:=x;
end;
writeln('Перестановка негативних елементів вперед:');
for i:=1 to n do
write(a[i],' ');
readln
end.