ррго. Урока. Рекурсивные алгоритмы
Скачать 299.15 Kb.
|
Тема урока. «Рекурсивные алгоритмы»Словарик:
Кто вечно хнычет И скучает, Тот ничего Не замечает. Кто ничего Не замечает, Тот ничего Не изучает. Кто ничего Не изучает, Тот вечно хнычет И скучает. Автор: Лимаренко Андрей Иванович, учитель информатики гимназии 446, Санкт-Петербург, Колпино Сегодня на урокеЦель урока:
Пример самоподобной геометрической фигуры Повторение рекурсииРекурсия — это … процесс повторения элементов самоподобным образом.Самоподобный объект — это объект, … в точности или приближённо совпадающий с частью себя самого(то есть целое имеет ту жеформу, что и одна или болеечастей).Шли Из Африки В Саратов Семь Отчаянных Пиратов Не дошли До Душанбе - Видят надпись на столбе: "Шли Из Африки В Саратов..." (По Б.Заходеру. Рекурсия.) ПРИМЕРЫ: Приведите свои примеры рекурсии: - из литературы - из физики - из химии Примеры рекурсииКакие из предложенных объектов являются рекурсией, а какие - нет Шёл по пустыне караван, Два ишака один баран. Вам эту песню не понять, И я начну её опять. Шел по пустыне караван… Рекурсивный алгоритмВ программированиирекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная рекурсия).Например,функция A вызывает функцию B, а функция B — функцию A.Количество вложенных вызовов функции называется глубиной рекурсии.Алгоритм, использующий рекурсию1. Нарисовать окружность радиуса R с центром в точке (X,Y)2. Нарисовать окружности радиусом R/2 с новыми координатами:(X+R; Y),(X; Y+R),(X-R; Y),(X; Y-R)3. Для каждой из 4-х окружностей повторить п. 2Глубина рекурсии алгоритма равна 3 (X,Y) Y (Y-R) (X+R) (X-R) X (Y+R) Рекурсивный алгоритмКакова глубина рекурсии на картинке? Пример рекурсивного алгоритмаКлассический пример - определение факториала.С одной стороны, факториал определяется так:n! = 1 · 2 · 3 · … · nС другой стороны, факториал можно определить следующим образом: Составьте словесный алгоритм вычисления факториала числа 5 n!= 1, если n<=1, (n-1)!·n, если n>1 Порядок вычисления факториалапри n=5Из определения факториала видно,что для вычисления факториала числа 5,необходимо знать значения факториалачисла . . ., для вычисления факториала числа. . . необходимо знать значения факториалачисла . . . и т.д.Вставьте в текст пропущенные слова n!= 1, если n<=1, (n-1)!·n, если n>1 Пример программы с рекурсией (факториал)
В какой строке программы содержится: 1. Вызов функции? 2. Рекурсия? n!= 1, если n<=1, (n-1)!·n, если n>1 Как работает рекурсия в Паскале?Подставьте слова в текст . . . процедуры ничем не отличается от . . . другой процедуры.Что происходит, если одна процедура вызывает другую:• в памяти размещаются . . ., передаваемые процедуре• в другом месте памяти сохраняются . . . внутренних переменных вызывающей процедуры;• запоминается . . . возврата в вызывающую процедуру;• . . . передается вызванной процедуре.Если процедуру вызвать из нее самой, то будет выполняться тот же код, но работать он будет с другими значениями параметров.самовызов вызова параметры значения адрес управление Фрактал и фрактальная геометрияОпределение фрактала:Фрактал (лат. fractus — дробленый, состоящий из фрагментов)— термин, означающий геометрическую фигуру, обладающую свойством самоподобия,то есть составленную из нескольких частей, каждая из которых подобна всей фигуре целиком.Какую связь Вы заметили между фракталом и рекурсией? Примеры рекурсивных алгоритмов на ПаскалеКак на практике использовать полученные теоретические знания?Попробуем применить рекурсивный алгоритм, чтобы из примитивного геометрического объекта получить объект, похожий на реальный природный.Эти объекты будут состоять из фрагментов, которые подобны самой фигуре (такие объекты как раз и называют фракталами). Можно ли применить рекурсивный алгоритм для создания геометрических фракталов? Программа на PascalABC Что надо изменить в алгоритме, чтобы:
x, y - координаты начала линии alfa - угол наклона линии m - начальная длина линии v - количество ветвлений Самое главное на уроке:Вспомним вопрос, который был задан в начале урока:
Самое главное на уроке:Итак, давайте проанализируем нашу с вами совместную деятельность на уроке.
Спасибо за внимание! |