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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2008, 14:39   #1
Pravednik
 
Регистрация: 18.01.2008
Сообщений: 3
По умолчанию Рекурсия

Выполнить необходимую обработку, при этом описать рекурсивную процедуру или функцию, исходя из условия задачи. Исходные данные задать самостоятельно, учитывая специфику задачи.
7Дано натуральное число п. Вычислить: 1*2 + 2*3*4 + … + n*(n + 1) *…*2n.Помогите найти ошибку что не правильно?!
вот что я примерно решил!!!
Код:
Uses crt;
Var
   N : integer;
   A : integer;
Function prim (n: integer);
  Begin
      If n in [1..2] then pri:=1
    Else
       prim:= 1*2 + 2*3*4 + … + n*(n + 1) *…*2n;
    End;
Begin
Clrscr;
Writeln(‘Vvedite chislo’);
Readln(n);
A:=prim(n);
Writeln(a);
Readkey;
End.
Помогите пожалуста последняя задача которую я не решил для Кр!!!

Цитата:
Код вставляем в тег [CОDE][/СОDЕ] или пользуемся кнопкой # (расширенный режим). Модератор.

Последний раз редактировалось AlDelta; 20.01.2008 в 14:41.
Pravednik вне форума Ответить с цитированием
Старый 20.01.2008, 20:37   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Выполнить необходимую обработку, при этом описать рекурсивную процедуру или функцию, исходя из условия задачи. Исходные данные задать самостоятельно, учитывая специфику задачи.
7Дано натуральное число п. Вычислить: 1*2 + 2*3*4 + … + n*(n + 1) *…*2n.Помогите найти ошибку что не правильно?!
Члены ряда в последовательности начиная со второго An=(2*n)!/(n-1)!; Поэтому используем рекурсивную функцию Factorial, описание которой есть почти во всех учебниках. Затем находим сумму всех членов ряда 2-го до n-го и прибавляем к ней 2(первый член). Написать это можно так:
Код:
program summa;
uses crt;
var n,i:integer;
    sum:longint;
function Fac(n:integer):longint;
begin
if n=1 then fac:=1
else fac:=n*fac(n-1);
end;
begin
clrscr;
writeln('n=');readln(n);
sum:=0;
for i:=2 to n do
sum:=sum+(fac(2*(i)))div(fac(i-1));
writeln('sum=',sum+2);
readln
end.
puporev вне форума Ответить с цитированием
Старый 21.01.2008, 13:54   #3
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

To puporev, а вы представляете вообще как ваша программа будет работать?

Вот рабочий код. Пользуйтесь на здоровье:
Код:
function f(n:longint):longint;
var i,t:longint;
begin
  if n=1 then f:=2
  else
    begin
      t:=1;
      for i:=n to 2*n do t:=t*i;
      f:=f(n-1)+t;
    end;
end;
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 21.01.2008, 14:18   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Мне представлять не надо, программа просто работает и все.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия. p@ul Помощь студентам 4 30.12.2009 14:46
Рекурсия vitekbest Помощь студентам 1 30.05.2008 22:22
рекурсия Vital_k Паскаль, Turbo Pascal, PascalABC.NET 1 08.02.2008 13:09
Рекурсия АнНютик Паскаль, Turbo Pascal, PascalABC.NET 1 29.01.2008 22:50
Рекурсия Xeon332 Помощь студентам 5 16.01.2008 20:52