
- •Основы Алгоритмизации и Программирования
- •Цели :
- •Литература
- •Методические пособия
- •Тема 1 Программирование с
- •Рекуррентные соотношения и стратегии решения задачи разбиением ее на подзадачи
- •• Определение 1.
- •Определение 2.
- ••Любое правильное рекуррентное уравнение при задании начального условия описывает некую счетную бесконечную последовательность
- •Примеры описания объектов с помощью рекуррентных уравнений
- •Примеры описания объектов с помощью рекуррентных уравнений
- •Примеры описания объектов с помощью рекуррентных уравнений
- ••Все выше приведенные определения являются рекурсивными, т.е. представляют объект соотношением, выражающим объект через
- ••В общем виде рекурсивный алгоритм P можно
- •Решать задачу рекурсивно (т.е. составить рекурсивный алгоритм)
- •Вычисление n-го числа Фиббоначи
- •Две стратегии разбиения на подзадачи
- •Стратегия
- •Недостаток стратегии РиВ
- •Стратегия
- •Суть стратегии ДП
- •Программирование рекуррентных соотношений
- •Вычисление n!
- •Найдем максимум a1...an
- •Нахождение max(a1..an) (как метод класса)
- •Нахождение max(a1..an)
- ••Итерация - от человека.
- •Класс c методом ввода массива
- •Найти max делением пополам
- •Найти номер max делением пополам
- •Работа с методами класса Tob
- •Замечание
- •Особенности выполнения рекурсивной подпрограммы
- •Особенности выполнения
- •Особенности выполнения
- •Рекурсивный вызов может быть прямым,
- •Организация выхода из рекурсии
- •Условия окончания рекурсии
- •О целесообразности использования рекурсивных подпрограмм
- •Неподходящий пример
- •Решение с помощью итерационного алгоритма по стратегии динамического программирования
- •рекомендация
- •Задача о Ханойской башне
- •Ханойская башня
- •Ханойская башня из 2 дисков
- •Ханойская башня из n дисков
- •Рекурсивный алгоритм
- •Рекурсивная подпрограмма
- •Hanoi(3,1,2,3) вызовет следующее дерево активаций и печати
- •результат
- •Три диска
- •Функция Аккермана
- •Матрица Аккермана
- •Рекурсивная функция
- ••procedure TForm1.Button1Click(Sender: TObject);
- •Правила выбора программной реализации рекуррентных соотношений
- •если возникающие подзадачи на каждом шаге независимы, то каждая из них будет решаться
- ••Контрольные вопросы
- •Задачи для контроля
- •Задачи для контроля
- •Конец темы 1
Основы Алгоритмизации и Программирования
2 часть Алгоритмы на структурах данных
Професcор Синицын
Анатолий Константинович
Кафедра ВМиП (а. 410 – 5к)
02.07.19 |
1 |
Цели :
1.Получить навыки программной реализации алгоритмов на типичных структурах данных
2.Познакомиться с элементами теории алгоритмов и основами технологии программирования
34ч. лекций +10 индивидуальных заданий
02.07.19 |
2 |
Литература
1.Котов В.М., Соболевская Е.П. Структуры данных и алгоритмы.Теория и практика. Учебное пособие. Минск.:БГУ. 2004.
2.Вирт Н. Алгоритмы и структуры данных/Н.Вирт – СПб.:«Невский диалект», 2005.
3.Стивенс,Р. Delphi. Готовые алгоритмы/ Р.Стивенс. – М.:ДМК Пресс;СПб.:Питер, 2004.
4.Дж.Гленн Брукшир. Введение в компьютерные науки. «Вильямс» М, С-П, Киев. 2001.
02.07.19 |
3 |
Методические пособия
1.Синицын А.К. Навроцкий А.А. «Основы алгоритмизации и программирования в среде Delphi. Алгоритмы на структурах данных». Лабораторный практикум по курсу ОАиП для студентов 1-2-го курсов всех специальностей БГУИР. Мн. БГУИР, 2007.
2.Синицын А.К. Основы алгоритмизации и программирования в среде Delphi.Электронный учебно-методический комплекс/А.К.Синицын, А.А.Навроцкий. - Минск: БГУИР, 2006.
02.07.19 |
4 |
Тема 1 Программирование с
использованием рекурсии
Рекуррентные соотношения и стратегии решения задачи разбиением ее на подзадачи
Программирование рекуррентных соотношений
Условия окончания рекурсии
О целесообразности использования рекурсии
Правила выбора программной реализации рекуррентных соотношений
02.07.19 |
5 |
Рекуррентные соотношения и стратегии решения задачи разбиением ее на подзадачи
•Рекурсивным называется описание объекта, частично состоящее и определяемое с помощью самого описываемого объекта. После того, как вы познакомитесь с рекурсией, вы обнаружите, что она встречается достаточно часто.
•
• В математике рекурсивные определения записываются с помощью рекуррентных соотношений, которые называются также рекуррентными уравнениями.
02.07.19 |
6 |
• Определение 1.
• Рекуррентными уравнениями называются соотношения, связывающие одни и те же функции,
но с различными значениями аргументов.
• Например
F(n,x)=F(n-1,x)+1
U(n,x)=U(n,x+3)+F(n-1,x)
02.07.19 |
7 |
Определение 2.
Рекуррентное уравнение называется правильным,
если значения аргументов у любой из функций в правой части соотношения меньше значения аргументов у функций в левой части соотношения;
•если аргументов несколько, то достаточно уменьшения одного из них.
•Примеры правильных уравнений:
F(n,x)=F(n-1,x)+1
U(n,x)=U(n-1,x-2)-F(n-1,x)
02.07.19 |
8 |
•Любое правильное рекуррентное уравнение при задании начального условия описывает некую счетную бесконечную последовательность
a0, a1, a2,. . . an,. . .
•Например, тривиальное уравнение F(n)=F(n-1), при задании начального условия F(0)=1 определяет бесконечную последовательность единиц
1, 1,. . .1,. . .
02.07.19 |
9 |
Примеры описания объектов с помощью рекуррентных уравнений
•1. Натуральные числа:
•а) N(1)=1 есть натуральное число;
•б) N(i)=N(i-1)+1, число следующее за
натуральным - натуральное число.
02.07.19 |
10 |