Рекурсивным называется любой объект, который частично определяется через себя.
Определение рекурсии 1
Определение рекурсии 3
4>1 Да
3>1 Да
2>1 Да
1>1 Нет
Rec(4)
Rec(3)
Rec(2)
Rec(1)
Вывод(1)
Определение рекурсии 4
1>1 Нет
Rec(4)
Rec(3)
Rec(2)
Rec(1)
Rec(i)
Rec(5)
Rec(4)
Rec(3)
Rec(2)
Rec(1)
Определение рекурсии 7
рекурсивный спуск
Вывод
Переход к следующей процедуре
Определение рекурсии 9
Подъем
Определение рекурсии 10
Сумма итеративно
Определение рекурсии 11
Рекурсивная процедура
Определение рекурсии 12
Процедура
Вызов процедуры из основной программы
Рекурсивная функция
Определение рекурсии 13
Функция
Вызов функции из основной программы
Например:
Определение рекурсии 14
Номер вычисляемого элемента
Первый элемент
Разность прогрессии
Определение рекурсии 15
Рекурсивно вызываем функцию
Определение рекурсии 16
Начальное значение факториала
Циклом находим произведение от 2 до n
Определение рекурсии 17
Факториал итеративно
Начальное значение факториала
Вызываем повторно функцию вычисления факториала
Определение рекурсии 18
2. Разработать программу для нахождения наибольшего общего делителя (НОД) двух заданных натуральных чисел используя алгоритм Евклида
Определение рекурсии 19
Фракталы 20
Задача. Составить программу изображающую на экране ломаную, координаты вершин которой, определяются случайным образом.
Координаты начала первой линии
Цикл задающий количество звеньев
Координаты конца линии
Линия
Координаты конца линии становятся координатами начала следующей линии
Фракталы 22
uses crt, graphabc;
procedure segment(x,y,x2,y2,n: integer );
begin
x2 := random(640);
y2 := random(400);
line(x,y,x2,y2);
if n > 1 then
segment(x2,y2,random(640),random(400),n-1);
end;
begin
clrscr;
segment(320,200, 0, 0, 25);
textout(200,330,'n=25');
end.
Координаты начала линии
Линия
Пока n>1 вызываем еще одну процедуру
Координаты начала звена
Координаты конца звена
Количество звеньев
Вычисляем координаты конца линии
Рисуем линию
Пока n>1 вызываем процедуру рисования линии
Для каждой следующей линии поворачиваем на 90 градусов
Каждую новую линию удлиняем на 5 единиц
Фракталы 26
Фракталы 30
Координаты точки разветвления
Рисуем одну ветвь
Пока n>1 два раза вызываем процедуру для правой и левой ветки
Фракталы 31
Задача. Составить программу изображающую на экране треугольник Серпинского .
Рисуем треугольник
Вычисляем координаты середин сторон треугольника
Рекурсивно рисуем три меньших треугольника
Фракталы 35
Множество Кантора.
Снежинка
Значения полинома при 0 и 1
Устанавливаем начальные значения
Вычисляем значения полинома до n используя цикл
Итеративная функция:
41
Значения полинома при 0 и 1
Вызываем функцию повторно
Рекурсивная функция:
42
Здесь поместим одну из описанных выше функций
Переменная для хранения системного времени
Считываем системное время и выводим его на экран
Вызываем функцию
Считываем системное время и выводим его на экран
43
Интернет ресурсы:
46
Головешкин В.А., Ульянов М. В. Теория рекурсии для программистов. М.: ФИЗМАТЛИТ, 2006.
Список литературы:
47
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть