- •Зміст пояснювальної записки
- •Постановка задачі Організаційно-інформаційна сутність задачі [1]
- •Математична модель задачі [1]
- •Опис методів розв’язання задачі Метод гілок та границь
- •Алгоритм гілок і границь [1]
- •Зображення даних в оперативній пам’яті [2]
- •Опис алгоритму програмного модуля [2]
- •Оцінка складності алгоритму
- •Метод решета [2]
- •Алгоритм решета [2]
- •Зображення даних в оперативній пам’яті [2]
- •Опис алгоритму програмного модуля [2]
- •Оцінка складності алгоритму
- •Опис програми Методи та засоби розробки програми
- •Сценарій роботи програми
- •Функціональна структура програми Специфікація модулів
- •Специфікація функцій
- •Технологія створення програми
- •Опис алгоритму методу[2]
- •Алгоритм програми
- •Вхідні та вихідні тести
- •Опис алгоритму методу
- •Алгоритм програми
- •Опис алгоритму методу
- •Алгоритм програми
- •Висновок.
- •Список використаної літератури.
- •Додаток 1 cd та опис його змісту
Функціональна структура програми Специфікація модулів
Кожна реалізована програма має вигляд окремого самостійного модуля, окремого проекту, в я кому написана реалізація поставленої задачі.
HTML-сторінки складають головний модуль, з якого доступний вибір кожної реалізованої прикладної задачі.
Список реалізованих задач та назва модулів:
Задача “Бики та корови “– “BullsCows”
Решето Ератосфена – “ Sieve eratosthenes ”
Пошук простих чисел – “Prime”
Задача комівояжера – “Salesman”
Специфікація функцій
Задача “Бики та корови “– “BullsCows”
Ім’я функції |
Призначення функції |
Імена параметрів |
Семантика параметрів |
Init |
Присвоїти початкові значення необхідним змінним. |
______________ |
_____________________ |
NeedAddCows |
Визачити чи потрібно збільшувати кількість “корів“ |
const int * array, const int element, const bool * skipPosition, int idx |
array – четвірка цифр що перевіряється, element – одна з цифр виведеної компьютером четвірки, idx – позиція, на якій міститься element у виведеній компьютером четвірці. |
Check |
Визначити наступну комбінацію |
const int * a, const int * b, const int bulls, const int cows |
a- масив комбінацій, b- уже виведені комбінації, bulls, cows- к-сть биків та корів відповідно. |
PrintTurn |
Вивести комбінацію |
const int * a, const int number |
a- масив цифр, що виводяться number- номер спроби . |
CheckTurn |
Зчитати значень биків та корів, які ввів користувач і виконати відповідні дії |
const int * turn |
turn - масив цифр, що були виведені.
|
GetNextTurn |
Знайти відповідь чи доступна наступна комбінація |
int * a |
a- масив цифр, що складають наступний хід. |
bullscows |
Задати цифри першого ходу, вивести к-ть спроб відгадати комбінацію або помилку про неправильне введення |
______________ |
______________ |
Решето Ератосфена – “ Sieve eratosthenes”
Ім’я функції |
Призначення функції |
Імена параметрів |
Семантика параметрів |
Resheto |
Знайти всі прості числа менші числа, яке ввів користувач |
bool *bArray,int upper |
bArray- масив міток, чи поточне просте число upper-верхня границя проміжку. |
sieve |
Зчитати межу інтервалу, задану користувачем, вивести прості числа у цьому проміжку. |
______________ |
_____________________ |
Пошук простих чисел – “Prime”
Ім’я функції |
Призначення функції |
Імена параметрів |
Семантика параметрів |
Resheto |
”Відсіяти” із заданого проміжку не прості числа |
bool *bArray,int upper |
bArray- масив міток, чи просте число upper-верхня границя проміжку. |
prime |
Зчитати нижню та верхню межі, задані користувачем, вивести прості числа у цьому проміжку. |
______________ |
_____________________ |
Задача комівояжера – “Salesman”
Ім’я функції |
Призначення функції |
Імена параметрів |
Семантика параметрів |
PATH LittlsAlgoProcess |
Реалізація алгоритму Літтла. |
NODE root |
root- змінна структ. типу, що складається з нижньої границі, матриці, яка залишилась, шляху,покажчика на лівий та правий вузли бінарного дерева. |
PATH MendPath |
додати до шляху два останніх ребра що залишаються на останньому кроці алгоритму |
PATH path, MATRIX c |
path- змінна структ. типу, що скл.з масиву структур ребер та їх кількості; с- змінна струк-го типу, що складається з матриці та кількості міст |
Simplify |
спростити матрицю |
MATRIX* c |
с – покажчик на змінну структурного типу |
SelectBestEdge |
знайти найкраще ребро, нульовий елемент матриці з найбільшою оцінкою |
MATRIX c |
с- змінна струк-го типу, що складається з матриці та кількості міст; |
ZeroCost |
розрахувати вагу елемента 0 |
MATRIX c, EDGE edge |
с –змінна струк-го типу, що складається з матриці та кількості міст; edge -структура, що складається з номеру вершини початку та кінця |
RightNode |
побудовати множину що не включає ребро edge |
MATRIX c, EDGE edge |
с- змінна струк-го типу, що складається з матриці та кількості міст; edge - змінна структ. типу, що складається з номеру вершини початку та кінця поточного ребра. |
LeftNode |
побудовати множину що включає ребро edge |
MATRIX c, EDGE edge, PATH path |
с- змінна струк-го типу, що складається з матриці та кількості міст; edge - змінна структ. типу, що складається з номеру вершини початку та кінця поточного ребра path- змінна структ. типу, що скл.з масиву структур ребер та їх к-сті |
LoopEdge |
знайти елемент, який буде передчасно завершувати цикл |
PATH path, EDGE edge |
path- змінна структ. типу, що скл.з масиву структур ребер та їх к-сті edge - змінна структ. типу, що складається з номеру вершини початку та кінця поточного ребра. |
MatrixSize |
розраховати розмір матриці, виключаючи ті стовпці і рядки, які було відкинуто |
MATRIX c, PATH path |
с- змінна струк-го типу, що складається з матриці та кількості міст; path- змінна структ. типу, що скл.з масиву структур ребер та їх к-ті |
ShowPath |
відобразити маршрут, сортуючи його у зручному порядку |
PATH path, MATRIX c |
path- змінна структ. типу, що скл.з масиву структур ребер та їх к-ті с- змінна струк-го типу, що складається з матриці та кількості міст;
|
ShowMatrix |
вивести матрицю |
MATRIX c |
с- змінна струк-го типу, що складається з матриці ваг ребер та кількості міст; |
saleman |
Присвоїти початкові значення необхідним змінним. |
______________ |
_____________________ |
Схема взаємодій функцій програми
На рисунку 2 зображена схема взаємодії функцій програми «Бики та корови».
Рис 2. HIPO-діаграма програми «Бики та корови»
На рисунку 3 зображена схема взаємодії функцій програми «Решето Ератосфена».
Рис 3. HIPO-діаграма програми «Решето Ератосфена»
На рисунку 4 зображена схема взаємодії функцій програми «Пошук простих чисел».
Рис 4. HIPO-діаграма програми «Пошук простих чисел»
На рисунку 5 зображена схема взаємодії функцій програми «Задача комівояжера».
Рис 5. HIPO-діаграма програми «Задача комівояжера»