Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
168 Кб
Скачать

3 Якщо діаметр більший за заданий, то помістити виріб в магазин № 1.

4 Інакше помістити виріб в магазин № 2.

5 Кінець галуження.

Виконавцем цього алгоритму може бути як людина, так і машина (наприклад, робот). Якщо виконання подібного алгоритму передбачається доручити машині, то треба бути упевненим, що вона не лише зрозуміє кожну команду, але і зуміє зробити вибір, тобто машина повинна мати технічні засоби, здатні визначити, чи виконана умова Якщо. У нашому випадку машина повинна не лише виміряти діаметр виробу, але і порівняти його із заданим діаметром і за результатами порівняння прийняти рішення про приміщення виробу в потрібний магазин.

У автоматичних системах, працюючих без участі людини, при виникненні різних ситуацій машині доводиться самій приймати рішення про вибір варіанту дій, тому в таких системах часто використовуються алгоритми з розгалуженням. Будь-яку ситуацію, в якій треба вибирати один з двох або декількох варіантів дій, завжди можна звести до одного або декількох розгалужень алгоритму.

2.2.3 Циклічні алгоритми

Часто ми спостерігаємо або беремо участь в процесах, в яких багато разів підряд виконуються одні і ті ж дії.

Повернемося до розгляду алгоритму сортування виробів. У цьому алгоритмі описані одноразові дії, які виконуються над одним виробом. Він відправлявся в магазин № 1 або № 2, і на цьому алгоритм закінчувався. Але реальні вироби поступають на сортування, швидше за все, у великій кількості. Значить, описані в алгоритмі дії повинні повторюватися знову і знову. Як довго? Очевидно, поки вироби є на конвеєрі.

Як змінити алгоритм, щоб процес сортування повторювався багаторазово? Які саме дії повторювати і до яких пір? Існує два варіанти:

- задати умову, при виконанні якої дії треба повторювати, а як тільки умова буде порушена - припинити повторення і перейти до продовження алгоритму (наприклад, фарбувати дошки огорожі, поки він не закінчиться, а потім приступити до обіду);

- задати необхідну кількість повторень одних і тих же дій (наприклад, налити у бочку 10 відер води).

Перший варіант більше універсальний — він підходить для забору з будь-якою кількістю дощок, у тому числі і заздалегідь невідомим. Але виконавець цього варіанту алгоритму повинен уміти проміряти виконання заданої умови (чи закінчилася огорожа?), що не важко для людини, але може виявитися важким для машини.

А ось другий варіант для машини не проблема — механічні, електричні, електронні і інші лічильники існують давно і в самих різних видах. Але цей варіант позбавлений гнучкості, і при зміні умов виконання алгоритму (наприклад, при заміні бочки на меншу) треба змінювати команди в самому алгоритмі (встановлювати іншу кількість наливаних відер).

Група дій, що повторюється в алгоритмі, утворює цикл.

Алгоритми, в яких повторюються одні і ті ж дії, називаються циклічними алгоритмами.

Коли цикл виконаний потрібна кількість разів, виконавець алгоритму переходить до подальших дій, що знаходяться вже за межами циклу.

Оскільки в алгоритмі сортування виробів кількість виробів заздалегідь невідома, скористаємося першим варіантом — спробуємо знайти умову, виконання якої потрібне для повторення процесу сортування. Такою умовою є нали-чие чергового виробу на конвеєрі. Якщо сортування виконує людина, то він легко виявить цей виріб. Якщо ж виконавець алгоритму сортування — машина, то вона повинна уміти перевіряти наявність виробу на конвеєрі. Як машина зможе це зробити, розглянемо далі. А зараз доповнимо алгоритм сортування умовою повторення циклу :

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]