![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| Paradise |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
Уважаемые знатоки, прошу вас подсказать как вычислить факториал через рекурсивную процедуру. Дело в том, что через функцию зделал легко, а на процедуре застрял. Задание такое ничего не могу поделать. Не знаю, либо я тупой, либо препод загнал))
|
|||
|
||||
| volvo877 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
|
||||
|
|||||
| Paradise |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
Извините безголового, забыл сказать, что эту процедуру нужно потом использовать в формуле
с = n! / ( m! * ( n - m )! ) Вот на этом я и застрял... |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Угу, ты застрял всерьез и надолго... По одной простой причине: процедуру НЕЛЬЗЯ использовать в формуле. Использовать можно только функцию. С помощью процедур можно посчитать значение вот этой формулы, конечно, но для этого тебе понадобится 3 дополнительных переменных... Тебе надо это извращение?
Вызывать - так же, как я показывал, все 3 выражения подряд, потом считать чему равно C:
|
|||
|
||||
| Paradise |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
Вот именно, я не мог понять логику препода, сначала я подумал, что он перепутал с функцией, но когда нашел задачу и с фнукцией стал сомневаться в себе т. к. тут легче сделать даже через цыкл)) И это задание на гос екзамен, дурдом))
volvo877, спасибо огромное, вопрос решон Прийднться делать через три переменных) |
|||
|
||||
| source777 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Разница всё же есть, в случае процедуры ты вынужден использовать хвостовую рекурсию, которую компилятор спокойно развернёт в цикл. А в случае функции, далеко не все понимают почему необходимо писать:
Во всяком, случае я бы на месте препода ожидал бы подобного решения и рассказа о том, что такое хвостовая рекурсия и зачем она нужна. Такое простое? -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||
|
|||||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Вообще-то надо ЧИТАТЬ хотя бы заголовок темы, перед тем, как ответить... Ясно сказано: вычислять факториал через процедуру, с функцией автор сделал самостоятельно...
|
|||
|
||||
| source777 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Вот она:
Это сообщение отредактировал(а) source777 - 2.6.2009, 13:47 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |