uses crt;
type posl=record
pol:array[1..1000] of real;
kp:integer;
kn:integer;
otr:array[1..1000] of real;
ko:integer;
end;
var p:posl;
a:real;
n,m,i:integer;
begin
clrscr;
writeln('Введите последовательность вещественных');
writeln('положительных, отрицательных и нулевых чисел, окончание ввода -1');
n:=0;
m:=0;
p.kp:=0;
p.kn:=0;
p.ko:=0;
repeat
readln(a);
if a>0 then
begin
n:=n+1;
p.pol[n]:=a;
p.kp:=p.kp+1;
end
else if a<0 then
begin
m:=m+1;
p.otr[m]:=a;
p.ko:=p.ko+1;
end
else p.kn:=p.kn+1;
until a=-1;
writeln('Последовательность положительных чисел:');
for i:=1 to n do
write(p.pol[i]:0:2,' ');
writeln;
writeln('их количество=',p.kp);
writeln;
writeln('Последовательность отрицательных чисел:');
for i:=1 to m do
write(p.otr[i]:0:2,' ');
writeln;
writeln('их количество=',p.ko);
writeln;
write('количество нолей=',p.kn);
readln
end.
Следующий вариант
Program zap;
Uses crt;
Const c: array[1..10] of real=(1.12,2.2,-8.1,5.9,4.7,-3.9,0,-5,7,0);
Type a=record
p,n,o: array[1..10] of real;
kp,ko,kn: byte;
end;
Var b: a; i,j,k,l: byte;
Begin
j:=1;
k:=1;
l:=1;
b.kp:=0;
b.ko:=0;
b.kn:=0;
Clrscr;
Writeln(' Исходный массив: ',^j);
For i:=1 to 10 do
Write(c[i]:4:2,' ');
Writeln(^j,^j);
For i:=1 to 10 do
begin
If c[i]>0 then
begin
b.p[j]:=c[i];
b.kp:=j;
Inc(j);
end;
If c[i]<0 then
begin
b.o[k]:=c[i];
b.ko:=k;
Inc(k);
end
else if c[i]=0 then
begin
b.kn:=l;
Inc(l);
end;
end;
Writeln(' Положительные элементы массива: ');
i:=1;
Repeat
Write(b.p[i]:4:2,' ');
Inc(i);
Until b.p[i]=0;
Writeln(^j,^j);
Writeln(' Отрицательные элементы массива: ');
i:=1;
Repeat
Write(b.o[i]:4:2,' ');
Inc(i);
Until b.o[i]=0;
Writeln(^j,^j);
Writeln('Кол-во положительных эл-ов = ',b.kp);
Writeln('Кол-во отрицательных эл-ов = ',b.ko);
Writeln('Кол-во нулевых эл-ов = ',b.kn)
End.