Ну так вот на многих сайтах с задачами (не только acmp.ru) я находил такое определение, как рекурсия. Не могли бы Вы рассказать всё (ну что Вы знаете), что нужно юному программисту, для знания данной темы.
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Cheburashka |
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 195 Пол: Мужской Реальное имя: Сергей Репутация: 2 |
Ну так вот на многих сайтах с задачами (не только acmp.ru) я находил такое определение, как рекурсия. Не могли бы Вы рассказать всё (ну что Вы знаете), что нужно юному программисту, для знания данной темы.
-------------------- ♣♣♣
"Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣ |
![]() ![]() |
| Cheburashka |
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 195 Пол: Мужской Реальное имя: Сергей Репутация: 2 |
Ну я так понял что в основном рекурсия выполняетя с помощью подпрограмм (процедур и функций)?
-------------------- ♣♣♣
"Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣ |
| Lapp |
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
рекурсия выполняетя с помощью подпрограмм (процедур и функций)? Проще говоря, рекурсия - это когда подпрограмма (или функция) вызывается в ней самой. Ре-курс - буквально: повторный заход (как ре-монт - повторный монтаж).Факторил - замечательный пример. n! = 1*2*3*4..*(n-1)*n - это его прямое определение. А вот рекурсивное определение: n! = (n-1)!*n и 0!=1 Состаявляем функцию для его вычисления в соответствии с прямым определением: function Fuctorial(n: integer): LongInt; А вот функция, составленная рекуррентно: function Fuctorial(n: integer): LongInt; Вторая выглядит намного проще, согласись. Что происходит? Кога в нее заходишь, например, со значением n=3, она пытается умножить это значение на факториал двойки, который еще не знает. Она вызфывает функцию для вычисления этого факториала двойки, и уже та пытается 2 умножить на факториал 1. Снова то же самое: та вызывает факториал 0, чтобы вычислить факториал 1. И вот когда вызван факториал 0 - тогда происходит нечто другое: функция выходит со значением 1 в соответствии с первой частью условного оператора в ней. А дальше разворачивается обратная цепочка. Вызов факториала 0 возвращает 1, домножает его на 1 и возвращает эту единицу экземпляру функции, который вызвал факториал 2. Та получает ее, домножает на 2 и возвращает. Следующий экземпляр функции получает эту двойку, домножает ее на 3 и снова возвращает полученную шестерку - теперь уже тебе. Технически, происходит следующее. При каждом вызове функции всякий раз создается отдельная копия ее переменных, включая параметры. Именно с ними производятся действия, поэтому копии (экземпляры) функции они не мешают друг другу. При этом код (набор инструкций) только один. Пример с факториалом - самый простой. Поиск по Форуму может дать тебе много интересных примеров)). Если будут трудности с поиском - пиши, я найду ченть. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Сергей Меркурьев Рекурсия? Что же это такое? 14.05.2009 18:07
Ozzя Берется любой хороший учебник по Паскалю и читаетс… 14.05.2009 18:14
Сергей Меркурьев А в учебнике "В.Б. Попова Turbo Pascal для шк… 14.05.2009 18:16
volvo В принципе, берется любой учебник по любому языку,… 14.05.2009 18:19
Ozzя В Фаронове есть.
http://pascal-books.narod.ru/boo… 14.05.2009 18:19
Ozzя Ну да. Найдите какие-нибудь классичсекие примеры. … 14.05.2009 18:30
volvo Олег даже тему открывал в свое время для интересны… 14.05.2009 20:07
Lapp Но что-то ее забросили. Андрей, если наткнешься на… 14.05.2009 20:45
Сергей Меркурьев В общем то про факториал я знаю, и, что значение 3… 14.05.2009 23:35
Lapp А вот не могли бы Вы сказать мне каким образом мож… 15.05.2009 0:00
Сергей Меркурьев В принципе если Вас не затруднит рассказать мне пр… 15.05.2009 0:01
Lapp В принципе если Вас не затруднит рассказать мне пр… 15.05.2009 0:09
Сергей Меркурьев В принципе про рекурсия да! 15.05.2009 0:11
volvo Ну, еще не мешало бы сказать про особый тип рекурс… 15.05.2009 14:27![]() ![]() |
|
Текстовая версия | 6.11.2025 22:22 |