Алгоритми з циклами
Циклічним називаються процеси, в яких дії повторюються в одній і тій самій послідовності.
Циклічні процеси ми можемо спостерігати в природі.
Планета Земля кожного року проходить один і той самий шлях навколо Сонця. Кожного року відбувається зміна лір року: зима, весна, літо, осінь, а потім знову зима. Кожну добу день змінюється ніччю, а ніч - днем.
Циклічно змінюються фази Місяця: спочатку Місяць молодий, потім він росте, потім досягає повного Місяця, потім починає зменшуватися, і потім все починається спочатку.
Циклічні процеси відбуваються і в вашому житті. Кожного робочого дня ви встаєте, прибираєте постіль, робите фіззарядку, вмиваєтеся, снідаєте, складаєте портфель і йдете до школи. Кожного тижня уроки в школі відбуваються за одним і тим же самим порядком, який визначається розкладом, хоча, звичайно ж, можуть бути й непередбачені ситуації.
Циклічні процеси відбуваються і в житті дорослих людей. На виробництві багато приладів виготовляються на конвеєрі, за яким кожний робітник виконує одні й ті самі дії, наприклад, закріплює ручки керування на корпусі приладу.
Водій веде автобус та маршруту, кожного разу проїжджаючи одні й ті самі зупинки в однаковому порядку. Світлофор на перехресті налаштований так, що він через однакові проміжки часу запалює зелене світло, потім жовте, потім червоне, потім знову жовте, потім знову зелене і так далі.
Ви вже знаєте, що циклічні процеси можуть мати місце також і в алгоритмах.
Нагадаємо, що одна або кілька команд алгоритму, які можуть виконуватися більше одного разу, називається циклом.Алгоритми, які містять цикли, називаються алгоритмами з циклами.
Розглянемо таку задачу.
Біт крану з водою є порожні діжка і банка. За допомогою цієї банки поповнити діжку водою.
Алгоритм розв'язування цієї задачі буде таким:
1. Наповнити банку водою
2. Вилити воду з банки в діжку
3. Якщо діжка повна, то закінчити, якщо ні перейти до п. 1
Блок-схема цього алгоритму виглядатиме так.

Алгоритм розв'язування цієї задачі можна скласти і дещо інакше.

Відмінність цих алгоритмів полягає в тому, що в першому алгоритмі умова перевіряється в кінці виконання циклу, а в другому - на початку виконання циклу. В першому алгоритмі команди циклу виконуватимуться хоча б один раз, а в другому команди Наповнити банку і Вилити воду з банки в діжку можуть не виконуватися жодного разу (це буде в тому випадку, коли перед початком виконання алгоритму діжка вже повна).
Практична робота
♦ Складіть алгоритм перекладання книжок з письмового стола на книжкову полицю.
♦ Восьминіжка повинна зафарбувати клітинки, під якими є перешкоди. Складіть алгоритм, знаючи, що в клітинках стоять 6 перешкод підряд.
♦ Восьминіжка повніша зафарбувати клітинки, під якими є перешкоди. Складіть алгоритм, якщо не відомо, скільки підряд перешкод знаходяться в клітинках. Виконайте складений алгоритм, змінюючи кількість перешкод. Перевірте, чи правильно працює ваш алгоритм у випадку, коли перешкоди відсутні.
♦ Восьминіжка повинна зафарбувати клітинки, під якими є перешкоди. Складіть алгоритм, якщо не відомо, скільки перешкод знаходяться в клітинках і чи розташовані вони підряд. Виконайте складений алгоритм, змінюючи кількість перешкод. Перевірте, чи правильно працює ваш алгоритм у випадку, коли перешкоди відсутні.
Питання та завдання
1. Які процеси називаються циклічними?
2. Наведіть приклади циклічних процесів у природі.
3. Наведіть приклади циклічних процесів з навколишнього світу.
4. Що називається циклом в алгоритмі?
5. Які алгоритми називаються алгоритмами з циклом?
6. Складіть блок-схему алгоритму збирання лісових ягід до кошика.
7. До ліфта стоїть черга людей. Відома вага кожної людини і гранична вага, яку може піднімати ліфт.
Складіть алгоритм заповнення ліфта пасажирами і підйому на п'ятий поверх.
|