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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2012, 11:29   #1
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию Рекурсия

Вообщем такое задание


затрудняюсь в решении...
не могу подогнать под один цикл вычисление числителя и знаменателя
unbanned вне форума Ответить с цитированием
Старый 17.01.2012, 11:37   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от unbanned Посмотреть сообщение
Вообщем такое задание


затрудняюсь в решении...
не могу подогнать под один цикл вычисление числителя и знаменателя
А что здесь сложного? Вы хотите вычислять факториал в одном цикле или отдельной функцией?
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 17.01.2012, 14:39   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

можно вывести реккурентное соотношение - это когда следующий член последовательности высчитывается исходя из предыдущего члена.
если записать выражение для N=2, для N=3, для N=4 и посмотрите чем они друг от друга отличаются. Это совсем несложно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.01.2012, 14:45   #4
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Можно поступить аналитически, то есть взять для n и n-1 и поделить первое на второе

А соотношение такое...
a(n-1)*x^2/(2n*(2n+1));
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 17.01.2012, 18:50   #5
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Цитата:
А что здесь сложного? Вы хотите вычислять факториал в одном цикле или отдельной функцией?
мне не надо отдельной функцией) написать функцию вычисления факториала и функцию возведения в степень - не сложно)

Цитата:
А соотношение такое...
a(n-1)*x^2/(2n*(2n+1));
непонятно что такое "а"

вот что у меня получилось, точнее не получилось...

Код:
var
  y, k: real;
  ch, zn, x, i: integer;

begin
  readln(x);
  ch := sqr(x);
  zn := 120; // 5!
  for i := 2 to 14 do
  begin
    y := y + ch / zn;
    ch := ch * sqr(x);// чиcлитель с шагом x^2 (x^2 -> x^4 -> x^6)
    zn := zn * ???;// а вот знаменатель??? (120 -> 5040 -> 362880) 
  end;
  writeln(y:0:4);
end.
unbanned вне форума Ответить с цитированием
Старый 18.01.2012, 06:32   #6
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

a - это член последовательности, ну да ладно..
Код:
var
  y, x, a: real;
  i: integer;

begin
  readln(x);
  a:=1/6; //для n=1 результат именно такой, нужно только чтобы посчитать следующий
  y:=0;
  for i := 2 to 14 do
  begin
    a:=a*sqr(x)/(2n*(2n+1)); //а вот в этом соотношении я все таки ошибся похоже, пересчитайте его. Как - написано выше
    y:=y+a;
  end;
  writeln(y:0:4);
end.
благодарность - сюда (не забываем писать от кого)

Последний раз редактировалось Zer0; 18.01.2012 в 06:34.
Zer0 вне форума Ответить с цитированием
Старый 18.01.2012, 13:20   #7
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Код:
var x,s:real;
    n,i:integer;

function a(n:integer):real;
begin
if n=1 then a:=1/6
       else a:=a(n-1)*sqr(x)/(2*n*(2*n+1));
end;

begin
  read(x);
  s:=0;
  for i:=2 to 14 do s:=s+a(i);   
  write(s);
end.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 19.01.2012, 11:25   #8
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Цитата:
//а вот в этом соотношении я все таки ошибся похоже, пересчитайте его. Как - написано выше
и все-таки я не совсем понял как его высчитать...

для n получается (x^(2n-2))/(2n+1)!
для n-1 получается (x^(2n-4))/(2n-1)!

и как их делить одно на другое??
unbanned вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия Olesya777 Помощь студентам 1 30.05.2011 17:47
рекурсия Вика I Помощь студентам 9 18.05.2011 19:09
Рекурсия СИ makc101 Помощь студентам 2 05.04.2011 23:13
Рекурсия rasals Помощь студентам 4 14.09.2010 18:32
Рекурсия ldinka135 Паскаль, Turbo Pascal, PascalABC.NET 5 31.08.2010 12:57