Розділ 3 Алгоритми з повторенням та розгалуженням
& 11. Складання та виконання алгоритмів з повторенням і розгалуженням
Щоб створені в середовищі Scratch проекти були більш потужними та реалістичними, використовують різноманітні комбінації вкладень команд повторення та розгалуження.
Розрізняють внутрішні та зовнішні команди. При створенні алгоритмів і Scratch-проектів використовують вкладки, коли зовнішнім блоком є команда повторення, а внутрішнім – розгалуження, і навпаки.
Нижче представлено деякі випадки використання
Рис. 3.50. Скрипт і блок-схема з внутрішньою командою розгалуження, а зовнішньою – повторення
Рис. 3.51. Скрипт і блок-схема з внутрішньою командою повторення, а зовнішньою – розгалуження
Рис. 3.52
В одному із попередніх параграфів було розглянуто використання безумовного або нескінченного циклу, який в середовищі Scratch реалізовано за допомогою команди завжди. Ми вже виконували декілька вправ із цим оператором, у яких зупинити його виконання можна було лише
Як бачимо, в наведеному прикладі поєднано команди повторення та розгалуження.
Досить часто для створення проектів у Scratch використовують сукупність команд безумовного циклу та скороченої форми розгалуження у вигляді блоків завжди і якщо (рис. 3.53).
Рис. 3.53. Блок-схема і логічний блок завжди і якщо
Ви можете слушно зауважити, що немає сенсу використовувати вкладену конструкцію, адже в Scratch передбачено оператор завжди якщо, що відповідає команді повторення з передумовою (рис. 3.54).
Рис. 3.54. Блок-схема і логічний блок завжди якщо
Справді, вОНИ виконують однакові функції. До тот ж оператор завжди якщо мак перевагу в швидкості виконання. Проте є в цього оператора і недолік – він містить у собі лише одне якщо, натомість в альтернативну конструкцію їх можна вставити скільки завгодно, а також використати оператор розгалуження із повною формою якщо – інакше.
Перевірити свої знання, пройти тест і розгадати кросворд ви зможете на диску.
ВПРАВА 23
Завдання. Створити проект відображення руху літака та машин уздовж дороги.
1. Виконайте оформлення сцени та спрайтів за зразком на рис. 3.55.
Рис. 3.55
2. Задайте скрипт (рис. 3.56) для руху літака.
3. Задайте команди для переміщення машин.
А) Скопіюйте скрипт, створений для літака, для спрайтів машин.
Б) Додайте до скриптів, призначених для переміщення машини, затримку руху, використовуючи блок чекати 1 секунд. Змініть значення очікування на 0.1.
4. Додайте до скрипта літака команду завершення його руху за умови натиснення на клавішу Пробіл.
5. Самостійно змініть скрипти для спрайтів із зображенням машин, щоб їх рух припинявся, коли натискаєте на клавішу ▼ (стрілка вниз).
6. Збережіть проект під назвою Впр23_Прізвище.
Рис. 3.56
ВПРАВА 24
Завдання. Ознайомтеся із скриптами, що відповідають за рух машини.
1. Відкрийте скрипт Rotating Саr із папки Transportation. (Вбудовані до наявних спрайтів скрипти відкриваються так само, як і спрайти).
2. Запустіть на виконання відкритий скрипт та проаналізуйте команди, що відповідають за рухи машини.
ВПРАВА 25
Завдання. Ознайомтеся із скриптами, що відповідають за дії олівця.
1. Відкрийте скрипт Drawing Pancil з папки Things.
2. Запустіть на виконання відкритий скрипт та проаналізуйте команди, що відповідають за дії олівця.
3. Самостійно додайте команду для зміни кольору олівця.
ВПРАВА 26
Завдання. Створити проект, у якому застосувати комбінацію команди повторення завжди та блока умовного оператора з однією гілкою.
1. Запустіть на виконання програму Scratch, додайте до проекту спрайт акули та ще один її образ з бібліотеки програми (файл Fish1-a і Fish1-b з папки Animals).
2. Намалюйте у вбудованому в Scratch графічному редакторі фон для сцени: внизу – вузький піщаний берег, а вгорі – лазурове море.
3. Складіть для спрайта акули скрипт, зображений на рис. 3.57.
Рис. 3.57
4. Виділіть спрайт кота та складіть для нього скрипт, як на рис. 3.58.
5. Запустіть проект на виконання та поспостерігайте за тим, що відбуватиметься з його героями після виконання заданої у С-блоці якщо умови.
6. Збережіть проект під назвою Впр26_Прізвище.
Рис. 3.58
ВПРАВА 27
Завдання. Створити проект, у якому при введенні кількості кутів геометричної фігури – “З” або “4” – буде побудовано відповідну фігуру – трикутник або квадрат. У випадку іншої відповіді повинно з’явитися повідомлення про помилку.
Проект виконати за поданою блок-схемою на рис. 3.59.
Рис 3.59
1. Створіть скрипт (рис. 3.60), завдяки якому буде реалізовано вибір геометричної фігури в залежності від введеного числового значення.
Рис. 3.60
2. Додайте зверху команди, що мають керувати роботою олівця та початкового положення спрайта (рис. 3.61).
Рис. 3.61
3. Самостійно створіть блоки команди повторення для створення зображення трикутника та квадрата. Розташуйте їх у потрібних місцях уже створеного скрипта.
4. Додайте блок, що містить повідомлення про помилку в разі помилкового введення числа.
5. Збережіть проект під назвою Впр27_Прізвище.
ВПРАВА 28
Завдання. Створити проект, у якому спрайт при натисненні клавіш 1,2, 3,… буде змінювати певний графічний ефект, а при натисненні клавіші Пропуск має відбуватися очищення графічних ефектів.
1. Завантажте до вікна проекту довільний спрайт або залиште зображення Рудого кота.
2. Задайте скрипт для зміни графічного ефекту спрайта при натисненні клавіші 1:
А) оберіть команду якщо та задайте умову клавішу 1 натиснуто? (команда клавішу 1 натиснута, розташована в розділі Датчики. Вибираючи значення 1 у списку даної команди, слід скористатися спочатку значенням більше…);
Б) всередині команди якщо розташуйте команду змінити ефект колір на 25 (рис. 3.62).
Рис. 3.62
3. Додайте скрипт, що відповідає за відміну застосованих ефектів (рис. 3.63).
Рис. 3.63
4. Розташуйте створені вище скрипти всередині команди завжди та додайте зверху команду коли натиснуто прапорець (рис. 3.64).
5. Самостійно додайте до проекту скрипти для зміни графічних ефектів в залежності від натиснення клавіш 2, 3…. (При натисненні клавіші 2 – ефект вздуття, 3 – обертання і т. д.)
6. Збережіть проект під назвою Впр28_Прізвище.
Рис. 3.64
ВПРАВА 29
Завдання. Скласти програму, яка б відтворювала дії світлофора. Використати в проекті спрайти trafific lights_1, trafific lights_2. trafific lights_3 з папки Scratch (папка FILES->Bпpaвa_29 на диску). Під час створення сценарію врахувати, що червоний сигнал світлофора, так само як і зелений, має відображатися 2 с, а жовтий – лише 0.5 с. Додати до скрипта команду завершення роботи світлофора за умови натиснення на клавішу ⇧(стрілка вгору). Зберегти проект під назвою Впр29_Прізвище.
Висновки
У середовищі Scratch для створення проектів використовують різноманітні комбінації команд повторення та розгалуження.
Розрізняють внутрішні та зовнішні команди. При створенні Scratch-проектів використовують вкладки, коли зовнішнім блоком в команда повторення, а внутрішнім – розгалуження, і навпаки.
Щоб вийти з безумовного циклу, який створено в середовищі Scratch за допомогою команди завжди, використовують одну із заглушок зупинити скрипт або зупинити все, яку додають до умовного оператора якщо.
У середовищі Scratch комбінування блоків завжди та якщо рівносильне до команди завжди якщо. Проте оператор завжди якщо виконується швидше, а завдяки сукупності операторів завжди та якщо можна вставити скільки завгодно вкладень умовного оператора, а також використати оператор розгалуження із повною формою якщо – інакше.
Контрольні запитання та завдання
1. З якою метою використовують комбінування операторів повторення та розгалуження?
2. Як можна здійснити завершення команди завжди в середовищі Scratch?
3. У чому відмінність оператора завжди якщо від сукупності операторів завжди та якщо?
4. Які види алгоритмів реалізовано завдяки операторам завжди та якщо?
ПРАКТИЧНА РОБОТА №6
Складання та виконання алгоритмів з повторенням і розгалуженням у визначеному навчальному середовищі виконання алгоритмів
Хід роботи
Завдання 1. Виконавши завдання цієї вправи, ви розробите проект, що відтворюватиме роботу торгового апарата для приготування напоїв. Залежно від сплаченої суми – 2, 4 чи 5 грн – автомат видаватиме чай, каву чи сік відповідно.
1 Відкрийте у вікні програми Scratch файл з шаблоном проекту Automat, збережений на диску в папці Scratch (з папки FILES→ПР6 на диску).
2. Виділіть під областю сцени спрайт склянки з напоєм, перейдіть на вкладку Скрипти та складіть сценарій, за яким апарат після натискання на клавіатурі клавіші З видаватиме склянку з чаєм (рис. 3.65).
3. Складіть подібні скрипти для кави та соку.
Рис. 3.65
4. Додайте до сценарію команди , запустіть проект на виконання та понатискайте клавіші 2, 4, 5.
5. Збережіть файл під назвою Пр6_1_Прізвище.
Завдання 2. Виконавши завдання, ви створите проект, в якому після натиснення клавіші стрілка вгору ваш спрайт підстрибуватиме, а після натискання клавіш стрілка вліво і стрілка вправо – рухатиметься у відповідному напрямку.
1. Завантажте до проекту спрайт Fantasy 13. що міститься в папці Fantasy.
2. Складіть скрипт, який відтворював би рух спрайта у відповідь на натискання клавіші стрілка вгору.
А) Перетягніть на вкладку Скрипти команду якщо та вставте в неї умову клавішу стрілка вгору натиснуто?.
Б) Додайте до команди якщо блок команд, які переміщуватимуть спрайт вгору (значення координати у тут має бути додатним).
В) Потім додайте блок команд, що переміщуватимуть спрайт вниз (значення координати у має бути від’ємним). У вас вийде такий скрипт, як на рис. 3.66.
Рис. 3.66
3. Складіть скрипт, за яким спрайт після натискання клавіш стрілка вправо і стрілка вліво рухатиметься у відповідні сторони (за додатного значення х праворуч, за від’ємного – ліворуч).
4. Збережіть проект під назвою Пр6_2_Прізвище.