Возможно потому что в тот момент, когда я читал, у меня слово "обратные" ассоциировалось не с 1/x, а с -x.Но от этого кординально ничег оне меняется.
for j:=1 to N-1 do
for i:=p to N-j do
if (a[i]>0 and (abs(1/a[i])<abs(1/a[i+1])) then
swap(a[i],a[i+1]);
Как бы я сразу сказал, что само условие нечетко понял, поэтому, если что, поправьте.
не могли бы вы объяснить, для чего мы вводим? procedure swap(var x,y: integer);
var t: integer;
begin
t := x;
x := y;
y := t
end;

 


 
  
        	





