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