- •Методичні вказівки
- •5.05010301 – Розробка програмного забезпечення
- •2.1 Основні форми представлення алгоритмів:
- •2.2 Блок-схеми
- •2.3 Основні структури алгоритмів
- •Лінійний алгоритм
- •3. Постановка задачі
- •4. Варіанти
- •5. Методичні вказівки
- •3. Постановка задачі
- •4. Варіанти
- •5. Методичні вказівки
- •Цикли з відомим числом повторень
- •Цикли з невідомим числом повторень
- •Вкладені цикли
- •3. Постановка задачі
- •4. Варіанти
- •5. Методичні вказівки
- •5. Методичні вказівки
- •Приклад
- •5. Методичні вказівки
- •2. Введення даних організувати з клавіатури.
- •3. Висновок результатів для завдання організувати на монітор.
- •Практична робота № 6
- •3. Постановка завдання
- •4. Варіанти
- •5. Методичні вказівки
- •2. Введення даних для завдань а і б організувати з клавіатури.
- •4. Висновок результатів для завдання а організувати у вигляді:
- •7. Контрольні питання
- •Практична робота № 7
- •3. Постановка завдання.
- •5. Методичні вказівки
- •2.3 Цикл типу do — while
- •2.4 Керуючі оператори в циклах
- •3. Постановка завдання.
- •5. Методичні вказівки
- •7. Контрольні питання
- •2.5 Області дії змінних
- •Приклад
- •3. Постановка завдання
- •4. Варіанти
- •5. Методичні вказівки
- •7. Контрольні запитання
- •2.5. Поиск в отсортированном массиве
- •3. Постановка завдання
- •5. Методичні вказівки
- •7. Контрольні питання
- •3. Постановка завдання
- •4. Варіанти завдань
- •5. Методичні вказівки
- •5. Методичні вказівки
- •7. Контрольні питання
- •Практична робота № 13
- •1. Мета роботи:
- •2. Теоретичні відомості
- •3. Постановка завдання
- •1. Використовуючи функції сформувати за допомогою дсч одновимірний масив і вивести його на друк.
- •2. Виконати обробку одновимірного масиву у відповідності з варіантом, використовуючи функції, результат вивести на друк.
- •4. Варіанти
- •5. Методичні вказівки
- •7. Контрольні питання
- •2.3 Швидке сортування
- •Алгоритм
- •Швидкість
- •2.4 Модифіковані методи сортування
- •2.4.1 Метод Шелла
- •2.4.2 Швидке сортування
- •3. Постановна задачі
- •4. Варіанти
- •5. Методичні вказівки
- •Приклад
- •3. Постановка завдання
- •1. Ввести з клавіатури рядок символів і обробити її у відповідності зі своїм варіантом, використовуючи функції.
- •4. Варіанти
- •5. Методичні вказівки
- •7. Контрольні питання
- •5. Методичні вказівки
- •7. Контрольні питання
- •Практична робота № 17
- •1. Мета роботи:
- •2. Теоретичні відомості
- •2.5. Численные методы решения уравнений
- •2.5.1. Метод итераций
- •2.5.2. Метод Ньютона
- •2.5.3. Метод половинного деления
- •3. Постановка завдання
- •1. Написати функцію з замовчує параметрами відповідно до варіанта, продемонструвати різні способи виклику функції: • з параметрами заданими явно, • з опущеними параметрами
- •4. Варіанти
- •5. Методичні вказівки
- •3. Постановка задачі
- •На цьому дереві можна визначити три методи упорядкування:
- •5. Методичні вказівки
- •7. Контрольні питання
- •Практична робота № 20
- •1. Мета роботи:
- •2. Короткі теоретичні відомості
- •3. Постановка завдання
- •4. Варіанти
- •5. Методичні вказівки
- •7. Контрольні питання
На цьому дереві можна визначити три методи упорядкування:
Зліва направо: Ліве піддерево - Корінь - Праве піддерево;
Зверху вниз: Корінь - Ліве піддерево - Праве піддерево;
Знизу вгору: Ліве піддерево - Праве піддерево - Корінь.
Ці три методи можна сформулювати у вигляді рекурсивних алгоритмів.
void Run (point * p)
/ / Обхід зліва направо
{
if (p)
{
<Обробка p-> data>Run (p-> left) ;/ / перехід до лівого піддерева
Run (p-> right) ;/ / перехід до правого піддерева
}
}
Якщо в якості операції обробки вузла поставити операцію виведення інформаційного поля, то ми отримаємо функцію для друку дерева.
2.4.2. Формування дерева
/ / Побудова дерева пошуку
Point * first (int d) / / формування першого елемента дерева
{
Point * p = new Point;
p-> key = d;
p-> left = 0;
p-> right = 0;
return p;
}
/ / Додавання елемента d в дерево пошуку
Point * Add (Point * root, int d)
{
Point * p = root ;/ / корінь дерева
Point * r;
/ / Прапор для перевірки існування елемента d в дереві
bool ok = false;
while (p &&! ok)
{
r = p;
if (d == p-> key) ok = true ;/ / елемент вже існує
else
if (d <p-> key) p = p-> left ;/ / піти в ліве піддерево
else p = p-> right ;/ / піти в праве піддерево
}
if (ok) return p ;/ / знайдено, не додаємо
/ / Створюємо вузол
Point * New_point = new Point () ;/ / виділили пам'ять
New_point-> key = d;
New_point-> left = 0;New_point-> right = 0;
/ / Якщо d <r-> key, то додаємо його в ліве піддерево
if (d <r-> key) r-> left = New_point;
/ / Якщо d> r-> key, то додаємо його в праве піддерево
else r-> right = New_point;return New_point;
}
/ / Побудова ідеально збалансованого дерева
point * Tree (int n, point * p)
{
point * r;
int nl, nr;
if (n == 0) {p = NULL; return p;}
nl = n / 2;
nr = n-nl-1;
r = new point;
cout << "?";
cin >> r-> data;
r-> left = Tree (nl, r-> left);r-> right = Tree (nr, r-> right);
p = r;
return p;
}
3. Постановка завдання
1. Сформувати односпрямований список, тип інформаційного поля зазначений у варіанті.
2. Роздрукувати отриманий список.
3. Виконати обробку списку у відповідності з завданням.
4. Роздрукувати отриманий список.
5. Видалити список з пам'яті.6. Сформувати двонаправлений список, тип інформаційного поля зазначений у варіанті.
7. Роздрукувати отриманий список.
8. Виконати обробку списку у відповідності з завданням.
9. Роздрукувати отриманий список.
10. Видалити список з пам'яті.
11. Сформувати ідеально збалансоване бінарне дерево, тип інформаційного поля зазначений у варіанті.
12. Роздрукувати отримане дерево.
13. Виконати обробку дерева відповідно до завдання, вивести отриманий результат.
14. Перетворити ідеально збалансоване дерево в дерево пошуку.
15. Роздрукувати отримане дерево.
4. Варіанти
Завдання 19.1, 19.2 та 19.3
Таблиця 24 – Вихідні данні для завданнь 19.1, 19.2 та 19.3
№ варианта |
Однонаправленный |
Двунаправленный |
Бинарное дерево |
1 |
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями. |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля char. Найти количество элементов с заданным ключом.
|
2 |
Тип информационного поля double. Удалить из списка все элементы с четными номерами (2, 4, 6 и. т. д.). |
Тип информационного поля char*. Добавить в список элементы с номерами 1, 3, 5 и т. д. |
Тип информационного поля int. Найти максимальный элемент в дереве.
|
3 |
Тип информационного поля int. Удалить из списка первый элемент с четным информационным полем. |
Тип информационного поля double. Добавить в список элемент после элемента с заданным информационным полем. |
Тип информационного поля char*. Найти количество листьев в дереве. |
4 |
Тип информационного поля int. Удалить из списка последний элемент с четным информационным полем. |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля double. Найти минимальный элемент в дереве. |
5 |
Тип информационного поля char*. Добавить в список элемент после элемента с заданным информационным полем. |
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями. |
Тип информационного поля char. Найти высоту дерева. |
6 |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля double. Удалить из списка все элементы с четными номерами (2, 4, 6 и. т. д.). |
Тип информационного поля int. Найти среднее арифметическое элементов дерева. |
7 |
Тип информационного поля double. Добавить в список после каждого элемента с отрицательным информационным полем элемент с информационным полем равным 0. |
Тип информационного поля int. Удалить из списка первый элемент с четным информационным полем. |
Тип информационного поля char*. Найти количество элементов дерева, начинающихся с заданного символа. |
8 |
Тип информационного поля char*. Добавить в список элементы с номерами 1, 3, 5 и т. д. |
Тип информационного поля int. Удалить из списка последний элемент с четным информационным полем. |
Тип информационного поля char. Найти количество элементов с заданным ключом.
|
9 |
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями. |
Тип информационного поля char*. Добавить в список элементы с номерами 1, 3, 5 и т. д. |
Тип информационного поля double. Найти максимальный элемент в дереве.
|
10 |
Тип информационного поля double. Удалить из списка все элементы с четными номерами (2, 4, 6 и. т. д.). |
Тип информационного поля char*. Добавить в список элемент после элемента с заданным информационным полем. |
Тип информационного поля int Найти количество листьев в дереве. |
11 |
Тип информационного поля int. Удалить из списка первый элемент с четным информационным полем. |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля double. Найти минимальный элемент в дереве. |
12 |
Тип информационного поля int. Удалить из списка последний элемент с четным информационным полем. |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля char. Найти высоту дерева. |
13 |
Тип информационного поля char*. Добавить в список элемент после элемента с заданным информационным полем. |
Тип информационного поля double. Удалить из списка все элементы с отрицательными информационными полями. |
Тип информационного поля int. Найти среднее арифметическое элементов дерева. |
14 |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля int. Удалить из списка последний элемент с четным информационным полем. |
Тип информационного поля char. Найти количество элементов с заданным ключом. |
15 |
Тип информационного поля double. Добавить в список после каждого элемента с отрицательным информационным полем элемент с информационным полем равным 0. |
Тип информационного поля int. Удалить из списка все элементы с четными номерами (2, 4, 6 и. т. д.). |
Тип информационного поля char*. Найти количество элементов дерева, начинающихся с заданного символа |
16 |
Тип информационного поля char*. Добавить в список элементы с номерами 1, 3, 5 и т. д. |
Тип информационного поля int. Удалить из списка первый элемент с четным информационным полем. |
Тип информационного поля int. Найти максимальный элемент в дереве.
|
17 |
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями. |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля double. Найти количество листьев в дереве. |
18 |
Тип информационного поля double. Удалить из списка все элементы с четными номерами (2, 4, 6 и. т. д.). |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля int. Найти минимальный элемент в дереве. |
19 |
Тип информационного поля int. Удалить из списка первый элемент с четным информационным полем. |
Тип информационного поля char*. Добавить в список элементы с номерами 1, 3, 5 и т. д. |
Тип информационного поля char. Найти высоту дерева. |
20 |
Тип информационного поля int. Удалить из списка последний элемент с четным информационным полем. |
Тип информационного поля char*. Добавить в список элемент после элемента с заданным информационным полем. |
Тип информационного поля double. Найти среднее арифметическое элементов дерева. |
21 |
Тип информационного поля char*. Добавить в список элемент после элемента с заданным информационным полем. |
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями. |
Тип информационного поля char*. Найти количество элементов дерева, начинающихся с заданного символа. |
22 |
Тип информационного поля char*. Добавить в список элемент с заданным номером. |
Тип информационного поля double. Удалить из списка все элементы с четными номерами (2, 4, 6 и. т. д.). |
Тип информационного поля char. Найти количество элементов с заданным ключом.
|
23 |
Тип информационного поля double. Добавить в список после каждого элемента с отрицательным информационным полем элемент с информационным полем равным 0. |
Тип информационного поля int. Удалить из списка первый элемент с четным информационным полем. |
Тип информационного поля char*. Найти количество листьев в дереве. |
24 |
Тип информационного поля char*. Добавить в список элементы с номерами 1, 3, 5 и т. д. |
Тип информационного поля int. Удалить из списка последний элемент с четным информационным полем. |
Тип информационного поля double. Найти максимальный элемент в дереве.
|
25 |
Тип информационного поля int. Удалить из списка все элементы с четными информационными полями. |
Тип информационного поля char*. Добавить в список элементы с номерами 1, 3, 5 и т. д. |
Тип информационного поля double. Найти минимальный элемент в дереве. |