Современные версии программного обеспечения (и в том числе, для языка Паскаль) позволяют в короткие сроки создавать очень короткие, наглядные и эффективные решения.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(20,-99,99); a.Println; a.Where(x->x<0).Concat(a.Where(x->x>=0)).Println end.
Замечание: Если стоит задача получить именно массив, а потом его вывести, можно написать так: // PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(20,-99,99); a.Println; a:=a.Where(x->x<0).Concat(a.Where(x->x>=0)).ToArray; a.Println end.
var a:array [1..12] of integer;
i:integer;
begin
write ('Массив ');
for i:=1 to 12 do
begin
a[i]:=random(10);
write(a[i]:3)
end;
writeln;
write ('Массив ');
for i:=1 to 12 do
begin
a[i]:=a[i]+2;
write(a[i]:3)
end;
end.