Урок 50. Поняття про пошук із поверненням і тернарний пошук.
Чи доводилося вам виконувати пошук варіантів виходу з лабіринту від його входу? Як у таких випадках ви діяли?
Прочитайте!
Пошук із поверненням (від англ. backtracking) — це загальний метод (або стратегія пошуку) розв’язування задачі, коли доводиться неодноразово повертатися до стану об’єкта (об’єктів), зафіксованого на попередньому кроці.
Класичним прикладом пошуку із поверненням є пошук у лабіринті всіх шляхів від входу до виходу з нього. Перелік усіх шляхів у лабіринті називають множиною всіх можливих рішень. Прикладом пошуку з поверненням є також гра в шахи, коли для пошуку оптимального чергового ходу доводиться неодноразово повертатися до поточного стану білих і чорних фігур. Пошук із поверненням може використовуватися для різних структур даних для розв’язування задач, у яких потрібно перерахувати всі можливі варіанти, наприклад, доставки вантажу з одної країни в іншу, або знайти способи отримання кредиту для будівництва готелю, або дати відповідь, чи існує такий спосіб вкладу, який задовольняє власні потреби клієнта тощо.
Алгоритм розв’язування задач методом пошуку з поверненням зводиться до послідовного розширення часткового рішення. Якщо на черговому кроці таке розширення виконати не вдається, то здійснюється повернення на попередній крок і продовжується пошук. Алгоритм розв’язування задач методом пошуку з поверненням дозволяє знайти всі розв’язки для поставленого завдання, якщо вони існують. Для прискорення методу намагаються так організувати обчислення, щоб якомога швидше можна було виявити варіанти, які не задовольняють умову.
Приклад. У багатьох джерелах як класичний приклад алгоритму пошуку з поверненням описується задача про 8 ферзів, яку можна сформулювати так. Необхідно на шаховій дошці розмістити 8 ферзів так, щоб жодний із них не був під боєм іншого.
- Спочатку ставиться на дошку один ферзь.
- Далі ставляться інші так, щоб його не били вже поставлені ферзі.
- Якщо на черговому кроці так поставити фігуру не можна, повертаються на крок назад і намагаються поставити раніше встановленого ферзя на інше місце.
За допомогою методу з поверненням можна отримати всі перестановки і комбінації даної множини.
Тернарний пошук в інформатиці застосовується для пошуку максимумів або мінімумів функції, яка на деякому відрізку спочатку постійно зростає, потім постійно спадає або спочатку спадає потім зростає.
Алгоритм тернарного пошуку можна реалізувати для пошуку заданого елемента в упорядкованому масиві, поділивши його на три приблизно рівні частини.
Елемент із заданим значенням можна порівняти з останнім елементом першої частини. Якщо значення збігаються, то пошук завершується, якщо менше, то пошук продовжується в першій частині, інакше — він порівнюється з останнім елементом другої частини.
Далі виконуються дії, аналогічні описаним.
Розв’язання задач
Завдання 1. Знайдіть в Інтернеті відомості про 5 найвищих вершин в Україні. Розробіть програму визначення наявності у цьому переліку назви вершини, яка вводиться з клавіатури.
Розв’язання

Ця програма працює наступним чином:
- Програма визначає масив з назвами 5 найвищих вершин України.
- Потім програма отримує від користувача назву вершини.
- Нарешті, програма перебирає всі вершини в масиві. Якщо назва введеної вершини збігається з назвою однієї з вершин у масиві, то програма встановлює значення змінної
foundнаTrue. Якщо назва введеної вершини не збігається з жодної з назв вершин у масиві, то програма встановлює значення змінноїfoundнаFalse. - Наприкінці програма виводить результат.
Завдання 2. Дано масив цілих чисел: 13, 7, 6, 7, 9, 7, 6, 5. Розробіть програму обчислення кількості числа, значення якого вводиться з клавіатури.
Розв’язання

Завдання 3. Дано масив цілих чисел: 6, 8, 13, 17, 19, 30, 13, 8. Розробіть програму визначення всіх позицій, на яких знаходиться число, значення якого вводиться з клавіатури.
Завдання 4. Розробіть програму створення масиву, що містить 10 випадкових чисел у діапазоні від 3 до 9 і визначення, чи є у ньому число 6.
Розв’язання

Завдання 5. Дано масив з n цілих чисел. Знайти добуток двох найбільших елементів масиву.
Розв’язання

Завдання 6. Дано масив з n цілих чисел. Виведіть всі його елементи з парними індексами.
-
Тема 1.Бази даних
- Урок 1. Поняття бази даних. Поняття, призначення й основні функції систем управління базами даних.
- Урок 2. Поняття моделі подання даних, основні моделі подання даних. Проектування баз даних. Поняття сутності, атрибута, ключа, зв’язку. Модель «сутність-зв’язок» предметної області. Класифікація зв’язків за множинністю та обов’язковістю. Бази даних в інформаційних системах.
- Урок 3. Основні відомості про СУБД MS Access. Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.
- Урок 4. Модифікація структури таблиць. Ключові поля, індекси, зв’язування таблиць.
- Урок 5. Уведення, пошук і редагування даних у таблиці.
- Урок 6. Інструктаж з БЖД Практична робота 1. Створення структури таблиць і введення вмісту.
- Урок 7. Сортування та фільтрація записів. Операції над таблицями.
- Урок 8. Розв’язання задач на створення таблиць та зв’язків
- Урок 9. Розв’язання задач на створення таблиць та зв’язків
- Урок 10. “ЗАПИТИ Загальні відомості про запити. Створення й виконання запитів на вибірку даних.”
- Урок 11. Запити з функціями і з полями, що обчислюються.
- Урок 12. Запити з параметрами. Перехресні запити.
- Урок 13. Інструктаж з БЖД. Практична робота 3.Запити з функціями та з полями, що обчислюються.
- Урок 14. Запити на змінення даних.
-
Тема 2. Форми. Звіти. Імпорт та експорт даних.
- Урок 18. Створення форм за допомогою простих засобів. Елементи керування та властивості форм.
- Урок 19. Поняття звіту. Автоматичне створення звіту. Створення звіту за допомогою конструктора звітів.
- Урок 20. Інструктаж з БЖД Практична робота 4. Створення форм, звітів, запитів..
- Урок 21. Призначення, основні поняття та терміни мови SQL. Найпростіші запити мовою SQL у системі Access.
- Урок 22. Запити з умовою. Групування запитів.
- Урок 23. Сутність імпорту та експорту об’єктів. Імпорт об’єктів з однієї бази даних в іншу. Експорт об’єктів з однієї бази даних в іншу.
- Урок 25. Інструктаж з БЖД. Практична робота 5. Основи мови запитів SQL. Імпорт та експорт об’єктів бази даних.
- Урок 30. Практикум з використання інформаційних технологій
-
Тема 3. Алгоритми
- Урок 31. Повторення теми «алгоритми» вивченої в 10 класі. Методи проектування і подання алгоритмів.
- Урок 32. Кодування алгоритмів. Поняття складності алгоритмів. Математична модель, вибір структури даних
- Урок 33. Пошук оптимального алгоритму розв’язання
- Урок 34. Оцінка та аналіз ефективності алгоритму
- Урок 35. Інструктаж з БЖД. Практична робота 6. Реалізація алгоритму мовою програмування
- Урок 36. Розв’язання задач на оцінку аналізу ефективності алгоритму
- Урок 37. Основні поняття теорії чисел: системи числення
- Урок 38. Робота з великими числами
- Урок 39. Факторизація чисел. Інструктаж з БЖД. Практична робота 7. Основні поняття теорії чисел.
- Урок 42. Алгоритми сортування. Квадратичні алгоритми сортування. Алгоритми сортування вибором.
- Урок 43. Алгоритм сортування методом обміну
- Урок 44. Сортування вставленням
- Урок 45. Сортування злиттям.
- Урок 48. Бінарний пошук
- Урок 49. Пошук максимального і мінімального елементів у масиві
- Урок 50. Поняття про пошук із поверненням і тернарний пошук.
- Урок 51. Інструктаж з БЖД. Практична робота 9. Розв’язування практичних завдань
- Урок 52. Практикум з використання інформаційних технологій
- Урок 53. Практикум з використання інформаційних технологій
-
Тема 4. Обробка рядків
- Урок 61. Обробка рядків. Основні відомості про рядки й операції над ними
- Урок 62. Функції і методи опрацювання рядків
- Урок 63. Функції і методи опрацювання рядків
- Урок 64. Приклади програм обробки рядків
- Урок 65. Основні поняття і терміни теорії графів.
- Урок 66. Способи подання графів у комп’ютері.
- Урок 67. Пошук у глибину та ширину
- Урок 68. Визначення найкоротшого шляху у графі. Алгоритм Дейкстри та його реалізація
- Урок 69. Алгоритм Флойда-Уоршела та його реалізація. Інструктаж з БЖД. Практична робота №10 “Реалізація алгоритму пошуку”
- Урок 70. Динамічне програмування.
- Урок 71. Жадібні алгоритми
- Урок 72. Критерії застосування задач динамічного програмування
- Урок 74. Базові поняття обчислювальної геометрії
- Урок 75. Операції над векторами. Векторний добуток
- Урок 76. Обчислення площі многокутника
- Урок 79. Інструктаж з БЖД. Практична робота №12 “Основи обчислювальної геометрії”
-
Веб-технології
- Урок 85. Основні тренди у веб-дизайні.
- Урок 86. Види і типи сайтів. Цільова аудиторія.
- Урок 87. Інформаційна структура сайта.
- Урок 88. Системи керування вмістом
- Урок 89. Запуск проекту «Розробка власного сайта»
- Урок 90. Адміністрування сайта
- Урок 91. Інструменти веб-розробника
- Урок 92. Інструктаж з БЖД. Практична робота №13 “Створення макету інформаційної структури сайта”
- Урок 93. Мова гіпертекстової розмітки.
- Урок 94. Мова гіпертекстової розмітки. Списки на веб-сторінках
- Урок 95. Каскадні таблиці стилів
- Урок 96. Проектування та верстка веб-сторінок. Адаптивна верстка.
- Урок 97. Кросбраузерність.
- Урок 98. Інструктаж з БЖД. Практична робота №14 “Створення веб-сторінок”
- Урок 99. Графіка для веб-середовища.
- Урок 100. Анімаційні ефекти.
- Урок 103. Інструктаж з БЖД. Практична робота №15 “Графіка та мультимедіа для веб-середовища”
- Урок 105. Веб-програмування та інтерактивні сторінки.
- Урок 106. Хостинг сайта. Інструктаж з БЖД. Практична робота №16 “Розміщення сайту на сервері”
- Урок 108. Валідація та збереження даних форм.
- Урок 110. Правила ергономічного розміщення відомостей на веб-сторінці.
- Урок 111. Пошукова оптимізація та просування веб-сайтів. Інструктаж з БЖД. Практична робота №17 “Оцінка сайту. Просування сайту”
-
Парадигми програмування. повторення вивченого матеріалу
0.00 на основі 0 рейтингів