11.04.2022 р.
Тема: Алгоритми з розгалуженням
ПРИГАДАЙ
► де в повсякденному житті тобі траплялися висловлювання з логічним слідуванням
ТИ ДІЗНАЄШСЯ
- коли використовують алгоритми з розгалуженням;
- як у середовищі Скретч описати алгоритми з повним і неповним розгалуженням;
- чи можна поєднувати алгоритмічні структури
Вивчаємо
1. Коли використовують алгоритми з розгалуженням?
При розв’язуванні задач у школі та в повсякденному житті часто користуються алгоритмами з розгалуженням, які передбачають виконання різних дій залежно від істинності чи хибності деякого висловлювання, вказаного в умові. Наприклад, тобі потрібно провідати бабусю, до якої ви зазвичай їздите автобусом № 2: якщо на зупинку приїхав автобус із номером № 2, ти сідаєш у нього, а якщо ні — очікуєш на інший. Алгоритмом з розгалуженням також можна вважати алгоритм здійснення дзвінка з мобільного телефону: якщо є кошти на рахунку й мережа доступна, то ти набираєш номер адресата — і виклик здійснюється, інакше виклик не буде здійснено. При описі таких алгоритмів використовують алгоритмічну структуру розгалуження.
Розрізняють дві форми структури розгалуження: неповне та повне розгалуження.
Структура неповного розгалуження схожа на висловлювання з логічним слідуванням «Якщо— то», у якому після «то» записують послідовність команд, які необхідно виконати, коли записане в умові висловлювання є істинним. Її можна подати графічно (мал. 285).
Мал. 285
Наприклад, на малюнку 286 подано графічну форму алгоритму застосування засобів автоматизованої перевірки правопису слова, яке є в словнику, в середовищі текстового процесора Microsoft Word (мал. 287).
Мал. 286
Неповне розгалуження використовують тоді, коли деяку послідовність команд слід виконати лише за умови істинності висловлювання. Якщо ж записане в умові висловлювання хибне, то жодна з команд не виконуватиметься.
Мал. 287
Структура повного розгалуження схожа на висловлювання «Якщо — то — інакше», у якому після «то» та «інакше» записують команди, які необхідно виконати залежно від істинності висловлювання, записаного в умові. її можна подати графічно (мал. 288).
Наприклад, на малюнку 289 подано фрагмент алгоритму написання слів з великої літери в середині речення.
Мал. 288
Мал. 289
2. Як у середовищі Скретч описати алгоритми з неповним та повним розгалуженням?
Для реалізації неповного розгалуження в середовищі Скретч використовують команду, що зображена на малюнку 290.
Наприклад, фрагмент алгоритму малювання різнокольорової ламаної, за яким колір ліній буде змінюватися після натиснення кнопки миші, можна подати графічно (мал. 291).
Цей фрагмент алгоритму для середовища Скретч можна описати, як на малюнку 292.
Мал. 290
Мал. 291
Структуру повного розгалуження в середовищі Скретч можна подати командою, що зображена на малюнку 293.
Мал. 292
Мал. 293
Наприклад, алгоритм, за яким при натисненні клавіші Т на клавіатурі розмір об’єкта збільшується наполовину, інакше — зменшується на 10 % , можна подати графічно (мал. 294). Цьому алгоритму відповідає фрагмент програми в середовищі Скретч (мал. 295).
Мал. 294
Мал. 295
3. Як поєднувати алгоритмічні структури?
У програмах, розроблених у середовищі Скретч, можна поєднувати команди розгалуження та повторення: вони можуть слідувати одна за одною та містити одна одну.
Наприклад, якщо у проекті Рудий кіт (мал. 296) натиснути стрілку вгору на клавіатурі, то отримаємо зображення виконавця, повторене тричі та переміщене на 50 кроків одне від одного а якщо така кнопка не буде натиснута, то зображення виконавця змінить яскравість на чверть
Для цього у фрагменті програми всередині структури розгалуження використовується команда повторення.
Мал. 296
У проекті Привид, у якому виконавець рухається по сцені за вказівником миші та «говорить» Пляж або Море, програма міститиме дві команди розгалуження в тілі циклу (мал. 297).
Мал. 297
Діємо
Вправа 1. Зважування.
Завдання. Із запропонованих блоків (мал. 298) склади у графічному редакторі графічний опис алгоритму визначення з трьох монет однієї фальшивої одним зважуванням, за умови, що вона дещо легша від справжніх монет.
Мал. 298
1. У середовищі графічного редактора створи новий файл Зважування.jpg. Користуючись фрагментами схеми, склади алгоритм. Розпочни з блока, зображеного на малюнку 298, а.
Далі міркуй так: якщо серед обраних двох монет не виявиться фальшивої, то терези будуть врівноважені, а фальшива залишиться. Якщо серед обраних двох монет одна виявиться фальшивою, то справжня переважить шальку терезів у свій бік. Монета, яка на вищій шальці, — фальшива.
2. Додай до схеми блок з умовою (мал. 298, г).
3. Визнач, яким буде результат виконання алгоритму, якщо терези перебуватимуть у рівновазі. Розмісти відповідний блок праворуч — якщо висловлювання «Терези в рівновазі» є істинним. Аналогічно ліворуч розмісти блок, що відповідає результату, якщо висловлювання є хибним.
4. Збережи зміни у файлі Зважування.jpg у своїй структурі папок.
Вправа 2, Перекладач.
Завдання. Створи в середовищі Скретч проект, у якому при наведенні мишею на об’єкт з’являються його назви іноземною мовою. Використай у проекті не менш ніж 4 об’єкти.
1. Сплануй проект. Перевір, що в бібліотеці зображень можна дібрати зображення чотирьох об’єктів, назву яких ти знаєш однією з іноземних мов. Наприклад, яблуко (укр.) — apple (англ.). Додай ці об’єкти до проекту.
2. Для кожного з об’єктів склади програму. Наприклад, для об’єкта Яблуко фрагмент програми складається з команд:
3. Додай до програми кожного з об’єктів команди, які забезпечать початок її роботи після натиснення а завершення — після натиснення
Обміркуй, які з команд на малюнку 299 слід використати:
Мал. 299
4. Запусти програму на виконання. Перевір, чи відповідає отриманий результат поставленій задачі.
5. Збережи проект з іменем Словник у папці Проекти своєї структури папок.
Вправа 3. Карта України.
Завдання. Створи проект, у якому при переміщенні виконавця на фрагмент карти України з’являється повідомлення про назву відповідної області.
1 Відкрий проект Карта, збережений у папці Алгоритми і програми. Переконайся, що на сцені розташована карта України, у якій всі області розфарбовані різними кольорами. Віднови в пам’яті назву кожної області України. Якщо в тебе є сумніви, скористайся підказкою — файлом Карта України.jpg, який збережено в папці Алгоритми і програми.
2. Добери команди й умови в середовищі Скретч, які будуть реалізувати фрагмент алгоритму, поданий для Одеської області (мал. 300).
Мал. 300
3. Доповни програму командами визначення назв інших п’яти областей України, які тобі було б цікаво відвідати на канікулах.
4. Додай до програми команди так, щоб виконання програми зупинялось натисненням клавіші Пропуск на клавіатурі.
5. Запусти програму на виконання. Перевір, чи відповідає отриманий результат поставленій задачі.
6. Збережи проект з іменем Карта в папці Проекти своєї структури папок.
Вправа 4. Ноти.
Завдання. Сплануй проект, у якому при натисненні цифри на клавіатурі від 1 до 7 (1 — до, 2 — ре, 3 — мі, 4 — фа, 5 — соль, 6 — ля, 7 — сі), буде звучати відповідна нота 0,5 тактів установленим інструментом. Реалізуй спланований проект у середовищі Скретч.
Обговорюємо
1. Назви приклади алгоритмів з розгалуженням з повсякденного життя. Як істинність висловлювань, що записують в умові, впливає на порядок виконання дій?
2. Чим відрізняються повне та неповне розгалуження? Наведи приклади алгоритмів з повним і неповним розгалуженням.
3. Якою командою в середовищі Скретч реалізоване повне розгалуження?
4. Якою командою в середовищі Скретч реалізоване неповне розгалуження?
Як у програмах, описаних в середовищі Скретч, можна поєднувати різні алгоритмічні структури?
Працюємо в парах
1. Обговоріть, у яких проектах можна використати подані фрагменти програм (мал. 301). За результатами обговорення сплануйте проект, складіть програму для спланованих подій та реалізуйте його в середовищі Скретч.
Мал. 301
2. Перейдіть на сайт спільноти Скретч. Запустіть на виконання проект на свій вибір з розділу Популярні проекти. Визначте, які команди використано у програмі завантаженого проекту та які алгоритмічні структури вони реалізують. По черзі називайте алгоритмічну структуру та пояснення про її призначення й використання в цьому проекті.
3. Придумайте ідею проекту, в якому використано два виконавці: Авто і Пасажир
та реалізовано алгоритмічні структури розгалуження й повторення. Сплануйте події у проекті: один з пари планує події для виконавця авто, другий — для пасажира. Чи можливо створити проект із подій, дібраних різними авторами? Узгодьте свої дії та створіть проект у середовищі Скретч.
Міркуємо
4. Добери команди середовища Скретч, якими можна реалізувати фрагменти алгоритмів, поданих на схемі (мал. 302):
Мал. 302
5. Уяви, що тобі потрібно скласти програми для робота-помічника в домашніх справах. Постав у відповідність завдання, яке буде виконувати робот, та алгоритмічну структуру, яку можна використати для цього.
6. У проекті Підсилювач звуку гучність звучання барабана задається за допомогою стрілок на клавіатурі: стрілка праворуч підсилює звук, а ліворуч — послаблює. Визнач, які команди слід використати у програмі.
7. Серед поданих на малюнку 304 алгоритмів визнач той, за яким виконавець найшвидше дійде до фінішу в грі (мал. 303) за адресою: https://blockly-games. appspot. com/maze ?lang=uk&level=8&skin=0.
Мал. 303
Мал. 304
Оціни свої знання та вміння
- Я розрізняю алгоритмічну структуру розгалуження та можу навести приклади її застосування з повсякденного життя та навчання.
- Я розрізняю повне та неповне розгалуження.
- Я вмію виконувати в середовищі Скретч проект, що містить алгоритмічну структуру розгалуження.
- Я вмію створювати в середовищі Скретч проект, що містить алгоритмічну структуру розгалуження.
- Я розрізняю алгоритмічні структури та вмію поєднувати їх у програмах у навчальному середовищі Скретч.
- Я вмію складати проекти, у яких поєднуються алгоритмічні структури розгалуження та повторення.
Словничок
Алгоритмічна структура розгалуження; повне розгалуження; неповне розгалуження.
УЗАГАЛЬНЮЄМО
Коментарі
Дописати коментар