Задана последовательность вещественных чисел. Создать переменную, поля которой содержать: а)последовательность положительных элементов и их количество; б) количество нулевых элементов; в)последовательность отрицательных элементов и их количество — Pascal(Паскаль)

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.

Leave a Comment

59 + = 65