• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программа для нахождения среднего геометрического.

Melonholiya

Ученик
Регистрация
16 Июн 2010
Сообщения
2
Реакции
0
Баллы
0
Программа для нахождения среднего геометрического.

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

Задача Pascal:
Написать программу определения среднего геометрического положительных элементов вещественного массива длиной 20. Гарантируется, что хотя бы один положительный элемент имеется в массиве.
 
Код:
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.


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