Нуль считаем особым числом ни положительным ни отрицательным.
Program Amount;
Uses crt;
var i,n,otr,pol,nz,v:integer;
begin
clrscr;
write('Input n=');
readln(n);
otr:=0;nz:=0;pol:=0;
randomize;
for i:=1 to n do
begin
v:=random(10)-5;
write(v);write(' ');
if (v>0) then pol:=pol+1
else if (v<0) then otr:=otr+1;<br> end;
nz:=otr+pol;
writeln;
writeln('Amount of positive numbers:',pol); {Кол-во полжительных чисел}
writeln('Amount of negative numbers:',otr); {Кол-во отрицательных чисел}
writeln('Amount of non-zero numbers:',nz); {Кол-во ненулевых чисел}
readkey;
end.