В целочисленном массиве имеется несколько групп элементов, образующих строго возрастающие последовательности. Определить среднюю длину тех последовательностей, которые начинаются с отрицательного элемента.- Pascal(Паскаль)

const nmax=100;
var a:array[1..nmax] of integer;
    n,i,j,k,p,s:byte;
 
begin
clrscr;
randomize;
repeat
write('Размер масcива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=random(20)-9;
  write(a[i]:4);
 end;
writeln;
writeln;
i:=2;{начнем со второго}
p:=0;{количество интервалов возрастания, начинающихся с отрицательного}
s:=0;{общая их длина}
while i<=n do
if (a[i-1]<0)and (a[i]>=a[i-1]) then
  begin
   j:=i;k:=1;{1 элемент}
   while (a[j]>=a[j-1])and(j<=n) do{если идет последовательность}
    begin
     j:=j+1;
     k:=k+1;{считаем}
    end;
   if k>1 then{если не одно число}
    begin
     p:=p+1;{считаем послед.}
     s:=s+k;{суммируем}
    end;
   i:=i+k;{перешагиваем}
  end
else i:=i+1;{иначе просто вперед}
writeln('Количество интервалов возрастания, начинающихся с отрицательных=',p);
write('Их общая длина=',s,' средняя длина=',s/p:0:1);
readln
end.

Leave a Comment

− 6 = 2