Алгоритми з повторенням та розгалуженням » Народна Освіта


Народна Освіта » Інформатика » Алгоритми з повторенням та розгалуженням






Алгоритми з повторенням та розгалуженням

Базові алгоритмічні структури

Історичні відомості

Слово «алгоритм» походить від імені перського вченого, астронома і математика Мухаммеда Ібн Муси Аль Хорезмі. І

АЛГОРИТМ І ЙОГО СТРУКТУРА

З часу створення програмованих машин було придумано більше двох з половиною тисяч мов програмування. Щороку їхня кількість зростає. Деякими мовами вміє користуватися лише невелике коло програмістів, на інших мовах програмують мільйони людей. Середовище Scratch, у якому ви вже працювали в минулому навчальному році, розробляли як мову програмування для дітей. Тому в ній працювати не складно і цікаво. Ми продовжимо роботу в Scratch, але перед тим ознайомимось з базовими конструкціями алгоритмів.

У повсякденному житті людина постійно вирішує якісь завдання або розв’язує задачі, що вимагають виконання певної послідовності дій. Такі послідовності дій прийнято називати алгоритмом. Отже, алгоритм — це опис послідовності дій, виконання яких призводить до вирішення поставленого завдання за скінченну кількість кроків. Об’єкт, що здатний виконати команди алгоритму, називають виконавцем алгоритму.

Алгоритми можуть бути подані в різних формах: у текстовій формі запису, у вигляді блок-схеми (графічній), мовою програмування тощо.

Для позначення кроків алгоритму у вигляді блок-схем використовують такі основні геометричні фігури:

 

Послідовність дій в алгоритмі вказують за допомогою стрілок, які з’єднують геометричні фігури. Так, на рис. 3.1 представлено блок-схему алгоритму дій людини, що переходить вулицю.

Найбільш вражаючим прикладом виконавця алгоритмів є комп’ютер. Комп’ютер обробляє текстову, числову та графічну

 

інформацію, керує роботою інших з’єднаних з ним пристроїв.

Свого часу, аби мати змогу передати команди обчислювальним машинам, люди змушені були придумати системи знаків, які були б зрозумілі для них. Так виникли мови програмування.

Отже, мова програмування — це зрозуміла для комп’ютера система знаків. А комп’ютерна програма — це алгоритм записаний спеціальною мовою і призначений для виконання комп’ютером.

Мова програмування — це зрозуміла для комп’ютера система знаків, призначена для опису алгоритмів і структури даних.

 

 

У Scratch алгоритми дій об’єктів задають з допомогою сценаріїв, які називаються скриптами. Ви вже створювали в цій програмі проекти, тож знаєте, що скрипти в ній задаються з блоків-команд, які містяться в лівій частині вікна програми. Деякі блоки-коман-ди мають виступи та заглибини. «Граматика» мови Scratch така, що з’єднати між собою блоки несумісних форм неможливо. Середовище програмування, що дає змогу користувачеві створювати програми з пропонованих графічних об’єктів (у Scratch — це блоки-ко-манди, схожі на елементи конструктора Lego), позбав-ляючи таким чином від рутинної роботи з написанням кодів програм, називають середовищем візуального програмування. Згаданий алгоритм переходу вулиці, складений мовою програмування Scratch, може мати вигляд, як на рис. 3.2.

 

 

 

Ви вже зрозуміли, що «розмовляти» з комп’ютером мовою Scratch — означає складати скрипти.

 

ВПРАВА 10

 

Завдання 1. Скласти у вікні програми Scratch для спрайта Рудого кота скрипт за таким алгоритмом:

• кіт стає у вихідне положення;

• чекає 2 с;

• переміщується на 70 кроків;

• змінює свій образ;

• стоїть на місці 1 с;

• переміщується на 50 кроків;

• набуває попереднього вигляду.

1. Складіть для кота скрипт, як на рис. 3.3.

2. Додайте до скрипта блок-заголовок (заголовки мають форму

 

 

, який вважаєте за потрібний, та вико

 

найте відповідну дію, щоб перевірити, як працює проект.

Завдання 2. Скласти для спрайта восьминога скрипт за алгоритмом поданим у вигляді блок-схеми на рис. 3.4.

1. Виконайте команду Файл ► Новий, щоб відкрити вікно нового проекту, та додайте до нього спрайт восьминога (файл Octopusl-а з папки Animals бібліотеки програми Scratch).

2. Складіть для спрайта скрипт, як на рис. 3.5.

 

 

3. Понатискайте на клавішу 1, аби перевірити, як працює проект. (Гру барабанів ви почуєте, якщо до вашого комп'ютера під'єднано колонки чи навушники).

4. Збережіть проект під назвою Впр10_Прізвище.

 

 

Команди в алгоритмах записують одна за одною в певному порядку, а от виконуються вони не завжди в такій послідовності. Залежно від порядку виконання команд алгоритми поділяють на три типи:

• лінійні алгоритми (слідування);

• алгоритми з розгалуженням;

• алгоритми з повторенням.

Розгалуження і повторення спрощують структуру програми. Такі програми легше переглядати, налагоджувати, вносити до них зміни. Зауважте, що будь-яка з цих трьох базових конструкцій має лише один вхід і один вихід.

Алгоритм, у якому команди виконуються послідовно одна за одною від початку до кінця, називають лінійним. Наприклад, перехід вулиці, обчислення суми чисел, саджання дерева тощо.

Але в житті так буває не завжди. Часом обставини змушують нас робити вибір. Якщо йде дощ, ми беремо парасольку і одягаємо плащ, якщо на вулиці сухо і тепло, вдягаємось легше. Трапляються і більш складні умови вибору. Від обраної дії може навіть залежати подальша доля людини.

Вибір однієї з двох послідовностей дій залежно від виконання або невиконання деякої умови називають розгалуженням.

Алгоритм, що містить одну або кілька умов і, відповідно, дві та більше гілок, називають алгоритмом з розгалуженням. На рис. 3.7 наведено приклад блок-схеми алгоритму з розгалуженням.

 

 

У побуті люди зазвичай повторюють ті самі дії. Ви щодня ходите до школи, по кілька разів переглядаєте улюблений фільм, виконуєте домашню роботу, відвідуєте гуртки. Ви часто розв’язуєте задачі, в яких одну чи кілька дій слід повторювати, дотримуючись певної умови.

Багаторазове виконання тієї самої послідовності команд доти, доки виконується визначена наперед умова, називають циклом (повторенням). Алгоритм, що містить цикли, називають циклічним алгоритмом або алгоритмом з повторенням. На рис. 3.8 наведено приклад блок-схеми такого алгоритму.

Майже всі мови програмування містять оператори розгалужень і циклів. Не є винятком і Scratch. «Словник» його мови містить п’ять блоків, що за формою нагадують букву «С», і один подібний до букви «Е». їх ще іноді називають обгортками, оскільки всередину цих блоків можна вставляти інші.

 

ВПРАВА 11

Завдання. Додати до скриптів оператори розгалужень і циклів, що містяться в категорії Керувати.

1. Запустіть на виконання Scratch і перетягніть з палітри команд на вкладку Скрипти всі блоки-команди, що, на вашу думку, можуть створювати в програмі розгалуження і цикли.

Як ви гадаєте, який блок у цьому скрипті є оператором розгалуження? Підказка. Щоб отримати відповідь, щоразу запускайте проект на виконання (кнопка із зеленим прапорцем), уводьте в текстове поле внизу сцени число і натискайте на кнопку з галочкою або на клавіатурі клавішу Enter.

3. Аби щоразу не клацати кнопку із зеленим прапорцем, змініть щойно створений скрипт, як показано на рис. 3.10. Як ви гадаєте, який блок у цьому скрипті є оператором циклу?

4. Збережіть проект під назвою Впр11_Прізвище.

Висновки

 

Алгоритм — це опис послідовності дій, виконання яких призводить до вирішення поставленого завдання за скінченну кількість кроків. Об’єкт, що здатний виконати команди алгоритму, називають виконавцем алгоритму.

Алгоритми можна подавати по-різному: текст, блок-схема, мова програмування тощо.

Залежно від порядку виконання команд можна виділити три типи алгоритмів: лінійні (слідування), з розгалуженням, з повторенням.

Алгоритм, у якому команди виконуються у порядку запису, тобто послідовно одна за одною, називається лінійним.

Вибір однієї з двох послідовностей дій залежно від виконання або невиконання деякої умови називають розгалуженням.

Алгоритм, що містить одну або кілька умов і відповідно дві та більше гілок, називають алгоритмом зрозгалуженнями.

Багаторазове виконання тієї самої послідовності команд доти, доки виконується визначена наперед умова, називають циклом (повторенням).

Алгоритм, що містить цикли, називають циклічним алгоритмом або алгоритмом з повтореннями.

 

Контрольні запитання та завдання

1. Які алгоритми називають лінійними? Наведіть приклади лінійних алгоритмів.

2. Які алгоритми називають розгалуженими? Наведіть приклади алгоритмів з розгалуженням.

3*. Наведіть приклади прислів’їв, де дія виконується в залежності від виконання певної умови.

4. Які алгоритми називають циклічними? Наведіть приклади алгоритмів з повторенням.

5*. Наведіть приклади відомих казок або оповідань, де певні дії виконуються циклічно.

 

Алгоритми з повторенням. Цикл з лічильником

Пригадати базові структури алгоритмів ви зможете на диску.

Іноді навіть дуже прості обчислення можуть завести людину в глухий кут, коли певні операції потрібно повторювати тисячі разів, а коли мільйони разів — той тим паче.

Однією з властивостей комп’ютера є його здатність багато разів виконувати ті самі дії. З повторюваними обчисленнями програмісти стикаються повсякчас. У програмуванні багаторазове повторення певної послідовності дій називають циклом. Послідовність команд, які повторюються під час виконання оператора циклу, називають тілом циклу.

Часто в програмах, створених у середовищі Scratch, використовують безумовні цикли, вихід з яких не передбачено логікою програми. Такі цикли ще називають нескінченними. На відміну від інших мов програмування, у Scratch для створення таких циклів є спеціальний оператор. На рис. 3.11 наведено блок-схему оператора безумовного циклу та відповідний Scratch-блок. Тіло такого циклу виконується постійно до закінчення роботи проекту.

Цикл з лічильником дає змогу організувати в програмі повторення певної послідовності дій задану кількість разів. Такі цикли використовують у випадках, коли кількість виконуваних повторювань відома заздалегідь. Scratch також має відповідний оператор, який працює за правилом: «роби рівно стільки разів, скільки задано».

Перший блок у блок-схемі цього оператора зображує лічильник, значення N (кількість повторювань) у якому щоразу після виконання тіла циклу зменшується на 1, аж доки не набуде значення «0». На рис. 3.12 зображено відповідний Scratch-оператор.

 

 

 

 

Розглянемо використання цього виду циклу, виконавши побудову зірочки з восьми променів.

Щоб побудувати зображення зірки, введіть скрипт, зображений на рис. 3.13.

І хоча насправді для побудови зірочки необхідно побудувати 16 відрізків, у програмі використовується побудова кожного променя з наступним повторенням.

Команда очистити очищує вікно проекту від попередніх зображень, команда опустити олівець дозволяє спрайту залишати за собою лінію при наступному переміщенні, а команда задати колір олівця відповідно задає його колір.

У табл. 3.1 пояснено покрокове виконання тіла циклу команди повторити.

 

Таблиця 3.1. Команди Scratch для побудови зірки із восьми променів

Команда Scratch

Положення спрайта

Пояснення дій спрайта

Початкове положення спрайта

Повертає на кут 45° проти годинникової стрілки

Переміщується на 3° кроків

 

Повертає на кут 90° за годинниковою стрілкою

Переміщується на 30 кроків

Повертає на кут 45° проти годинникової стрілки

Переміщується на 30 кроків

Повертає на кут 90° за годинниковою стрілкою

Переміщується на 30 кроків

Подальші кроки виконують аналогічно. Так само можна створити зірку з будь-якою кількістю променів, головне правильно визначити, на який кут треба повертати олівець, а кількість кроків, на яку слід його перемістити, визначається в залежності від бажаного розміру фігури. Аналогічно можна створити і зображення правильного многокутника.

Цикли також можуть бути вкладеними. В цьому випадку розрізняють зовнішній і внутрішній цикли.

Завдання. Виконати проект, у якому кіт буде ходити по екрану зліва направо.

 

 

 

1. Відкрийте програму Scratch.

2. Оберіть блок завжди з категорії Керувати та розмістіть усередині команди, як на рис. 3.14.

Клацнувши 2 рази на команді, ви переконаєтеся, що кіт буде пересуватися зліва направо.

Примітка. Щоб кіт не перевертався при зворотньому русі, треба змінити режим руху об'єкта за допомогою кнопки (S) (приймати тільки зліва направо).

3. Додайте до попереднього скрипта команди наступний образ із категорії Вигляд і чекати 1 секунд із категорії Керувати. Розташуйте дані команди, як на рис. 3.15. (Ці команди потрібні для того, щоб кіт не ковзав, а переставляв лапки, змінюючи через певний час свій образ).

Щоб дізнатись, які образи містить спрайт, або додати нові образи до спрайта, слід перейти до вкладки Образи (розташована по центру вікна середовища). Тут, як бачите, два коти: перший має назву — образі, а другий — образ2. І саме другий переставляє лапи на відміну від першого (рис. 3.16).

 

4. Зменшіть час на відображення певного образу, змінивши в команді чекати 1 секунд значення 1 на 0,1 (рис. 3.17).

 

5. Додайте до одержаного скрипта команду коли натиснуто прапорець.

6. Збережіть проект під назвою Впр12_Прізвище.


ВПРАВА 13

Завдання. У вікні нового проекту скласти для Рудого кота скрипт (рис. 3.18), що містить вкладені цикли з лічильником.

1. Запустіть проект на виконання, щоб побачити, як він працює.

2. З’ясуйте, скільки разів у цьому скрипті виконується тіло внутрішнього циклу.

3. Змініть кілька разів значення лічильників зовнішнього та внутрішнього циклів і поспостерігайте за тим, як змінюватиметься поведінка спрайта кота.

4. Збережіть проект під назвою Впр13_Прізвище.

Висновки

У програмуванні багаторазове повторення певної послідовності дій називають циклом. Послідовність команд, які повторюються під час виконання оператора циклу, називають тілом циклу.

Часто в програмах використовують безумовні цикли, вихід з яких не передбачено логікою програми. Такі цикли називають нескінченними.

Цикли, які використовують у випадках, коли кількість виконуваних повторювань відома заздалегідь, називають циклами з лічильником.

Контрольні запитання та завдання

1. Що таке цикл у програмуванні?

2. Що таке тіло циклу?

3. У чому полягає принцип виконання дій у циклі з лічильником?

Цикли з умовами

Програмісти часто стикаються із ситуаціями, коли кількість повторювань наперед невідома, а команди в програмі мають повторюватися за виконання певних умов. Саме для таких випадків слугують цикли з умовами.

Цикл, тіло якого виконується доти, доки виконується умова, вказана перед його початком, називають циклом з передумовою. Якщо задана умовою подія не настає ніколи, тіло циклу не виконується жодного разу.

 

Цикл з післяумовою — це цикл, у якому умова перевіряється після виконання його тіла. Із рис. 3.20, на якому зображена блок-схема такого циклу, видно, що тіло циклу з післяумовою за будь-яких обставин має бути виконане принаймні один раз.

 

Отже, ми з вами розглянули використання різних видів команд повторення та їх реалізацію в середовищі Scratch (див. табл. 3.2).

Таблиця 3.2. Види команд повторення

Команда Scratch

Тип циклу

Пояснення

Безумовний цикл

Тіло циклу виконується нескінченно

Цикл з лічильником

Тіло циклу виконується вказану кількість разів

Цикл з передумовою

Тіло циклу виконується доти, доки істинною залишається вказана перед його початком умова

Цикл з післяумовою

Умова в циклі перевіряється після виконання його тіла

ВПРАВА 14

 

Завдання. Скласти два сценарії, за якими клоун жонглюватиме кульками:

а) допоки ви не натисните клавішу Пробіл;

б) щоразу, коли ви натискатимете клавішу Пробіл.

1. Додайте до проекту відповідний до сюжету фон.

2. Завантажте з папки РІЬЕ8^Вправа_14 на диску спрайт klown_1 і додайте до проекту ще три його образи — klown_2, klown_3, klown_4.

3. Складіть сценарій, щоб образи змінювалися кожні 0,3 с, та скопіюйте його. Тепер ви маєте два скрипти.

4. Для першого скрипта використайте команду повторювати поки, а для другого — команду завжди якщо з категорії Керувати, та додайте до обох скриптів умову клавішу пропуск натиснуто? з категорії Датчики, як це показано на рис. 3.21, рис. 3.22.

 

 

 

ВПРАВА 15

 

Завдання. Скласти скрипт, за яким на сцені проекту створювалась би рамка з метеликів.

1. Відкрийте вікно нового проекту та додайте до нього спрайт будь-якого метелика. На сцені проекту намалюйте червону рамку, дещо меншу, ніж сцена.

2. Складіть для спрайта метелика скрипти, зображені на рис. 3.23.

 

 

Підказка. Блок доторкається кольору? має вказувати на колір рамки. Щоб це сталося, клацніть спочатку на квадратик у блоці, а коли вказівник мишки перетвориться на піпетку — на рамку на сцені проекту.

 

3. Клацніть кнопку із зеленим прапорцем і почекайте, коли буде створено рамку з метеликів.

4. Збережіть проект під назвою Впр15_Прізвище.

 

ВПРАВА 16

 

Завдання. Створити проект зображення восьмикутника (рис. 3.24), використовуючи пояснення до побудови зірки з вісьмома променями. Зберегти проект під назвою Впр16_Прізвище.

 

Скласти алгоритми з повтореннями ви зможете, виконавши вправи на диску.

 

 

Висновки

Цикл, тіло якого виконується доти, доки істинною залишається вказана перед його початком умова, називають циклом з передумовою.

Цикл з післяумовою — це цикл, у якому умова перевіряється після виконання його тіла.

' і

 

Контрольні запитання та завдання

1. Опишіть та порівняйте принципи виконання безумовного циклу та циклів з умовами.

2. Які команди використовують у Scratch для виконання різних видів циклів?

3. Як ви думаєте, чому всі сучасні мови програмування використовують команди реалізації циклів?

 

ПРАКТИЧНА РОБОТА №3

Складання та виконання алгоритмів з повторенням у визначеному навчальному середовищі виконання алгоритмів

Хід роботи

Завдання 1. Створити проект, що відтворює дію лічильника поверхів у ліфті, що рухається на дев'ятий поверх.

1. Створіть зображення спрайтів відкритого та зачиненого ліфтів за зразком у вбудованому до Scratch графічному редакторі. Надайте імена спрайтам Lift_1 для відчиненого та Lift_2 для зачиненого ліфта (рис. 3.25).

 

2. Додайте до проекту спрайт ЫЛ_1, а спрайт ШЛ_2 зробіть образом для спрайта ШН_1. Для цього виділіть спрайт ШЛ_1, відкрийте вкладку Образи, натисніть кнопку Імпортувати, оберіть спрайт ШЛ_2.

3. Додайте до проекту спрайт із зображенням цифри 1 та розмістіть її зображення над дверима ліфта.

а) Натисніть кнопку

 

 

І Вибрати новий об’єкт з файла.

б) Оберіть спрайт розташований у папці ЬеНеге/бідКаІ.

в) Зменшіть розмір спрайта відповідно до місця його розташування.

4. Додайте до цього спрайта образи із цієї ж папки, що мають зображення цифр 2, 3, 4, 5, 6, 7, 8, 9. (Додавання іншого образу описано в п. 2 даного завдання.)

5. Задайте скрипт для зміни образів ліфта. Для цього виділіть спрайт із зображенням ліфта та введіть скрипт представлений на рис. 3.26.

Тут команда змінити образ на образі призначена для того, щоб на початку виконання проекту було завантажено образ відкритого ліфта. Команда чекати і секунд здійснює затримку до закриття дверей ліфта. Наступний образ — команда, що змінює образ відкритого ліфта на закритий.

6. Задайте скрипт для початкового відображення цифри 1 і затримки відкритих дверей на 1 секунду. Для цього виділіть спрайт із зображенням цифри та введіть скрипт представлений на рис. 3.27.

Напис «іі» — це назва образу скрипта із зображенням цифри «1».

7. Додайте до попереднього скрипта команди, що будуть змінювати значення цифр через 1 секунду, доки ліфт не доїде до дев'ятого поверху (рис. 3.28).

Значення 8 означає, скільки змін образу спрайта буде відбуватись. Оскільки при зміні значень від 1 до 9 відбувається 8 змін.

8. До скрипта дії дверей додайте команди, що відображатимуть відкриття дверей ліфта після підйому його на дев'ятий поверх. Для цього виділіть спрайт із зображенням ліфта та додайте до створеного раніше скрипта ще дві команди (рис. 3.29).

У команді чекати 10 секунд це той час, коли піднімається ліфт після закриття дверей. А команда наступний образ змінить образ закритих дверей на відкриті.

9. Запустіть проект на виконання.

10. Збережіть проект під назвою ПрЗ_підйом.

11. До проекту самостійно додайте команди, що відображають наступний спуск ліфта на третій поверх.

12. Збережіть проект під назвою ПрЗ_спуск.

 

Завдання 2. Створити проект із двома брейк-танцюристами (хлопцем і дівчиною), що виконують під музику кожен свій танець по черзі.

1. Завантажте сцену Spotlight-stage із папки Indoors, із папки People завантажте спрайт Breakdancer-1 та розмістіть його у відповідному місці сцени, змінивши розміри об'єкта.

2. Імпортуйте до проекту три образи: Breakdancer-2, Breakdancer-3, Breakdancer-4.

3. Якщо ваш комп'ютер оснащений колонками чи навушниками, додайте до проекту звук, інакше перейдіть до наступного пункту завдання.

а) Клацніть на вкладці Звук кнопку Імпортувати та у вікні Імпортувати звук виберіть з папки Music Loops файл HipHop.

б) Перетягніть на вкладку Скрипти із категорії Звук команду Грати звук, на полі якої написано HipHop біля стрілки ▼ .

в) Щоб припинити відтворення, перетягніть на вкладку Скрипти команду зупинити всі звуки, яку ви в подальшому розташуєте після команди припинення танцю.

4. Складіть на вкладці Скрипти такий сценарій, як на рис. 3.31, та запустіть проект на виконання.

5. Завантажте спрайт танцюристки cassy-dancing-1 і додайте до проекту всі його образи із папки People.

6. Дівчина має танцювати за тим самим сценарієм, що було складено для хлопця. Для цього перетягніть лівою клавішею миші весь сценарій на спрайт брейк-танцюристки.

Тепер хлопець і дівчина танцюватимуть на сцені одночасно. Ви ж маєте зробити так, аби вони з'являлися по черзі.

7. Додайте до обох сценаріїв команди показати та сховати із категорії Вигляд (команда показати відображає спрайт на сцені, а сховати — вилучає його після завершення танцю).

8. До сценарію хлопця додайте команду оповістити із категорії Керувати. В розкривному списку оберіть новий... та в діалоговому вікні, що з'явилося, введіть Танцюристка. Розташуйте команду останньою. Це дасть змогу перейти до спрайта дівчини. Тепер сценарій брейк-танцюриста матиме вигляд, як на рис. 3.32.

9. Переробіть сценарій для дівчини-танцюристки, як показано на рис. 3.33.

Виконання першого скрипта дозволяє сховати спрайт із зображенням дівчини. Отже, спочатку ми побачимо тільки танець хлопця. Сценарій дівчини починає виконуватися з команди коли одержую Танцюристка, тобто після виконання останньої команди оповістити Танцюристка сценарію хлопця. Зауважте також, що в цьому скрипті ви можете змінити звуковий супровід танцю дівчини на DrumMachine.

10. Збережіть проект під назвою ПрЗ_Прізвище.

 

Висловлювання. Істинні та хибні висловлювання

 

10.1.

 

ПОНЯТТЯ ВИСЛОВЛЮВАННЯ, ВИДИ ВИСЛОВЛЮВАНЬ

Пізнання істини — одна з найважливіших потреб людини. Ми повинні володіти правдивою інформацією для того, щоб у різноманітних ситуаціях прийняти правильні рішення і на їх основі вчинити правильні дії.

Своє розуміння навколишнього світу людина передає у формі висловлювань. Висловлювання будується на основі понять і за характером є розповідним реченням. Проте не кожне речення виражає висловлювання.

 

Висловлювання — це розповідне речення, яке можна охарактеризувати як істинне або хибне.

 

Висловлювання може бути істинним або хибним. Істинним буде висловлювання, в якому зв’язок понять правильно відображає властивості речей і відповідає дійсності. Прикладом істинного висловлювання може бути таке: «Процесор є пристроєм для обробки інформації».

Хибним висловлювання буде в тому випадку, коли воно не відповідає дійсності, наприклад: «Процесор є пристроєм для друку».

Висловлювання не може бути виражене спонукальним або питальним реченням, оскільки оцінити їхню істинність чи хибність неможливо.

Висловлювання можуть бути простими або складними.

Висловлювання називають простим, якщо воно не включає в себе самостійні частини, які є висловлюваннями.

Складне висловлювання складається з простих висловлювань, що з’єднані логічними зв’язками (операціями).

Логічними зв’язками є сполучники «і», «або» та частка «не».

Так висловлювання «Василь читає книгу» та «Василь п’є чай» є простими. А висловлювання «Василь читає книгу і п’є чай» — складним.

ЛОГІЧНІ ОПЕРАТОРИ В СЕРЕДОВИЩІ SCRATCH

Логіка побудови висловлювань дуже гармонійно поєднується з принципами роботи комп’ютера і основними методами його програмування. Всі апаратні компоненти комп’ютера

 

побудовані на логічних мікросхемах. Вам відомо, що система подання інформації в комп’ютері заснована на понятті біта, що має лише два стани — 0 та 1 (відповідно ХИБНІСТЬ та ІСТИНА). Логічні оператори використовують у всіх мовах програмування. У Scratch з їх допомогою задають умови зміни поведінки об’єктів. Які це умови, немає жодного значення, головне, якими вони є — істинними чи хибними. У Scratch-проектах важливо, наприклад, чи було натиснуто якусь клавішу, і немає жодного значення, хто її натиснув, коли і якою рукою. Створювати в Scratch умови зміни поведінки об’єктів можна, додаючи до скриптів оператори порівняння:

 

 

а також оператори, що дають змогу здійснювати логічні операції над висловлюваннями:

 

, зазвичай використовують усередині С-блоків під час створення розгалужень і циклів — конструкцій алгоритмів, які керують порядком виконання програм і здатні формувати ілюзію розумної поведінки спрайтів. На рис. 3.34 наведено приклади блоків логіки.

 

 

Завдання. Створити в програмі Scratch проект, у якому дослідити, як логічні оператори в скрипті впливають на зміну поведінки спрайта.

1. Додайте до проекту спрайт Ghostl з папки Fantasy в бібліотеці програми, два його образи (Ghost2-a і Ghost2-b) та будь-який фон для цієї сцени на вибір.

 

 

2. Складіть для спрайта привиду скрипт, як показано на рис. 3.36.

 

3. Запустіть проект на виконання, клацнувши кнопку із зеленим прапорцем. Уважно вивчіть команди скрипта, щоб зрозуміти, за яких умов спрайт змінює свій образ і поступово зникає зі сцени та коли привид пересувається по сцені.

4. Збережіть проект під назвою Впр17_Прізвище.

Назвіть блоки логіки, які було використано в цьому скрипті.

 

Завдання. Визначити, які значення — істинні чи хибні — передають у програму наведені нижче логічні оператори.

 

 

Висновки

 

Висловлювання — це розповідне речення, яке можна охарактеризувати як істинне або хибне.

Висловлювання можуть бути простими або складними.

Висловлювання називають простим, якщо воно не включає в себе самостійні частини, які є висловлюваннями.

Складне висловлювання складається з простих висловлювань, що з’єднані логічними зв’язками (операціями).

Логічними зв’язками є сполучники «і», «або» та частка «не».

 

Контрольні запитання та завдання

1. Що таке висловлювання?

2. Які висловлювання називають простими? Наведіть приклади простих висловлювань.

3. Які висловлювання називають складними? Наведіть приклади складних висловлювань.

4*. Назвіть блоки логіки в середовищі Scratch.

Алгоритми з розгалуженням

11.1. АЛГОРИТМИ З РОЗГАЛУЖЕННЯМ У СКОРОЧЕНІЙ ФОРМІ

Алгоритм, що містить одну або кілька умов і відповідно дві та більше гілок, називають алгоритмом зрозгалуженням.

Оператор розгалуження застосовують у випадках, коли в програмі потрібно організувати вибір, тобто зробити так, аби певний набір команд у ній виконувався лише після виконання деякої умови. Тому такі оператори називають умовними.

Слід зазначити, що оператори розгалуження використовуються майже в усіх мовах програмування. В більшості з них умовний оператор розпочинається ключовим словом Якщо (англ. if) і може бути поданий в двох формах — скороченій (умовний оператор з однією гілкою) і повній (умовний оператор з двома гілками).

У мові програмування Scratch теж є такі оператори. На рис. 3.37 зображено блок-схему умовного оператора з однією гілкою та відповідний оператор мови Scratch. Під час виконання цього оператора перевіряється деякий логічний вираз (умова) і, коли він набуває значення ІСТИНА, виконується команда (чи команди) всередині С-блока; інакше виконуються команди, що йдуть одразу за ним.

 

 

Таблиця 3.3. Блоки логічних операторів

Команда

Дія

Істинна, якщо клавішу миші натиснуто

Істинна, якщо вказану клавішу натиснуто (обирається зі списку)

Істинна, якщо спрайт торкається вказаного спрайта, краю або вказівника миші (обирається зі списку)

Істинна, якщо спрайт торкається вказаного кольору (коліробирається піпеткою)

Істинна, якщо перший колір (у межах спрайта) торкається другого кольору (у фоні або іншому спрайті) (кольори обираються піпеткою)

Істинна, якщо обидві умови справджуються

Істинна, якщо будь-яка умова справджується

Істинна, якщо умова не справджується. Хибна, якщо умова справджується

У наступній вправі розглянемо випадок використання неповної команди розгалуження.

 

ВПРАВА 19

Завдання. Створити проект, у якому дівчинка після запитання про відвідування кінотеатру та отримання відповіді «так» на радощах підстрибує, при одержанні іншої відповіді дівчинка ніяких дій не виконує.

1. Розташуйте на сцені спрайт із зображенням дівчинки та її мами (спрайти дігії-БїапЦіпд та Ьаііегіпа-а відповідно) та додайте фон сцени (рис. 3.38).

2. Імпортуйте до спрайта дівчинки ще один її образ Ьаііегіпа-с.

3. Створіть скрипт для спрайта дівчинки, як на рис. 3.39.

4. Запустіть скрипт на виконання.

 

 

5. У текстовому полі, що з'явилося в нижній частині вікна проекту введіть відповідь «так» та натисніть галочку справа від текстового поля. Після чого дівчинка має підстрибнути.

Спробуйте ще раз запустити проект та ввести іншу відповідь, ви побачите, що ніяких подій не відбудеться. Якщо, навіть, ввести відповідь «Так» з великої літери, результат виконання умови буде Хибне. Щоб цього не відбувалося, змініть блок умови, застосувавши в ньому блок або (рис.3.40).

6. Збережіть проект під назвою Впр19_Прізвище.

 

11.2.

 

АЛГОРИТМИ З ПОВНИМ РОЗГАЛУЖЕННЯМ

Функцію умовного оператора з двома гілками в Scratch виконує команда якщо інакше. На рис. 3.41 зображено блок-схему такого оператора та відповідний до нього Е-блок.

 

Під час виконання цього оператора перевіряється задана умова і, коли вона стає істинною, виконуються команди всередині гілки якщо. В протилежному випадку виконуються команди всередині гілки інакше.

Так у наступному скрипті (рис. 3.42) реалізовано використання повної форми команди розгалуження. Залежно від одержаної відповіді, чи є сніг на вулиці, персонаж вирішує, на чому він буде кататися — на санчатах чи на велосипеді. Поряд із скриптом наведено алгоритм у вигляді блок-схеми.

 

 

Якщо в точці розгалуження програми має бути більше, ніж два варіанти вибору, додаткові умовні оператори можна вставити всередину секції інакше (рис. 3.43).

Такі розгалуження в програмуванні використовують доволі часто, а додаткові оператори називають вкладеними умовними операторами.

Scratch не обмежує кількість вкладених умовних операторів, тож тут можна реалізовувати будь-які складні розгалуження

 

 

Завдання. Створити проект розв'язання задачі.

Дано значення величини кута трикутника. Визначити його тип: гострий, прямий чи тупий.

 

Розглянемо послідовність дій для розв'язання поставленої задачі. Якщо кут буде < 90°, то цей кут — гострий, якщо = 90° — прямий, якщо > 90° — тупий. Створимо блок-схему розв'язання задачі (рис. 3.44).

 

 

 

1. Реалізуйте алгоритм, представлений у вигляді блок-схе-ми, за допомогою скрипта проекту в середовищі Scratch (рис. 3.45).

2. Збережіть проект під назвою Впр20_Прізвище.

 

Завдання. Створити проект у середовищі Scratch розв'язання задачі, до якої вже створено алгоритм у вигляді блок-схеми на рис. 3.46. Зберегти проект під назвою Впр21_Прізвище.

Відомо номер місяця. Вивести кількість днів, що має цей місяць (вважати, що рік невисокосний).

У вправі 20 передбачено, що користувач має вводити лише допустимі значення (від 1 до 179). У вправі 21 розглянуто випадок, коли користувач може ввести некоректне значення місяця, наприклад 14. У цьому разі буде виведено повідомлення про помилку.

Завдання. Скласти блок-схеми та проекти в середовищі Scratch до пропонованих задач, розглянувши лише коректне введення даних користувачем. Зберегти проекти під назвою Впр22_1_Прізвище, Впр22_2_Прізвище ... .

1. Дано цифри 1,2,3, 4, 5, 6, 7, 8, 9. Вивести відповідні римські цифри.

2. Дано значення температури. Вивести назву стану, в якому перебуває вода за цієї температури: рідкий, твердий або газоподібний (лід, вода, пара).

3. Відомо номер дня тижня. Вивести його назву (наприклад, 1 — понеділок).

4. Відомо номер дня тижня. Вивести повідомлення, чи цей день робочий чи вихідний (наприклад, 1 — робочий, 6 — вихідний).

5. Відомо оцінку учня. Вивести, до якого рівня навчальних досягнень треба віднести цю оцінку (високого, достатнього, середнього чи низького).

Висновки

Алгоритм, що містить одну або кілька умов і, відповідно, дві та більше гілок, називають алгоритмом зрозгалуженням.

Оператори розгалуження також називають умовними операторами.

Оператори розгалуження можуть бути подані в повній та скороченій формах.

Якщо в точці розгалуження програми має бути більше двох варіантів вибору, використовують вкладені умовні оператори. Scratch не обмежує кількість вкладених умовних операторів.

Контрольні запитання та завдання

1. Які алгоритми називаються розгалуженими?

2. Які є форми оператора розгалуження?

3. Наведіть приклад алгоритму із скороченою формою розгалуження.

4. Наведіть приклад алгоритму із повною формою розгалуження.

5. Які команди розгалуження використовують у середовищі Scratch? 6*. У яких випадках використовують вкладені умовні оператори?

Скільки їх може бути в Scratch?

 

ПРАКТИЧНА РОБОТА №4

 

Складання та виконання алгоритмів з розгалуженням у визначеному навчальному середовищі виконання алгоритмів

 

 

Завдання. Створити проект, у якому за заданим номером місяця дівчина повідомляє пору року, змінює свій образ (одяг) відповідно до пори року, а також відповідно до пори року змінюється фон сцени.

На рис. 3.47 наведено блок-схему алгоритму, за яким перевіряється низка умов, і залежно від того, яка з них є істинною, виводяться різні результати. У Scratch це можна реалізувати, використовуючи кілька умовних операторів з однією гілкою.

Хід роботи

1. До нового проекту завантажте чотири фони для сцени з різними порами року, спрайт дівчинки та три її образи (одяг дівчинки має відповідати порам року). (Зображення образів спрайта і фонів сцен є в папці FILES^nP4 на диску.)

2. На вкладці Скрипти спрайта дівчинки почніть створювати сценарій проекту. Спочатку перетягніть сюди команди, що нададуть користувачеві можливість уводити номери місяців з клавіатури.

3. Приєднайте до цих команд блок умовного оператора якщо, котрий в разі істинності заданого в ньому логічного виразу змусить дівчинку називати відповідну пору року, змінювати свій образ і повідомляти об'єкт Сцена про потребу змінити фон. На рис. 3.48 показано оператор для зимових місяців.


4. Додайте до свого скрипта аналогічні оператори для решти пір року.

5. На вкладці Скрипти об'єкта Сцена складіть сценарій зміни фонів. Кожний з чотирьох скриптів починайте з команди-заголовка, що відповідає певній порі року (див. рис. 3.49).

6. Додайте до скрипта, складеного для спрайта дівчинки, блок із зеленим прапорцем і запустіть проект на виконання.

7. Перевірте, чи все добре працює, та збережіть проект у файлі Пр4_Пріз-вище.

Складання та виконання алгоритмів з повторенням і розгалуженням

Щоб створені в середовищі Scratch проекти були більш потужними та реалістичними, використовують різноманітні комбінації вкладень команд повторення та розгалуження.

Розрізняють внутрішні та зовнішні команди. При створенні алгоритмів і Scratch-проектів використовують вкладки, коли зовнішнім блоком є команда повторення, а внутрішнім — розгалуження, і навпаки.

Нижче представлено деякі випадки використання вкладень команд повторення та розгалуження.

 

 

 

В одному із попередніх параграфів було розглянуто використання безумовного або нескінченного циклу, який в середовищі Scratch реалізовано за допомогою команди завжди. Ми вже виконували декілька вправ із цим оператором, у яких зупинити його виконання можна було лише в разі зупинки всього проекту. Проте в середовищі Scratch є заглушка

 

 

програми. Щоб перервати виконання команд усередині С-блока завжди, треба встановити оператор з умовою про їх зупинення та заглушкою (на рис. 3.52 цей оператор обведено рамкою).

Як бачимо, в наведеному прикладі поєднано команди повторення та розгалуження.

Досить часто для створення проектів у Scratch використовують сукупність команд безумовного циклу та скороченої форми розгалуження у вигляді блоків завжди і якщо (рис. 3.53).

 

 

Ви можете слушно зауважити, що немає сенсу використовувати вкладену конструкцію, адже в Scratch передбачено оператор завжди якщо, що відповідає команді повторення з передумовою (рис. 3.54).

 

 

Справді, вони виконують однакові функції. До того ж оператор завжди якщо має перевагу в швидкості виконання. Проте є в цього оператора і недолік — він містить у собі лише одне якщо, натомість в альтернативну конструкцію їх можна вставити скільки завгодно, а також використати оператор розгалуження із повною формою якщо — інакше.

 

Перевірити свої знання, пройти тест і розгадати кроворд ви зможете на диску.

 

ВПРАВА 23

 

Завдання. Створити проект відображення руху літака та машин уздовж дороги.

1. Виконайте оформлення сцени та спрайтів за зразком на рис. 3.55.

 

 

2. Задайте скрипт (рис. 3.56) для руху літака.

3. Задайте команди для переміщення машин.

а) Скопіюйте скрипт, створений для літака, для спрайтів машин.

б) Додайте до скриптів, призначених для переміщення машини, затримку руху, використовуючи блок чекати 1 секунд. Змініть значення очікування на 0.1.

4. Додайте до скрипта літака команду завершення його руху за умови натиснення на клавішу Пробіл.

5. Самостійно змініть скрипти для спрайтів із зображенням машин, щоб їх рух припинявся, коли натискаєте на клавішу ▼ (стрілка вниз).

6. Збережіть проект під назвою Впр23_Прізвище.

 

Завдання. Ознайомтеся із скриптами, що відповідають за рух машини.

1. Відкрийте скрипт Rotating Саг із папки Transportation. (Вбудовані до наявних спрайтів скрипти відкриваються так само, як і спрайти).

2. Запустіть на виконання відкритий скрипт та проаналізуйте команди, що відповідають за рухи машини.

ВПРАВА 25

Завдання. Ознайомтеся із скриптами, що відповідають за дії олівця.

1. Відкрийте скрипт Drawing Pancil з папки Things.

2. Запустіть на виконання відкритий скрипт та проаналізуйте команди, що відповідають за дії олівця.

3. Самостійно додайте команду для зміни кольору олівця.

ВПРАВА 26

Завдання. Створити проект, у якому застосувати комбінацію команди повторення завжди та блока умовного оператора з однією гілкою.

1. Запустіть на виконання програму Scratch, додайте до проекту спрайт акули та ще один її образ з бібліотеки програми (файл Fisp-a і Fisp-b з папки Animals).

2. Намалюйте у вбудованому в Scratch графічному редакторі фон для сцени: внизу — вузький піщаний берег, а вгорі — лазурове море.

3. Складіть для спрайта акули скрипт, зображений на рис. 3.57.

 

4. Виділіть спрайт кота та складіть для нього скрипт, як на рис. 3.58.

5. Запустіть проект на виконання та поспостерігайте за тим, що відбуватиметься з його героями після виконання заданої у С-блоці якщо умови.

6. Збережіть проект під назвою Впр26_Прізвище.

 

 

ВПРАВА 27

 

Завдання. Створити проект, у якому при введенні кількості кутів геометричної фігури — «3» або «4» — буде побудовано відповідну фігуру — трикутник або квадрат. У випадку іншої відповіді повинно з'явитися повідомлення про помилку.

Проект виконати за поданою блок-схемою на рис. 3.59.

 

 

1. Створіть скрипт (рис. 3.60), завдяки якому буде реалізовано вибір геометричної фігури в залежності від введеного числового значення.

2. Додайте зверху команди, що мають керувати роботою олівця та початкового положення спрайта (рис. 3.61).

3. Самостійно створіть блоки команди повторення для створення зображення трикутника та квадрата. Розташуйте їх у потрібних місцях уже створеного скрипта.

4. Додайте блок, що містить повідомлення про помилку в разі помилкового введення числа.

5. Збережіть проект під назвою Впр27_Прізвище.

Завдання. Створити проект, у якому спрайт при натисненні клавіш 1,2, З, ... буде змінювати певний графічний ефект, а при натисненні клавіші Пропуск має відбуватися очищення графічних ефектів.

1. Завантажте до вікна проекту довільний спрайт або залиште зображення Рудого кота.

2. Задайте скрипт для зміни графічного ефекту спрайта при натисненні клавіші 1:

а) оберіть команду якщо та задайте умову клавішу 1 натиснуто? (команда клавішу 1 натиснуто? розташована в розділі Датчики. Вибираючи значення 1 у списку даної команди, слід скористатися спочатку значенням більше...);

б) всередині команди якщо розташуйте команду змінити ефект колір на 25 (рис. З.62).

 

3. Додайте скрипт, що відповідає за відміну застосованих ефектів (рис. З.6З).

 

4. Розташуйте створені вище скрипти всередині команди завжди та додайте зверху команду коли натиснуто прапорець (рис. З.64).

5. Самостійно додайте до проекту скрипти для зміни графічних ефектів у залежності від натиснення клавіш 2, З, ... (При натисненні клаві-ші2 — ефект вздуття, З — обертання і т. д.)

6. Збережіть проект під назвою Впр28_Прізвище.

 

Завдання. Скласти програму, яка б відтворювала дії світлофора. Використати в проекті спрайти trafific lights_1, trafific lights_2, trafific lights_3 з папки Scratch (папка FILES^BnpaBa_29 на диску). Під час створення сценарію врахувати, що червоний сигнал світлофора, так само як і зелений, має відображатися 2с,а жовтий — лише 0,5 с. Додати до скрипта команду завершення роботи світлофора за умови натиснення на клавішу ^ (стрілка вгору). Зберегти проект під назвою Впр29_Прізвище.

 

Висновки

 

У середовищі Scratch для створення проектів використовують різноманітні комбінації команд повторення та розгалуження.

Розрізняють внутрішні та зовнішні команди. При створенні Scratch-проектів використовують вкладки, коли зовнішнім блоком є команда повторення, а внутрішнім — розгалуження, і навпаки.

Щоб вийти з безумовного циклу, який створено в середовищі Scratch за допомогою команди завжди, використовують одну із заглушок зупинити скрипт або зупини все, яку додають до умовного оператора якщо.

У середовищі Scratch комбінування блоків завжди та якщо рівносильне до команди завжди якщо. Проте оператор завжди якщо виконується швидше, а завдяки сукупності операторів завжди та якщо можна вставити скільки завгодно вкладень умовного оператора, а також використати оператор розгалуження із повною формою якщо — інакше.

 

Контрольні запитання та завдання

1. З якою метою використовують комбінування операторів повторення та розгалуження?

2. Як можна здійснити завершення команди завжди в середовищі Scratch?

3. У чому відмінність оператора завжди якщо від сукупності операторів завжди та якщо?

4. Які види алгоритмів реалізовано завдяки операторам завжди та якщо?

 

ПРАКТИЧНА РОБОТА №5

 

Складання та виконання алгоритмів з повторенням і розгалуженням у визначеному навчальному середовищі виконання алгоритмів

Хід роботи

Завдання 1. Виконавши завдання цієї вправи, ви розробите проект, що відтворюватиме роботу торгового апарата для приготування напоїв. Залежно від сплаченої суми — 2, 4 чи 5 грн — автомат видаватиме чай, каву чи сік відповідно.

1. Відкрийте у вікні програми Scratch файл з шаблоном проекту Automat, збережений на диску в папці Scratch (з папки FILES^nP5 на диску).

2. Виділіть під областю сцени спрайт склянки з напоєм, перейдіть на вкладку Скрипти та складіть сценарій, за яким апарат після натискання на клавіатурі клавіші З видаватиме склянку з чаєм (рис. 3.65).

3. Складіть подібні скрипти для кави та соку.

4. Додайте до сценарію команди

 

запустіть

 

проект на виконання та понатискайте клавіші 2, 4, 5.

5. Збережіть файл під назвою Пр5_1_Прізвище.

Завдання 2. Виконавши завдання, ви створите проект, в якому після натиснення клавіші стрілка вгору ваш спрайт підстрибуватиме, а після натискання клавіш стрілка вліво і стрілка вправо — рухатиметься у відповідному напрямку.

1. Завантажте до проекту спрайт Fantasy13, що міститься в папці Fantasy.

2. Складіть скрипт, який відтворював би рух спрайта у відповідь на натискання клавіші стрілка вгору.

а) Перетягніть на вкладку Скрипти команду якщо та вставте в неї умову клавішу стрілка вгору натиснуто?.

б) Додайте до команди якщо блок команд, які переміщуватимуть спрайт вгору (значення координати у тут має бути додатним).

 

 

в) Потім додайте блок команд, що переміщуватимуть спрайт вниз (значення координати у має бути від'ємним). У вас вийде такий скрипт, як на рис. 3.66.

3. Складіть скрипт, за яким спрайт після натискання клавіш стрілка вправо і стрілка вліво рухатиметься у відповідні сторони (за додатного значення х праворуч, за від'ємного — ліворуч).

4. Збережіть проект під назвою Пр5_2_Прізвище.

 

Це матеріал з підручника Інформатика 7 клас Казанцева

 

Категорія: Інформатика

Автор: admin от 31-01-2017, 06:26, посмотрело: 3129