Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Программа для нахождения среднего геометрического. (http://www.tehnari.ru/f41/t37076/)

Melonholiya 16.06.2010 16:44

Программа для нахождения среднего геометрического.
 
Так как половине моей группы уже помогли подготовится к зачёту, надеюсь и мне не откажете)

Задача Pascal:
Написать программу определения среднего геометрического положительных элементов вещественного массива длиной 20. Гарантируется, что хотя бы один положительный элемент имеется в массиве.

shrek=) 16.06.2010 16:57

Код:

uses crt;
const
n=20
var
a:array [1..n] of integer;
i:integer;
sr:real;
begin
randomize;
for i:=1 to n do
a[i]:=random(40)-20;
sr:=0;
for i:=1 to n do begin
if a[i]>0 then sr:=sr+a[i];
end;
sr:=sqrt(sr);
writeln ('srednee geometricheskoe ravno',sr);
readln
end.


Кто по опытнее поправьте если я не прав

Vladimir_S 16.06.2010 17:16

Поправляю. Во-первых, массив должен быть вещественным, а не целочисленным, а во-вторых, требуется найти среднее геометрическое 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. А вот интересно, что будет, если преподаватель тоже знает о нашем форуме и заглядывает сюда?

Melonholiya 16.06.2010 17:26

Спасибо.
Хммм...Думаю мне остаётся надеяться что не заглядывает)


Часовой пояс GMT +4, время: 22:25.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.