Розділ 3 Алгоритми з повторенням та розгалуженням
& 8. Алгоритми з повторенням
8.1. ПОНЯТТЯ ЦИКЛУ. ЦИКЛ З ЛІЧИЛЬНИКОМ
Іноді навіть дуже прості обчислення можуть завести людину в глухий кут, коли певні операції потрібно повторювати тисячі разів, а коли мільйони разів – то й тим паче.
Однією з властивостей комп’ютера є його здатність багато разів виконувати ті самі дії 3 повторюваними обчисленнями програмісти стикаються повсякчас. У програмуванні багаторазове повторення певної послідовності дій називають циклом. Послідовність
Часто в програмах, створених у середовищі Scratch, використовують безумовні цикли, вихід з яких не передбачено логікою програми. Такі цикли ще називають нескінченними. На відміну від інших мов програмування, уScratch для створення таких циклів є спеціальний оператор. На рис. 3.11 наведено блок-схему оператора безумовного циклу та відповідний Scratch-блок. Tiлo такого циклу виконується постійно до закінчення роботи проекту.
Цикл з лічильником дає змогу організувати в програмі повторення певної послідовності дій задану
Перший блок у блок-схемі цього оператора зображує лічильник, значення N (кількість повторювану у якому щоразу після виконання тіла циклу зменшується на 1, аж доки не набуде значення “0”. На рис. 3.12 зображено відповідний Scratch-oпepaтop.
Пригадати базові структури алгоритмів ви зможете на диску.
Рис. 3.11. Блох схема нескінченного циклу та відповідний Scratch-блок
Рис. 3.12. Блок-схема циклу з лічильником і відповідний Scratch-блок
Розглянемо використання цього виду циклу, виконавши побудову зірочки з восьми променів.
Щоб побудувати зображення зірки, введіть скрипт, зображений на рис. 3.13.
І хоча насправді для побудови зірочки необхідно побудувати 16 відрізків, у програмі використовуються побудова кожного променя з наступним повторенням.
Команда очистити очищує вікно проекту від попередніх зображень, команда опустити олівець дозволяє спрайту залишати за собою лінію при наступному переміщенні, а команда задати колір олівця відповідно задає його колір.
У табл. 3.1 пояснено покрокове виконання тіла циклу команди повторити.
Рис. 3.13
Таблиця 3.1. Команди Scratch для побудови зірки із восьми променів
Подальші кроки виконують аналогічно. Так само можна створити зірку з будь-якою кількістю променів, головне правильно визначити, на який кут треба повертати олівець, а кількість кроків, на яку слід його перемістити, визначається в залежності від бажаного розміру фігури. Аналогічно можна створити і зображення правильного многокутника.
Цикли також можуть бути вкладеними. В цьому випадку розрізняють зовнішній і внутрішній цикли.
ВПРАВА 12
Завдання. Виконати проект, у якому кіт буде ходити по екрану зліва направо.
1. Відкрийте програму Scratch.
2. Оберіть блок завжди з категорії Керувати та розмістіть у середині команди, як на рис. 3.14.
Клацнувши 2 рази на команді, ви переконаєтеся, що кіт буде пересуватися зліва направо.
Примітка. Щоб кіт не перевертався при зворотньому русі, треба змінити режим руху об’єкта за допомогою кнопки (приймати тільки зліва направо).
Рис. 3.14
3. Додайте до попереднього скрипта команди наступний образ із категорії Вигляд і чекати 1 секунд із категорії Керувати. Розташуйте дані команди, як на рис. 3.15. (Ці команди потрібні для того, щоб кіт не ковзав, а переставляв лапки, змінюючи через певний час свій образ).
Рис. 3.15
Щоб дізнатись, які образи містить спрайт, або додати нові образи до спрайта, слід перейти до вкладки Образи (розташована по центру вікна середовища). Тут. як бачите, два коти: перший має назву – образ1, а другий – о6раз2. І саме другий переставляє лапи на відміну від першого (рис. 3.16).
Рис. 3.16
4. Зменшіть час на відображення певного образу, змінивши в команді чекати 1 секунд значення 1 на 0,1 (рис. 3.17).
5. Додайте до одержаного скрипта команду коли натиснуто прапорець.
6. Збережіть проект під назвою Впр12_Прізвище.
Рис. 3.17
Рис. 3.18
ВПРАВА 13
Завдання. У вікні нового проекту скласти для Рудого кота скрипт (рис. 3.18), що містить вкладені цикли з лічильником.
1. Запустіть проект на виконання, щоб побачити, як він працює.
2. З’ясуйте, скільки разів у цьому скрипті виконується тіло внутрішнього циклу.
3. Змініть кілька разів значення лічильників зовнішнього та внутрішнього циклів і поспостерігайте за тим, як змінюватиметься поведінка спрайта кота.
4. Збережіть проект під назвою Впр13_Прізвище.