
- •Зміст дисципліни.
- •Найменування тем, їхній зміст, обсяг у годинах лекційних занять
- •Вказівки з використанНя літературних джерел
- •Алгоритми й структури даних
- •Стеки, списки
- •Дерева пошуку Бінарні дерева
- •Двійкові дерева
- •Червоно- чорні дерева
- •Частково впорядковані дерева Статья I.При створенні чуд елементи вводилися в наступному порядку: (13, 6, 15, 5, 10, 6, 3, 13, 5, 6, 35, 8). Пояснити побудова (переформування) дерева.
- •Рекурсія
- •Перебір з поверненням
- •Машина Тьюрінга
- •Приклади Послідовний пошук
- •Структури даних. Масиви Решето Ератосфена
- •Обчислення найближчої точки
- •Структури даних. Списки Приклад циклічного списку (задача Йосипа)
- •Сортування методом вставки в список
- •Звертання порядку проходження елементів списку
- •Структури даних. Рядки Сортування масиву рядків
- •Абстрактні типи даних (атд) Інтерфейс абстрактного типу даних стека
- •Реалізація черги fifo на базі масиву
- •Реалізація черги fifo на базі зв'язного списку
- •Перетворення з інфіксної форми в постфіксну
- •Рекурсія Алгоритм Евклида
- •Рекурсивна програма для оцінки префіксних виразів
- •Розв’язання
- •Приклад 2 Завдання
- •Розв’язання
- •Приклад 3 Завдання
- •Розв’язання
- •Приклад 4 Завдання
- •Розв’язання
- •Приклад 5 Завдання
- •Розв’язання
- •Приклад 6 Завдання
- •Розв’язання
- •Приклад 7 Завдання
- •Розв’язання
- •Алгоритм роботи машини т’юринга
- •Дослідження функції на рекурсивність
- •Нормальні алгоритми Маркова
- •Алгоритм роботи програми.
- •Приклад роботи програми.
- •Варіанти курсових робіт
- •Варіанти виконання Алгоритм виконання курсової роботи:
- •Приклад1.
- •Побудова моделі.
- •Розроблення алгоритму.
- •Правильність алгоритму.
- •Реалізація алгоритму.
- •Перевірка програми.
- •Приклад2
- •Постановка задачі
- •Перший варіант розв’язку
- •Другий варіант розв’язку.
- •Приклад3
- •Опукла оболонка
- •Метод обходу Грехема
- •Метод обходу Джарвіса
- •Алгоритм апроксимації опуклої оболонки
- •Швидкі методи побудови опуклої оболонки
- •Алгоритм типу розділяй та пануй
- •Побудова опуклої оболонки простого многокутника
- •Динамічні алгоритми побудови опуклої оболонки
- •Порівняльний аналіз алгоритмів побудови опуклої оболонки
- •Висновки
Рекурсія Алгоритм Евклида
Це один з найбільше давно відомих алгоритмів, розроблений понад 2000 років тому — рекурсивний метод відшукання найбільшого загального дільника двох цілих чисел.
int gcd(int m, int n)
{
if (n == 0) return m;
return gcd(n, m % n);
}
Рекурсивна програма для оцінки префіксних виразів
Для оцінки префіксного виразу або здійснюється перетворення числа з ASCII у двійкову форму (у циклі while) наприкінці, або над двома операндами, що оцінюються рекурсивно, виконується операція, зазначена першим символом виразу. Ця функція є рекурсивною, однак використовує глобальний масив, що містить вираз і індекс поточного символу виразу. Індекс змінюється після обчислення кожного підвиразу.
char *a; int i;
int eval()
{ int x = 0;
while (a[i] = ' ') i++;
if (a[i] == '+')
{ i++; return eval() + eval(); }
if (a[i] == '*')
{ i++; return eval() * eval(); }
while ((a[i] >= '0') && (a[i] <= '9'))
x = 10*x + (a[i++]-'0');
return x;
}
Рішення задачі про ханойські вежі
Ми зрушуємо вежу з дисків вправо, зрушуючи (рекурсивно) усі диски, крім нижнього, уліво, потім зрушуємо нижній диск вправо, після чого переміщаємо (рекурсивно) вежу поверх нижнього диска.
void hanoi(int N, int d)
{
if (N == 0) return;
hanoi(N-l, -d);
shift(N, d);
hanoi(N-l, -d);
}
ВКАЗІВКИ ДО ВИКОНАННЯ КОНТРОЛЬНИХ І РОЗРАХУНКОВО-ГРАФІЧНИХ РОБІТ
Необхідно вибрати свій варіант завдання на контрольну роботу – функцію, обчислюваність якої потрібно встановити. Обчислюваність встановлюється за Т’юрингом, Марковим і рекурсивними функціями.
Завдання на розрахункову роботу №1.
Варіанти функцій, які підлягають обчисленню
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приклади виконання завдань розрахункової роботи №1.
Приклад 1.
Завдання
Побудувати машину Тьюрінга, яка по заданим цілим невід’ємним числам x, y, z значення функції z|x‑y|.
Формат вводу та виводу
На стрічці, нескінченній у правий бік, від початку зліва направо написано: 0, x+1 одиниць, 0, y+1 одиниць, 0, z+1 одиниць. Всі подальші символи є нулями. Машина Тьюрінга має після останньої одиниці вхідної стрічки та наступного нуля, а потім – відповідь у вигляді z|x‑y|+1 одиниць. Всі інші символи стрічки, крім тих, в які будуть записані вищезгадані z|x‑y|+1 одиниць, після завершення роботи машини мають залишитися незміненими, хоча, вони можуть змінюватися пртягом процесу роботи машини.