- •Зміст пояснювальної записки
- •Постановка задачі Організаційно-інформаційна сутність задачі [1]
- •Математична модель задачі [1]
- •Опис методів розв’язання задачі Метод перебору з поверненням [2]
- •Алгоритм перебору з поверненням
- •Зображення даних в оперативній пам’яті [2]
- •Опис алгоритму програмного модуля [2]
- •Оцінка складності алгоритму [2]
- •Опис програми Методи та засоби розробки програми
- •Сценарій роботи програми
- •Функціональна структура програми Специфікація модулів
- •Специфікація функцій
- •Технологія створення програми
- •Алгоритм програми
- •Опис алгоритму методу
- •Алгоритм програми
- •Вхідні та вихідні тести
- •Опис алгоритму методу
- •Алгоритм програми
- •Опис алгоритму методу
- •Алгоритм програми
- •Вхідні та вихідні тести
- •Опис алгоритму методу
- •Алгоритм програми
- •Вхідні та вихідні тести
- •Опис алгоритму методу
- •Алгоритм програми
- •Висновок.
- •Список використаної літератури.
- •Додаток 1 cd та опис його змісту
Функціональна структура програми Специфікація модулів
Кожна реалізована програма має вигляд окремого самостійного модуля, окремого файлу, які приєднані до головного файлу, з якого викликаються дані прикладні програми.
Список реалізованих задач та назва модулів:
Задача про 8 ферзів – “EightQueens.cpp”
Обхід конем шахової дошки – “Knight.cpp ”
Задача про лабіринт – “Labyrinth.cpp”
Задача комівояжера – “Salesman.cpp”
Задача про парламент – “Parlament.cpp”
Задача про автозаправку – “GasStation.cpp”
Специфікація функцій
Задача про 8 ферзів – “EightQueens.cpp”
Ім’я функції |
Призначення функції |
Параметри |
Семантика параметрів |
EightQueens |
Головна функція модуля. |
___________ |
___________________ |
CleanBoard |
Обнулити необхідні змінні та присвоїти початкові значення. |
___________ |
___________________ |
tryQ |
Спробувати поставити ферзя на необхідний рядок шахівниці. |
int i |
i – номер рядку, на який необхідно спробувати додати ферзя. |
setQ |
Помістити ферзя на шахівницю. |
int i, int j |
i – рядок, j – стовпець на який розмістимо ферзя |
resetQ |
Прибрати ферзя з шахівниці. |
int i, int j |
i – рядок, j – стовпець з якого прибирається ферзь |
PrintBoard |
Вивести отримані результати на екран |
___________ |
___________________ |
Обхід конем шахової дошки – “Knight.cpp ”
Ім’я функції |
Призначення функції |
Параметри |
Семантика параметрів |
Knight |
Головна функція модуля. |
___________ |
___________________ |
InitialBoard |
Обнулити необхідні змінні та присвоїти початкові значення. |
___________ |
___________________ |
Solve |
Рекурсивна функція обходу шахівниці конем. |
int x, int y, int q |
x- номер рядка, y- номер стовпця на який перейшов кінь, q – номер кроку |
Вивести отримані результати на екран |
___________ |
___________________ |
Задача про лабіринт – “Labyrinth.cpp”
Ім’я функції |
Призначення функції |
Параметри |
Семантика параметрів |
Labyrinth |
Головна функція модуля. |
___________ |
___________________ |
input |
Введення даних. |
___________ |
___________________ |
ChooseFile |
Вибрати файл для читання. |
___________ |
___________________ |
ReadFromFileL |
Зчитати дані з файлу. |
___________ |
___________________ |
ReadFromKeyboardL |
Зчитати дані з клавіатури. |
___________ |
___________________ |
SearchStartAndFinish |
Знайти вхід і вихід з лабіринту. |
___________ |
___________________ |
SearchExit |
Рекурсивна функція пошуку виходу з лабіринту. |
int x, int y |
x, y – координати поточного розташування в лабіринті. |
WritePathToLabyrinth |
Записати знайдений шлях в лабіринт |
___________ |
___________________ |
Вивести отримані результати на екран |
___________ |
___________________ |
Задача комівояжера – “Salesman.cpp”
Ім’я функції |
Призначення функції |
Параметри |
Семантика параметрів |
Salesman |
Головна функція модуля. |
___________ |
___________________ |
ReadFromFileS |
Зчитати дані з файлу. |
___________ |
___________________ |
ReadFromKeyboardS |
Зчитати дані з клавіатури. |
___________ |
___________________ |
initialization |
Обнулити необхідні змінні та присвоїти початкові значення. |
___________ |
___________________ |
search |
Рекурсивна функція пошуку виходу з лабіринту. |
int v, int Count, int Cost |
v - номер поточного міста, Count - лічильник кількості пройдених міст, Cost - ціна поточного розв’язку |
OutputResult |
Вивести отримані результати на екран |
___________ |
___________________ |
Задача про парламент – “Parlament.cpp”
Ім’я функції |
Призначення функції |
Параметри |
Семантика параметрів |
Parlament |
Головна функція модуля. |
___________ |
___________________ |
ChooseFileP |
Вибрати файл для читання. |
___________ |
___________________ |
ReadFromFileP |
Зчитати дані з файлу. |
___________ |
___________________ |
ReadFromKeyboardP |
Зчитати дані з клавіатури. |
___________ |
___________________ |
backtrack |
Рекурсивна функція пошуку мінімального парламенту. |
___________ |
___________________ |
FullParlament |
Перевіряє чи є даний парламент повним? |
___________ |
___________________ |
add |
Додати жителя до парламенту |
int k |
k – номер жителя |
del |
Прибрати жителя з парламенту |
int k |
k – номер жителя |
PrintParlament |
Вивести отримані результати на екран |
___________ |
___________________ |
Задача про автозаправку – “GasStation.cpp”
Ім’я функції |
Призначення функції |
Параметри |
Семантика параметрів |
GasStation |
Головна функція модуля. |
___________ |
___________________ |
ReadFromFile |
Зчитати дані з файлу. |
___________ |
___________________ |
ReadFromKeyboard |
Зчитати дані з клавіатури. |
___________ |
___________________ |
PrepareData |
Побудувати матрицю відстаней між містами. |
___________ |
___________________ |
Search |
Функція пошуку міста для заправки за допомогою перебору. |
___________ |
___________________ |
PrintResult |
Вивести отримані результати на екран |
___________ |
___________________ |
Схема взаємодій функцій програми
На рисунку 2 зображена схема взаємодії функцій програми «Задача про вісім ферзів».
Рис 2. HIPO-діаграма програми «Задача про вісім ферзів»
На рисунку 3 зображена схема взаємодії функцій програми «Обхід конем шахової дошки».
Рис 3. HIPO-діаграма програми «Обхід конем шахової»
На рисунку 4 зображена схема взаємодії функцій програми «Задача про лабіринт».
Рис 4. HIPO-діаграма програми «Задача про лабіринт»
На рисунку 5 зображена схема взаємодії функцій програми «Задача комівояжера».
Рис 5. HIPO-діаграма програми «Задача комівояжера»
На рисунку 6 зображена схема взаємодії функцій програми «Задача про парламент».
Рис 6. HIPO-діаграма програми «Задача про парламент»
На рисунку 7 зображена схема взаємодії функцій програми «Задача про автозаправку».
Рис 7. HIPO-діаграма програми «Задача про автозаправку»