
- •Модуль 2 Алгоритми
- •2.1 Поняття алгоритму
- •2.2 Види алгоритмів
- •2.2.1 Лінійні алгоритми
- •2.2.2 Алгоритми з розгалуженням
- •3 Якщо діаметр більший за заданий, то помістити виріб в магазин № 1.
- •2.2.3 Циклічні алгоритми
- •1 Поки на конвеєрі є виріб, виконувати дії:
- •7 Кінець циклу.
- •1 Початок циклу.
- •6 Поки у вагоні є вільне місце, повторювати дії циклу.
- •1 Початок циклу.
- •7 Поки у вагоні є вільне місце, повторювати дії циклу.
- •8 Кінець циклу.
- •1 Початок циклу.
- •1 Поки вміст лічильника менше 10, виконувати дії:
- •2.2.4 Допоміжні алгоритми
- •2.3 Способи запису алгоритмів
- •2.3.1 Словниковий запис
- •2.3.2 Графічне представлення
- •2.3.3 Алгоритмічна мова
2.3 Способи запису алгоритмів
2.3.1 Словниковий запис
Існує декілька способів запису алгоритмів. Спосіб, який ми використовували досі, — словесний запис.
Словниковий запис алгоритму — це запис послідовності дій на одній з мов людського спілкування.
Цей спосіб зручний тим, що послідовність дій чітко викладена на зрозумілій нам мові. Він особливо підходить для лінійних алгоритмів, і ми постійно користуємося ним в повсякденному житті, розповідаючи кому-небудь, як зробити або відремонтувати щось, як пройти або проїхати кудись і так далі
2.3.2 Графічне представлення
Якщо по ходу алгоритму доводиться залежно від виконання якоїсь умови вибирати ті або інші варіанти дій, то словесний запис стає громіздким і в ній легко заплутатися. Згадайте, як ми шукали чергову дію після того, як ви узяли хліб з хлібника, а алгоритм все одно посы-пал вас за хлібом в магазин. В цьому випадку наочнішим і переважнішим стає графічне представлення алгоритму.
Графічне представлення (блок-схема) алгоритму — це набір спеціальних графічних символів, розташованих в порядку виконання дій алгоритму.
Для цього способу запису алгоритмів використовуються стандартні графічні позначення (символи).
Початок алгоритму позначається знаком
Лінія, що йде вниз, означає перехід до першої дії алгоритма. Таким же знаком позначається і кінець алгоритму, до якого лінія від останнього символу підходить згори:
Будь-яка дія алгоритму зображається прямокутником, в який зазвичай вписують назву дії :
Якщо алгоритм містить декілька дій, що виконуються послідовно одно за іншим, то усі вони можуть бути вписані в один прямокутник.
Перевірка виконання умови і вибір гілки алгоритму, відповідній виконанню або невиконанню умови, представлені ромбом, в який умова вписується у вигляді питання. При виконанні умови перехід до потрібної гілки відбувається в напрями відповіді «Так», а якщо умова не виконана — відповідь «Ні»:
Часто для виконання алгоритму потрібне введення інформації у вигляді чисел або в іншій формі. Результатом виконання алгоритма (чи його частини) може бути виведення інформації в тому або іншому вигляді. Операція введення даних або виведення результатів обозначається таким чином:
Символ виклику допоміжного алгоритму має вигляд
Є і інші символи для позначення різних операцій в алгоритмі.
Графічні символи з'єднуються між собою прямими лініями відповідно до послідовності дій, що ведуть до досягнення мети. Стандартний напрям переходу від символа до символу — зверху вниз і зліва направо. Якщо з якихось причин розташувати символи в такому порядку не вдається і перехід до чергового символу повинен статися в іншому направ-лении, то цей напрям вказують стрілкою.
Складемо блок-схеми деяких з розглянутих раніше алгоритмів. Блок-схеми сортування виробів — приведені на рисунку 2. Вони наочно показують перевагу графічного представлення алгоритмів — легко простежується послідовність дій як при виконанні, так і при невиконанні умови, що перевіряється.
Рисунок 2 - Блок-схема алгоритму сортування виробі
На рисунку 3 представлена блок-схема циклічного алгоритму, що є розвитком алгоритму сортування виробів. Передостанній алгоритм є циклом, який повторюється при позитивному результаті перевірки умови наявності виробів на конвеєрі.
Рисунок 3 - Блок-схема циклічного алгоритму сортування виробів
На блок-схемі добре видно межі циклу — він охоплений лінією, яка піднімається вгору, протилежно стандартному напряму переходу від символу до символу, і закінчується стрілкою. Після виконання циклу відбувається повернення по цій лінії до першої дії циклу, в даному випадку до перевірки наявності виробів на конвеєрі.
Лінія повернення фактично замінює рядок «Кінець циклу», «яке обмежує цикл знизу при словниковому описі алгоритму» і вона ж вказує на умову «Чи є вироби на конвеєрі?», котра є верхньою межею циклу. Якщо умова не виконується, тобто виробів на конвеєрі немає, то цикл не повторюється і виконання алгоритму закінчується.
У цьому алгоритмі перевірка умови виконується до початку циклу і можлива ситуація, коли цикл не виконується жодного разу: якщо виробів на конвеєрі немає, то перевірка умови відразу выво-дит на закінчення циклу.
Розглянемо блок-схему циклічного алгоритму завантаження контейнерів, де перевірка умови повторення циклу робиться після його виконання (рисунок.4). Услід за символом Початок слідують дії алгоритму, тому цикл виконується завжди, як мінімум, один раз. Якщо завантаження контейнера призвело до відсутності вільного місця у вагоні, то перевірка умови відразу виводить на символ Кінець. Лінія повернення охоплює цикл, вказуючи його нижню і верхню межі.
Рисунок 4 - Блок-схема алгоритму завантаження контейнерів
Блок-схема розширеного варіанту цього алгоритму, який містить умови, що перевіряються як до, так і після виконання команд циклу (см підрозд. 2.2.3), показана на рисунку 5. Простежити по цьому малюнку хід виконання алгоритму при різних комбінаціях умов наявності вільного місця у вагоні і наявності контейнерів для вантаження.
Рисунок 5 - Блок-схема алгоритму завантаження контейнерів з двома умовами
Розглянемо блок-схеми допоміжних алгоритмів. У алгоритмі, використовуваного в якості допоміжного, є одна особливість: в ньому виконуються дії з інформацією, переданою йому з основного алгоритму, і туди ж при необхідності повідомляється результат виконання допоміжного алгоритму. Тому блок-схема допоміжного алгоритму містить символ введення даних, а при необхідності — і символ виведення результатів, що підкреслює взаємодію допоміжного алгоритму з основним.
На рисунку 6 приведена блок-схема алгоритму «Нагріву до t». Символ введення даних вказує на отримання з основного алгоритму значення температури нагріву t. Після виконання алгоритму нагріву триває виконання основного алгоритму з дій, виклику допоміжного алгоритму, що йде за командою. Сама команда виклику позначається у блок-схемі основного алгоритму приведеним вище спеціальним символом, в котрому вписується назва алгоритму, що викликається.
Рисунок 6 - Блок-схема алгоритму «Нагріву до t»