Рекурсия: различия между версиями
Перейти к навигации
Перейти к поиску
Patarakin (обсуждение | вклад) (Новая страница: «{{Concept |Description=Рекурсия — определение, описание, изображение какого-либо объекта или проц…») |
Patarakin (обсуждение | вклад) |
||
(не показано 20 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | {{ | + | {{Понятие |
|Description=Рекурсия — определение, описание, изображение какого-либо объекта или процесса внутри самого этого объекта или процесса, то есть ситуация, когда объект является частью самого себя. | |Description=Рекурсия — определение, описание, изображение какого-либо объекта или процесса внутри самого этого объекта или процесса, то есть ситуация, когда объект является частью самого себя. | ||
− | В программировании чаще всего - вызов функцией себя самой. | + | В программировании чаще всего - вызов функцией себя самой, когда функция (процедура) делегирует работу своим клона |
+ | |Field_of_knowledge=Информатика | ||
+ | |FieldActivity=Computational Thinker | ||
+ | |Возрастная категория=11 | ||
+ | |Examples=https://scratch.mit.edu/projects/334694805/ | ||
+ | |Clarifying_video=https://www.youtube.com/watch?v=eiGHdT6lydA | ||
+ | |similar_concepts=клон, процедура | ||
+ | |Environment=Лого, Scratch | ||
+ | }} | ||
+ | === Примеры === | ||
+ | |||
+ | https://en.scratch-wiki.info/w/images/Kochsim.gif | ||
Введение в рекурсию в книге Харви о стиле Лого - http://people.eecs.berkeley.edu/~bh/v1ch7/recur1.html | Введение в рекурсию в книге Харви о стиле Лого - http://people.eecs.berkeley.edu/~bh/v1ch7/recur1.html | ||
+ | When you're thinking about a recursive procedure, it's especially important to remember that each invocation of a procedure has its own local variables. It's possible to get confused about this because, of course, if a procedure invokes itself as a subprocedure, each invocation uses the same names for local variables. For example, each invocation of downup has a local variable (its input) named word. But each invocation has a separate input variable. | ||
+ | ; Маленькие человечки: How Recursion Works В книге Simple Scheme | ||
+ | : The crowning achievement of the little-people model is explaining recursion. Remember that every time you call a procedure, a little person is hired to compute the result. If you want to know (+ 2 (+ 3 4)), there are two separate plus specialists involved. | ||
− | |||
− | + | ==== Вычисление факториала ==== | |
+ | |||
+ | <scratchblocks> | ||
+ | define factorial (n) | ||
+ | if < (n) = [0] > then | ||
+ | add [1] to [Factorial-stack v] | ||
+ | else | ||
+ | factorial ( (n) - (1) ) | ||
+ | add ( (n) * (item (last v) of [Factorial-stack v])) to [Factorial-stack v] | ||
+ | end | ||
+ | |||
+ | when gf clicked | ||
+ | delete (all v) of [Factorial-stack v] | ||
+ | factorial (10) | ||
+ | say (item (last v) of [Factorial-stack v]) | ||
+ | </scratchblocks> | ||
+ | |||
+ | ==== Построение фракталов ==== | ||
+ | |||
+ | * https://en.scratch-wiki.info/wiki/Recursion_and_Fractals | ||
+ | ** https://scratch.mit.edu/projects/10068174/ | ||
− | + | ; Теория | |
− | + | : Процедуры и функции. Как создаются и как используются пользовательские функции. Процедуры как средство абстракции. | |
− | + | ; Практика | |
− | + | : Какие блоки используются для создания собственных процедур в Scratch? Создайте процедуру, которая будет принимать на входе три числа и присваивать переменной значение наибольшего из этих трех чисел. |
Текущая версия на 21:11, 8 апреля 2022
Описание | Рекурсия — определение, описание, изображение какого-либо объекта или процесса внутри самого этого объекта или процесса, то есть ситуация, когда объект является частью самого себя.
В программировании чаще всего - вызов функцией себя самой, когда функция (процедура) делегирует работу своим клона |
---|---|
Область знаний | Информатика |
Область использования (ISTE) | Computational Thinker |
Возрастная категория | 11 |
Примеры реализации | Использование цепочки свойств «Ehttps://scratch.mit.edu/projects/334694805/amples» недопустимо в семантической аннотации. |
Авторы | |
Поясняющее видео | https://www.youtube.com/watch?v=eiGHdT6lydA |
Близкие понятия | клон, процедура |
Среды и средства для освоения понятия | Лого, Scratch |
Примеры[править]
Введение в рекурсию в книге Харви о стиле Лого - http://people.eecs.berkeley.edu/~bh/v1ch7/recur1.html When you're thinking about a recursive procedure, it's especially important to remember that each invocation of a procedure has its own local variables. It's possible to get confused about this because, of course, if a procedure invokes itself as a subprocedure, each invocation uses the same names for local variables. For example, each invocation of downup has a local variable (its input) named word. But each invocation has a separate input variable.
- Маленькие человечки
- How Recursion Works В книге Simple Scheme
- The crowning achievement of the little-people model is explaining recursion. Remember that every time you call a procedure, a little person is hired to compute the result. If you want to know (+ 2 (+ 3 4)), there are two separate plus specialists involved.
Вычисление факториала[править]
define factorial (n) if < (n) = [0] > then add [1] to [Factorial-stack v] else factorial ( (n) - (1) ) add ( (n) * (item (last v) of [Factorial-stack v])) to [Factorial-stack v] end when gf clicked delete (all v) of [Factorial-stack v] factorial (10) say (item (last v) of [Factorial-stack v])
Построение фракталов[править]
- Теория
- Процедуры и функции. Как создаются и как используются пользовательские функции. Процедуры как средство абстракции.
- Практика
- Какие блоки используются для создания собственных процедур в Scratch? Создайте процедуру, которая будет принимать на входе три числа и присваивать переменной значение наибольшего из этих трех чисел.