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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2008, 13:19   #1
Nush@
 
Аватар для Nush@
 
Регистрация: 02.12.2008
Сообщений: 3
По умолчанию Паскаль. Рекурсии

Добрый день, вечер, утро или ночь=)Я здесь впервые и как вы наверно правильно могли подумать: за помощью. Рекурсии для многих наверно не такая сложная тема, но у меня вообще с программированием туговато=) В общем в предверии более сложной темы не хотелось бы копить хвосты.
Так что я оставлю тут условие и расчитывая на ваше великодушие+)буду с нетерпением ждать ответа.
Число сочетаний с повторениями из n элементов по r определяется через рекурентные соотношения f(n,r)=f(n,r-1)+f(n-1,r), причем f(n,1)=n, f(1,n)=1. Составить рекурсивный алгоритм и написать программу, вычисляющую f(n,r) по данной формуле для 0<=r<n<=10. Полученный результат сравнить с точной формулой f(n,r)=C(r-наверху n+r-1-внизу)=(n+r-1)!/r!(n-1)!

P.S.:Задачу в Паскале я написала, но в чем ошибка не понимаю. Если вы мне напишите в агент crazy_imp@bk.ru или на этот же мейл(если вдруг агента нет)), то я вам совсем буду благодарна=))) Заранее спасибо большое!
Nush@ вне форума Ответить с цитированием
Старый 02.12.2008, 13:24   #2
lexus_ilia
Студентик :)
Пользователь
 
Аватар для lexus_ilia
 
Регистрация: 29.09.2008
Сообщений: 84
По умолчанию

Цитата:
Задачу в Паскале я написала, но в чем ошибка не понимаю.
Советую вам выложить свой код, а мы скажем что у вас не так...
lexus_ilia вне форума Ответить с цитированием
Старый 02.12.2008, 14:10   #3
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

Цитата:
Сообщение от Nush@ Посмотреть сообщение
P.S.:Задачу в Паскале я написала, но в чем ошибка не понимаю.
Так ясно дело, где у вас ошибка. У вас же бесконечная рекурсия получается! И вообще вы не факториал считаете, а сумму.

PS: пойду еще кофе докуплю, а то кончается...
como вне форума Ответить с цитированием
Старый 02.12.2008, 15:09   #4
Al-Fencer
 
Регистрация: 02.12.2008
Сообщений: 4
По умолчанию

Привет Нюше! (вот уж не думал, что случайно на этом сайте встретимся )

У меня тоже вопрос по той же теме! А точнее, их два:
http://pic.ipicture.ru/uploads/081202/9rzEE05CRg.jpg
http://pic.ipicture.ru/uploads/081202/qCSTHTwm72.jpg

Пожалуйста, помогите нам!!!
Al-Fencer вне форума Ответить с цитированием
Старый 02.12.2008, 15:13   #5
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Я поражаюсь !!! Вам помощь надо или решение ? - если помощь то выкладывайте ваш КОД ! и соображения тогда будет чему помогать ! А сейчас можно только за вас выполнить задание ! а Это уже ФриЛанс =)))
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 03.12.2008, 08:07   #6
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

все написанно в условии задачи
Код:
function f(n,r:longint):longint;
begin
  if r=1 then f:=n else 
  if n=1 then f:=1 else
  f:=f(n,r-1)+f(n-1,r);
end;
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 03.12.2008, 08:29   #7
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

Цитата:
Сообщение от Plague Посмотреть сообщение
все написанно в условии задачи
Код:
function f(n,r:longint):longint;
begin
  if r=1 then f:=n else 
  if n=1 then f:=1 else
  f:=f(n,r-1)+f(n-1,r);
end;
А слабо теперь то же самое с помощью динамического программирования?
como вне форума Ответить с цитированием
Старый 03.12.2008, 09:24   #8
Nush@
 
Аватар для Nush@
 
Регистрация: 02.12.2008
Сообщений: 3
По умолчанию

Оу, простите, уважаемые, за мою неоседомленность=) ВОт код программы. Будьте добры, скажите,где ошибка?

program Funktcia;
uses crt;
var n,r:integer;

function F(n,r:integer):real;
begin
F:=F(n,r-1)+F(n-1,r);
if (r=1) then F:=n;
if (r=n) and (n=1) then F:=1;
end;

begin
if (0<=r) and (r<n) and (n<=10) then F(n,r);
end.
Nush@ вне форума Ответить с цитированием
Старый 03.12.2008, 09:33   #9
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
По умолчанию

Цитата:
Сообщение от Nush@ Посмотреть сообщение
Оу, простите, уважаемые, за мою неоседомленность=) ВОт код программы. Будьте добры, скажите,где ошибка?

program Funktcia;
uses crt;
var n,r:integer;

function F(n,r:integer):real;
begin
F:=F(n,r-1)+F(n-1,r);
if (r=1) then F:=n;
if (r=n) and (n=1) then F:=1;
end;

begin
if (0<=r) and (r<n) and (n<=10) then F(n,r);
end.
Я ж говорил. Бесконечная рекурсия.
como вне форума Ответить с цитированием
Старый 03.12.2008, 10:11   #10
Nush@
 
Аватар для Nush@
 
Регистрация: 02.12.2008
Сообщений: 3
По умолчанию

и что нужно сделать?((
Nush@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выход из рекурсии L_M Помощь студентам 9 03.10.2008 18:03
Рекурсии Logan Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 08:52
Паскаль рекурсии СРОЧНО Solana Помощь студентам 3 14.12.2007 17:49
Рекурсии при составлении программ Дуня Помощь студентам 3 06.12.2006 20:35