В одномерных массивах Е[1..N] и F[1..M] определить, сколько нулей находится до минимального значения и среднее арифметическое положительных чисел, находящихся после минимального значения- Pascal(Паскаль)

const
  n=5;
  m=5;
  RealZero=1e-8;
type
  mas=array[1..m] of real;
var
  a,b:mas;
  i: integer;
 
procedure Zahl(arr:mas; n :integer);
var
  i,min,kol,k :integer;
  sr :real;
begin
  min:=1;
  for i:=2 to n do
    if arr[i]<arr[min] then min:=i;
  kol:=0;
  for i:=1 to min-1 do
    if Abs(arr[i])<RealZero then inc(kol);
  k:=0;
  sr:=0;
  for i:=min+1 to n do
    if arr[i]>RealZero then begin
      inc(k);
      sr:= sr+arr[i]
    end;
  writeln('До мин значения кол нулей ровно ',kol);
  if k<>0 then writeln('Среднее положительных ',sr/k:8:2)
  else writeln('нет положительных после минимума');
end;
 
procedure vivod (arr:mas; k:integer;t:string);
begin
  writeln(t);
  for i:=1 to k do
  write (arr[i]:8:2, ' ');
  writeln
end;
 
procedure vvod (var arr:mas; k:integer);
begin
  for i:=1 to n do arr[i]:=random*200-100;
end;
 
begin
  randomize;
  vvod(a,n);
  vivod(a,n, 'massiv a');
  Zahl(a,n);
  vvod(b,m);
  vivod(b,m, 'massiv b');
  Zahl(b,m);
  readln
end.

Leave a Comment

31 + = 39