ЦИКЛИ З УМОВАМИ
Розділ 3 Алгоритми з повторенням та розгалуженням
& 8. Алгоритми з повторенням
8.2. ЦИКЛИ З УМОВАМИ
Програмісти часто стикаються із ситуаціями, коли кількість повторювань наперед невідома, а команди в програмі мають повторюватися за виконання певних умов. Саме для таких випадків слугують цикли з умовами.
Цикл, тіло якого виконується доти, доки виконується умова, вказана перед його початком, називають циклом з передумовою. Якщо задана умовою подія не настає ніколи, тіло циклу не виконуються жодного разу.
Рис. 3.19. Блок-схема оператора циклу з передумовою і відповідний Scratch-oпepaтop
Цикл з післяумовою – це цикл, у якому умова перевіряється після виконання його тіла Із рис. 3.20, на якому зображена блок-схема такого циклу, видно, що тіло циклу з післяумовою за будь-яких обставин має бути виконане принаймні один раз.
Рис. 3.20. Блок-схема оператора циклу з післяумовою і відповідний Seratcb-oпepaтop
Отже, ми з вами розглянули використання різних видів команд повторення та їх реалізацію в середовищі Scratch (див. табл. 3.2).
Таблиця 3.2. Види команд повторення
ВПРАВА
Завдання. Скласти два сценарії, за якими клоун жонглюватиме кульками:
А) допоки ви не натисните клавішу Пробіл:
Б) щоразу, коли ви натискатимете клавішу Пробіл.
1. Додайте до проекту відповідний до сюжету фон.
2. Завантажте з папки Files-Вправа_14 на диску спрайт klown_1 і додайте до проекту ще три його образи – klown_2, klown_3, klown_4.
3. Складіть сценарій, щоб образи змінювалися кожні 0,3 с, та скопіюйте його. Тепер ви маєте два скрипти.
4. Для першого скрипта використайте команду повторювати поки, а для другого – команду завжди якщо з категорії Керувати, та додайте до обох скриптів умову клавішу пропуск натиснуто, з категорії Датчики, як це показано на рис. 3.21, рис. 3.22.
Рис. 3.22
5. Збережіть проект під назвою Впр14_Прізвище.
ВПРАВА 15
Завдання. Скласти скрипт, за яким на сцені проекту створювалась би рамка з метеликів.
1. Відкрийте вікно нового проекту та додайте до нього спрайт будь-якого метелика. На сцені проекту намалюйте червону рамку, дещо меншу, ніж сцена.
2. Складіть для спрайта метелика скрипти зображені на рис. 3.23.
Рис. 3.23
Підказка. Блок доторкається кольору? має вказувати на колір рамки. Щоб це сталося, клацніть спочатку на квадратик у блоці, а коли вказівник мишки перетвориться на піпетку – на рамку на сцені проекту.
3. Клацніть кнопку із зеленим прапорцем і почекайте, коли буде створено рамку з метеликів.
4. Збережіть проект під назвою Впр15_Прізвище.
ВПРАВА 16
САМОСТІЙНО
Завдання. Створити проект зображення восьмикутника (рис. 3.24). використовуючи пояснення до побудови зірки з вісьмома променями. Зберегти проект під назвою Впр16_Прізвище.
Рис. 3.24
Скласти алгоритми з повтореннями ви зможете, виконавши вправи на диску.
Висновки
У програмуванні багаторазове повторення певної послідовності дій називають циклом. Послідовність команд, які повторюються під час виконання оператора циклу, наливають тілам циклу.
Часто в програмах використовують безумовні цикли, вихід а яких не передбачено логікою програми. Такі цикли ще наливають нескінченними.
Цикли, які використовують у випадках, коли кількість виконуваних повторювань відома заздалегідь, наливають циклами з лічильником.
Цикл, тіло якого виконуються доти, доки істинною залишається вказана перед його початком умова, наливають циклом з передумовою.
Цикл з післяумовою – це цикл, у якому умова перевіряється після виконання його тіла.
Контрольні запитання та завдання
1. Що таке цикл у програмуванні?
2. Що таке тіло циклу?
3. Опишіть та порівняйте принципи виконання безумовного циклу та циклів з умовами.
4. У чому полягає принцип виконання дій у циклі з лічильником?
5. Які команди використовують у Scratch для виконання різних видів циклів?
6. Як ви думаєте, чому всі сучасні мови програмування використовують команди реалізації циклів?
ПРАКТИЧНА РОБОТА №4
Складання та виконання алгоритмів з повторенням, у визначеному навчальному середовищі виконання алгоритмів
Хід роботи
Завдання 1. Створити проект, що відтворює дію лічильника поверхів у ліфті, що рухається на дев’ятий поверх.
1. Створіть зображення спрайтів відкритого та зачиненого ліфтів за зразком у вбудованому до Scratch графічному редакторі. Надайте імена спрайтам Lift_1 для відчиненого та Lift_2 для зачиненого ліфта (рис. 3.25).
Рис. 3.25
2. Додайте до проекту спрайт Lift, а спрайт Lift_2 зробіть образом для спрайта Lift_1. Для цього виділіть спрайт Lift_1, відкрийте вкладку Образи, натисніть кнопку Імпортувати, оберіть спрайт Lift_2.
3. Додайте до проекту спрайт із зображенням цифри 1 та розмістіть її зображення над дверима ліфта.
А) Натисніть кнопку Вибрати новий об’єкт з файла.
Б) Оберіть спрайт розташований у папці Letters/digital.
В) Зменшіть розмір спрайта відповідно до місця його розташування.
4. Додайте до цього спрайта образи із цієї ж папки, що мають зображення цифр 2, 3, 4, 5, 6, 7, 8, 9. (Додавання іншого образу описано в п. 2 даного завдання.)
5. Задайте скрипт для зміни образів ліфта. Для цього виділіть спрайт із зображенням ліфта та введіть скрипт представлений на рис. 3.26.
Тут команда змінити образ на образі призначена для того, щоб на початку виконання проекту було завантажено образ відкритого ліфта. Команда чекати 1 секунд здійснює затримку до закриття дверей ліфта. Наступний образ – команда, що змінює образ відкритого ліфта на закритий.
6. Задайте скрипт для початкового відображення цифри 1 і затримки відкритих дверей на 1 секунду. Для цього виділіть спрайт із зображенням цифри та введіть скрипт представлений на рис. 3.27.
Напис “11” – це назва образу скрипта із зображенням цифри “1”.
7. Додайте до попереднього скрипта команди, що будуть змінювати значення цифр через 1 секунду, доки ліфт не доїде до дев’ятого поверху (рис. 3.28).
Значення 8 означає, скільки змін образу спрайта буде відбуватись. Оскільки при зміні значень від 1 до 9 відбувається 8 змін.
8. До скрипта дії дверей додайте команди, що відображатимуть відкриття дверей ліфта після підйому його на дев’ятий поверх. Для цього виділіть спрайт із зображенням ліфта та додайте до створеного раніше скрипта ще дві команди (рис. 3.29).
У команді чекати 10 секунд це той час, коли піднімається ліфт після закриття дверей. А команда наступний образ змінить образ закритих дверей на відкриті.
9. Запустіть проект на виконання.
10. Збережіть проект під назвою Пр4_підйом.
Рис. 3.26
Рис. 3.27
Рис. 3.28
Рис. 3.29
11. До проекту самостійно додайте команди, що відображають наступний спуск ліфта на третій поверх.
12. Збережіть проект під назвою Пр4_спуск.
Завдання 2. Створити проект із двома брейк-танцюристами (хлопцем і дівчиною), що виконують під музику кожен свій танець по черзі.
1. Завантажте сцену Spotlight-stage із папки Indoors, із папки People завантажте спрайт Breakdancer-1 та розмістіть його у відповідному місці сцени, змінивши розміри об’єкта.
Рис. 3.30
2. Імпортуйте до проекту три образи: Breakdancer-2. Breakdancer-3. Breakdancer-4.
3. Якщо ваш комп’ютер оснащений колонками чи навушниками, додайте до проекту звук, інакше перейдіть до наступного пункту завдання.
А) Клацніть на вкладці Звук кнопку Імпортувати та у вікні Імпортувати звук виберіть з папки Music Loops файл НірНор.
Б) Перетягніть на вкладку Скрипти із категорії Звук команду Грати звук, на полі якої написано НірНор біля стрілки ▼ .
В) Щоб припинити відтворення, перетягніть на вкладку Скрипти команду зупинити всі звуки, яку ви в подальшому розташуєте після команди припинення танцю.
4. Складіть на вкладці Скрипти такий сценарій, як на рис. 3.31г та запустіть проект на виконання.
5. Завантажте спрайт танцюристки cassy-dancing-1 і додайте до проекту всі його образи із папки People.
6. Дівчина має танцювати за тим самим сценарієм, що було складено для хлопця. Для цього перетягніть лівою клавішею миші весь сценарій на спрайт брейк-танцюристки.
Тепер хлопець і дівчина танцюватимуть на сцені одночасно. Ви ж маєте зробити так. аби еони з’являлися по черзі.
7. Додайте до обох сценаріїв команди показати та сховати із категорії Вигляд (команда показати відображає спрайт на сцені, а сховати – вилучає його після завершення танцю).
8. До сценарію хлопця додайте команду оповістити із категорії Керувати. В розкривному списку оберіть новий… та в діалоговому вікні, що з’явилося, введіть Танцюристка. Розташуйте команду останньою. Це дасть змогу перейти до спрайта дівчини. Тепер сценарій брейк-танцюриста матиме вигляд, як на рис. 3.32.
9. Переробіть сценарій для дівчини-танцюристки, як показано на рис. 3.33.
Виконання першого скрипта дозволяє сховати спрайт із зображенням дівчини. Отже, спочатку ми побачимо тільки танець хлопця. Сценарій дівчини починає виконуватися з команди коли одержую Танцюристка, тобто після виконання останньої команди оповістити Танцюристка сценарію хлопця. Зауважте також, що в цьому скрипті ви можете змінити звуковий супровід танцю дівчини на DrumMachine.
10. Збережіть проект під назвою Пр4_Прізвище.
Рис. 3.31
Рис. 3.32
Рис. 3.33