Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2013, 16:41   #1
Kelluin
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 18
По умолчанию Среднее геометрическое

Есть такое задание,

Ввести файл F из 14 элементов. Определить среднее геометрическое
квадратов элементов, стоящих на позициях кратных трѐм.

Ни как не могу разобраться с нахождением среднего геометрического. (Сейчас в программке числа на нужных позициях просто возводятся в квадрат.) Помогите пожалуйста.

Код:
Program qwerty;
uses crt;
const n=14;
var f:file of integer;
    a,i,s,k:integer;
    c:real;
 
begin
clrscr;
assign(f,'file');
rewrite(f);
writeln('Введите в файл целые числа:');
for i:=1 to n do
 begin
 readln(a);
 write(f,a);
 end;
clrscr;
writeln('Содержание исходного файла:');
reset(f);
s:=0;
for i:=0 to filesize(f)-1 do
 begin
  read(f,a);
  write(a,' ');
 end;
 writeln;
  close(f);
 reset(f);
  writeln('Содержание измененного файла: ');
 for i:=0 to filesize(f)-1 do
 begin
 read(f,a);
 if filepos(f) mod 3=0 then
 a:=a*a;
 write(a,' ');
 end;
  
close(f);
writeln;
end.
Kelluin вне форума Ответить с цитированием
Старый 04.12.2013, 18:38   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:

function root(a:real;n:word):real;
 {Тип word здесь указывает, что n положительно}
var r: real;
begin
 r:=exp(ln(abs(a))/n);              {корень из модуля}
 if a<0 then root:=-r else root:=r  {учет знака}
end;
И позиция, кратная 3 вроде как
(Filepos(f)+1) mod 3
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 04.12.2013, 18:48   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Или добавить в uses Math, и
Код:
root:=Power(a,1/n);
если a - произведение тех, чье ср.геом. надо найти,
n - их количество
type_Oleg вне форума Ответить с цитированием
Старый 04.12.2013, 20:42   #4
Kelluin
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 18
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Код:

function root(a:real;n:word):real;
 {Тип word здесь указывает, что n положительно}
var r: real;
begin
 r:=exp(ln(abs(a))/n);              {корень из модуля}
 if a<0 then root:=-r else root:=r  {учет знака}
end;

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Или добавить в uses Math, и
Код:
root:=Power(a,1/n);
если a - произведение тех, чье ср.геом. надо найти,
n - их количество
Чего-то я ничего не понял
Объясните пожалуйста поподробнее.
Kelluin вне форума Ответить с цитированием
Старый 04.12.2013, 20:50   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Среднее геометрическое n чисел - это корень степени n произведения этих чисел, или то же самое - произведение, возведенное в степень 1/n
Если в переменной а у вас - это самое произведение, то вам написали, как найти корень степени n
Например, ср.геом. чисел 1,9,4 равно 3.301927249. В это случае a=36
type_Oleg вне форума Ответить с цитированием
Старый 04.12.2013, 21:07   #6
Kelluin
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 18
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Среднее геометрическое n чисел - это корень степени n произведения этих чисел, или то же самое - произведение, возведенное в степень 1/n
Если в переменной а у вас - это самое произведение, то вам написали, как найти корень степени n
Например, ср.геом. чисел 1,9,4 равно 3.301927249. В это случае a=36
Спасибо, но я знаю как находится среднее геометрическое. Я немного не догоняю как это реализовать в моем коде
Kelluin вне форума Ответить с цитированием
Старый 04.12.2013, 21:12   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:

 if (filepos(f)+1) mod 3=0 then
Begin
 Pr:=pr*a;
Kol:=kol+1;
 //a:=a*a;
End;
End;
Pr:=root(pr,kol);
 write(pr);
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 04.12.2013, 21:34   #8
Kelluin
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 18
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Код:

 if (filepos(f)+1) mod 3=0 then
Begin
 Pr:=pr*a;
Kol:=kol+1;
 //a:=a*a;
End;
End;
Pr:=root(pr,kol);
 write(pr);
пишет "вещественное деление на 0". в этой строке
Код:
r:=exp(ln(abs(a))/n);
Может я не туда тыкаю код? Котелок не варит сегодня

Последний раз редактировалось Kelluin; 04.12.2013 в 21:37.
Kelluin вне форума Ответить с цитированием
Старый 04.12.2013, 21:45   #9
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Непонятно почему.
А вообще, у вас n - константа, число всех элементов.
А вам надо ср.геом. только квадратов элементов, стоящих на позициях кратных трѐм

PS А, пардон, n - это еще и локальная пременная в функции root

Последний раз редактировалось type_Oleg; 04.12.2013 в 21:47.
type_Oleg вне форума Ответить с цитированием
Старый 04.12.2013, 21:46   #10
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Kol почему то равен 0. Перед вызовом функции распечатайте kol посмотрите чему оно равна.
В функции root замените n на другую переменную.
Код:



 if (filepos(f)+1) mod 3=0 then
Begin
 Pr:=pr*sqr(a); <---- у меня здесь еще ошибка была
Kol:=kol+1;
 //a:=a*a;
End;
End;
Pr:=root(pr,kol);
 write(pr);

Последний раз редактировалось ZX Spectrum-128; 04.12.2013 в 21:50.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Среднее арифметическое и геометрическое Sweet-_-Orange Помощь студентам 2 12.02.2012 15:27
найти среднее геометрическое на с++ mary++ Помощь студентам 0 15.01.2012 01:27
Среднее геометрическое SkuLLL Помощь студентам 1 12.12.2010 17:10
Делфи.среднее геометрическое элементов массива.среднее арифметическое каждой строки матрицы Karrina Помощь студентам 0 06.12.2010 18:32
среднее геометрическое числа Warhead Помощь студентам 3 31.05.2010 17:19