var
number, N, npol, notr, n0, i: integer; {npol - количество положительных чисел, notr - количество отрицательных, n0 - количество нулей}
begin
writeln('Введите N');
readln(N);
for i:= 1 to N do
begin
writeln('Введите целое число');
readln(number);
if number < 0 then notr:= notr + 1;
if number > 0 then npol:= npol + 1;
if number = 0 then n0:= n0 + 1;
end;
writeln('Было введено ', notr, ' отрицательных чисел, ', npol, ' положительных чисел, ', n0, ' нулей');
end.
А для тестов ты просто вводишь числа и проверяешь, правильно ли нашлось количество.
p:longint;
i:integer;
begin
p:=1;
repeat
i:=i+1;
readln(a[i]);
if a[i]<0 then begin if a[i]<>-4 then writeln('Vvedite polozhitelnoe chuslo');
end
else
begin
if a[i] mod 2<>0 then p:=p*a[i];end;
until a[i]=-4;
writeln('Proizvidenie = ',p);
end.