Поправляю. Во-первых, массив должен быть вещественным, а не целочисленным, а во-вторых, требуется найти среднее геометрическое
n элементов, а оно отнюдь не есть квадратный корень из суммы, как у Вас, а корень
n-ой степени из произведения этих элементов. Вот что получилось у меня:
Код:
Const
N=20;
VAR
Nactual:BYTE;
A:ARRAY[1..N] of REAL;
Product:Extended;
i:INTEGER;
BEGIN
RANDOMIZE;
WriteLn('Initial array:');
For i:=1 to N do
begin
A[i]:=100.0*(RANDOM-0.5);
Write(A[i]:7:2);
end;
WriteLn;
Product:=1.0;
Nactual:=0;
For i:=1 to N do
If A[i]>0 then
begin
INC(Nactual);
Product:=Product*A[i];
end;
Writeln('The geometric mean of positive components is ', Exp((1.0/Nactual)*Ln(Product)):6:3);
ReadLn;
END.
P.S. А вот интересно, что будет, если преподаватель тоже знает о нашем форуме и заглядывает сюда?