Вычислить средне геометрическое (арифметическое) элементов массива, удовлетворяющих условию A(I)>B, где В-константа — Pascal(Паскаль)

uses crt;
const nmax=100;
var a:array[1..nmax] of real;
    n,i,k:byte;
    b,sg,sa:real;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
//поскольку про положительные числа в услоаии ничего нет
//будем считать что все положительные, иначе не посчитать сред. геометр.
  a[i]:=20*random;
  write(a[i]:5:1);
 end;
writeln;
writeln;
write('Введите число для сравнния B=');
readln(b);
sg:=1;sa:=0;k:=0;
for i:=1 to n do
if a[i]>b then
 begin
  k:=k+1;
  sg:=sg*a[i];
  sa:=sa+a[i];
 end;
if k=0 then write('Элементов больше ',b:0:1,' нет!')
else
 begin
  sg:=exp(ln(sg)/k);
  sa:=sa/k;
  writeln('Среднее геометрическое=',sg:0:2);
  writeln('Среднее арифметическое=',sa:0:2);
 end;
readln
end.

Leave a Comment

2 + 8 =