Если я правильно понял условие: Сначала
строго положительные (не важно в каком порядке), затем нулевые и отрицательные в перемешку, то посмотри вот это:
Код
const
n = 10;
var
x: Array [1..n] of Integer = (-1, -2, 0, 1, 2, 4, -1, 5, 0, -12);
left, right, T: Integer;
begin
for T := 1 to n do write(x[T]:4); writeln;
left := 1;
right := n;
repeat
// ищем первый не положительный слева
while (left < right) and (x[left] > 0) do inc(left);
// ищем первый положительный справа
while (right > left) and (x[right] <= 0) do dec(right);
// меняем их местами
T := x[left];
x[left] := x[right];
x[right] := T;
until left >= right;
for T := 1 to n do write(x[T]:4);
end.
ps пиши пожалуйста на Русском языке.
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'