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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2017, 19:04   #11
Romeshek
Пользователь
 
Регистрация: 29.09.2017
Сообщений: 33
По умолчанию

Я это понимаю.
НО
Код:
function FacIterative(n: Word): Longint; 
var 
f: LongInt; 
i: Integer; 
begin 
f := 1; 
for i := 2 to n do 
f := f * i; 
Result := f; 
end; 

// Recursive Solution: 

function FacRecursive(n: Word): LongInt; 
begin 
if n > 1 then 
Result := n * FacRecursive(n - 1) 
else 
Result := 1; 
end;
Это пример из той ссылки, что кинул Алекс.
В нем мы прямо в функции присваиваем значение факториалу, а не обращаемся к нему. Может я что-то не понимаю?
Romeshek вне форума Ответить с цитированием
Старый 13.12.2017, 20:28   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Romeshek Посмотреть сообщение
Может я что-то не понимаю?
не понимаете.

в вашем примере две функции для вычисления факториала.

Цитата:
Сообщение от Romeshek Посмотреть сообщение
function FacIterative(n: Word): Longint;
это итерактивная (с помощью цикла).
в ней НЕТ рекурсии.

а вторая - РЕКУРСИВНАЯ (которая вызывает сама себя):
Цитата:
Код:
// Recursive Solution: - перевод. Рекурсивное решение

function FacRecursive(n: Word): LongInt; 
begin 
if n > 1 then 
Result := n * FacRecursive(n - 1) 
else 
Result := 1; 
end;
еслит не понятно, где же внутри функции FacRecursive вызывается функция FacRecursive,
то я выделил рекурсивный вызов.

так стало понятней?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.12.2017, 20:35   #13
Romeshek
Пользователь
 
Регистрация: 29.09.2017
Сообщений: 33
По умолчанию

Более менее.
Получается, что программа, которую я кидал в самом первом сообщении - она неправильная?
Romeshek вне форума Ответить с цитированием
Старый 13.12.2017, 20:54   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Romeshek Посмотреть сообщение
она неправильная?
я не знаю, правильная она или нет (для этого нужно 1) знать какую задачу она должна решить 2) проанализировать её код ).

Но она НЕ РЕКУРСИВНАЯ. В ней нет вызова самой себя.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия AZelensky Общие вопросы Delphi 3 19.04.2014 10:22
Рекурсия (С) rublyabachka Помощь студентам 1 15.12.2011 02:11
рекурсия Lena neznayka Помощь студентам 2 16.06.2010 20:46
Рекурсия Solnze2 Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2010 09:28