uses crt;
const
nmax = 100;
var
a: array [1 .. nmax] of integer;
n, i, k, j, x: integer;
begin
clrscr;
randomize;
repeat
write('Размер масива до ', nmax, ' n=');
readln(n);
until n in [1 .. nmax];
writeln('Исходный массив:');
for i := 1 to n do
begin
repeat
a[i] := random(20) - 9;
until a[i] <> 0; { поскольку про ноли ничего не сказано, сделаем без нолей }
write(a[i], ' ');
end;
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.