
- •Інформатика
- •Необчислювальні алгоритмы
- •Від автора
- •Створення алгоритму
- •Налагодження алгоритму
- •Допоміжні задачі
- •Поняття систем числення
- •Числова інформація Цілі числа
- •Дійсні числа
- •Текстова інформація Символи
- •Дерево. Бінарне дерево
- •If to nil then with t* do begin
- •Бінарний пошук Пошук діленням навпіл
- •Рекурсивний бінарний пошук
- •Пошук у рядку
- •Скінченні автомати Основні поняття
- •Пошук у мережі
- •Прямі методи сортування Сортування вибором
- •Сортування обміном
- •Шейкерне сортування
- •Сортування методом Шелла
- •Швидке сортування
- •Метод прямого злиття
- •Метод природного злиття
- •Сортування підрахунком
- •Цифрове сортування
- •Література
- •61012, М. Харків, вул. Енгельса, 11.
Налагодження алгоритму
Планування, покрокова деталізація та представления алгоритму
Налагодження алгоритму - це процес, який складається з декількох кроків. Коли обрано математичну модель, що відпо-відає умові задачі, визначено методи, які треба застосувати для її реалізації, починається розробка самого алгоритму. Оскіль-ки не завжди доводиться розв'язувати такі прості задачі, як упорядкування заданої послідовності чисел за зростанням, тому й не відразу вдається розробити алгоритм у його кінцевій, остаточній формі.
Як і будь-яка інша робота, розробка алгоритму повинна по-чинатися з планування роботи над ним. Розібравшись з умовою задачі, визначаємося не тільки з методами ЇЇ розв'язування, а й з представлениям вхідних та вихідних даних, тобто з їх структурами. Від вибору таких структур певним чином залежить і побудова алгоритму.
Протягом роботи над алгоритмом задачі виникає необхід-ність уточнения деяких його фрагментів. Такий процес нази-вається покроковою деталізацією алгоритму. На кожному етапі складання алгоритму формуються окремі його частини, що є актуальними на даний момент, а решта замінюються, наприклад, текстовим варіантом опису. На наступних етапах така сама методика застосовується до наступної групи фраг-ментів алгоритму.
Для прикладу розглянемо алгоритм Евкліда, який дає змогу визначити найбільший спільний дільник двох натуральних чисел. На першому кроці покрокової деталізації сформуємо дію повторения, яка дасть змогу визначити результат алгоритму:
while n <> m do
<замінюємо більше число на різницю більшого і меншого чисел>;
На наступному кроці оформимо в термінах Pascal-програми вибір числа, яке треба замінити відповідною різницею:
while nOmdo if n >m
then Оамінюємо число n> else Оамінюємо число m>;
Тепер залишилося зробити останній крок у деталізації алгоритму - записати дії заміни відповідних значень mam:
while n <> m do
if n > m
20
then n := n - m else m :=m-n;
Зрозуміло, наведений приклад є одним з найпростіших, на яких продемонстровано принцип покрокової деталізації.
Як відомо, алгоритм можна представити різними способами: словесно, у вигляді схеми, псевдокоду або програми. Тому й розробка алгоритму задачі певним чином залежить від цього фактору.
Якщо розробка алгоритму ведеться словесно, а це найчасті-ше буває на першому етапі роботи над ним, то й деталізація є ще досить умовною. Описані фрагмента алгоритму мають гло-бальний характер, вони не враховують деталей умови задачі.
Якщо алгоритм подається у вигляді схеми, є можливість вставления уточнених фрагментів алгоритму або, навпаки, ви-несення їх в окремі блоки. Цей процес уже і є початком деталі-зації алгоритму.
Проміжним етапом між схемою і програмою може бути використання мови псевдокодів, де процес деталізації алгоритму та його уточнения є дуже ефективним.
Після остаточного доведения алгоритму до кінцевого варіан-та можна перевести його на мову програмування, оскільки є повне уявлення про кількість та структуру даних, алгоритміч-них методів, необхідних для реалізації поставлено! задачі, ти-пів даних тощо.