Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 16.06.2010, 16:44   #1 (permalink)
Melonholiya
Новичок
 
Регистрация: 16.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа для нахождения среднего геометрического.

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

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

Старый 16.06.2010, 16:44
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Топики, которые схожи с вашим

Программа для ХР
Апгрейд среднего компьютера
Программа
Метод Ньютона нахождения корня на Паскале

Старый 16.06.2010, 16:57   #2 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Код:
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.

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

Последний раз редактировалось shrek=); 16.06.2010 в 17:18
shrek=) вне форума   Ответить с цитированием
Старый 16.06.2010, 17:16   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Поправляю. Во-первых, массив должен быть вещественным, а не целочисленным, а во-вторых, требуется найти среднее геометрическое 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. А вот интересно, что будет, если преподаватель тоже знает о нашем форуме и заглядывает сюда?
Vladimir_S вне форума   Ответить с цитированием
Старый 16.06.2010, 17:26   #4 (permalink)
Melonholiya
Новичок
 
Регистрация: 16.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.