Інформація про новину
  • Переглядів: 2588
  • Дата: 2-09-2020, 21:37
2-09-2020, 21:37

29. Поняття циклу. Цикл з лічильником

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





Попередня сторінка:  28. Практична робота №6. «Складання та в...
Наступна сторінка:   30. Цикли з умовами

29.1.

ПОНЯТТЯ ЦИКЛУ

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

З повторюваними обчисленнями програмісти стикаються повсякчас. Ви вже знаєте, що в програмуванні багаторазове повторення певної по-

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

29.2.

БЕЗУМОВНИЙ ЦИКЛ

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

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

Рис. 3.136. Блок-схема (а) та відповідний Scratch-блок (б) безумовного циклу

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

ВПРАВА 22

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

1. Створіть змінну кроки.

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

3. Додайте команду надати кроки значення 0. Поки кіт не зробив жодного кроку, це значення дорівнює 0 (рис. 3.137).

4. Додайте оператор безумовного циклу завжди.

5. Всередині цього оператора додайте команди:

— перемістити на 10 кроків — для переміщення кота;

— змінити кроки на 1 — кількість кроків збільшиться на 1. Тобто якщо спочатку це значення було 0, то при першому виконанні циклу значення 0 збільшиться на 1 і дорівнюватиме 1. На другому кроці значення 1 буде збільшено на 1 і дорівнюватиме 2 і так далі;

— наступний образ — для зміни вигляду кота;

— подумати кроки — команда виведе поточне значення кроків;

— аби кіт повертався, коли досягне межі, додайте команду якщо на межі, відбити;

— для затримки відображення образу додайте команду чекати 1 секунд (рис. 3.138).

6. Запустіть проект. Кіт має крокувати, рахуючи свої кроки.

7. Аби кіт завершив рахувати кроки через задану кількість кроків, наприклад, 7, додайте до блоку завжди команду якщо...то.... Як умову додайте блок кроки =

7. Установіть всередині блоку команду зупинити цей скрипт (рис. 3.139).

8. Запустіть проект. На сьомому кроці кіт має завершити підрахунок.

9. Змініть умову зупинення скрипта на таку, що буде зупиняти скрипт після натиснення клавіші пропуск, для цього змініть умову на логічний блок клавішу пропуск натиснуто? (рис. 3.140).

10. Запустіть проект. Через деякий час натисніть клавішу пропуск. Після цього кіт має завершити підрахунок.

11. Змініть проект таким чином, аби кіт повідомляв лише парні кроки. Для цього замініть у команді змінити кроки на значення 1 на 2 (рис. 3.141).

12. Запустіть проект та переконайтеся в правильності його виконання.

13. Збережіть файл з ім’ям Вправа_22.

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

14. Збережіть файл з ім’ям Вправа_22_1.

15*. Створіть ще одну копію файлу та змініть скрипт кота таким чином, аби він рухався у зворотному порядку, рахуючи кроки від 10 до 0.

16. Збережіть файл з ім’ям Вправа_22_2.

29.3.

ЦИКЛ З ЛІЧИЛЬНИКОМ

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

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

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

Рис. 3.142. Блок-схема (а) та відповідний Scratch-блок (б) циклу з лічильником

ВПРАВА 23

Завдання. Створити проєкт-історію про кота Скретча, в якій той збирав би камінці на березі моря та повідомляв їхню кількість. Зауважте: у перший день свого відпочинку він має додати до своєї колекції 1 камінець, у другий день — 2 камінці, у третій — 3 камінці і т. д. Допоможіть Скретчу дізнатися, скільки камінців міститиме його колекція наприкінці відпочинку. Кількість днів для відпочинку має ввести користувач (рис. 3.143).

Розглянемо блок-схему розв’язання задачі (рис. 3.144).

Відповідно до неї користувач спочатку має ввести значення n — кількість днів відпочинку кота.

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

2. Змінна S — це загальна сума камінців. Звичайно, поки кіт нічого не зібрав, то її початкове значення дорівнює 0.

3. Неважко здогадатися, що для знаходження S необхідно скористатися формулою

S=1+2+3+...+n.

4. Далі здійснюється перехід до виконання циклу, який буде повторюватися n разів, тобто стільки, скільки днів відпочиває кіт.

а) Тут до S додається значення кількості камінців на поточний день. Тобто у перший день це буде 0+1=1 камінець.

б) Наступний крок і=і+1 збільшить значення змінної і на 1, тобто номер дня збільшиться на 1 і стане вже дорівнювати 2.

в) Далі знову здійснюється перехід до виконання тіла циклу, тобто команди S=S+i, і на другий день це вже буде 1+2, тобто 3 камінці. Значення і знову збільшиться на 1 завдяки команді і=і+1 і стане дорівнювати 3.

г) Так ці дії будуть виконуватися n разів.

5. Після виконання тіла циклу задану кількість разів буде виведено загальну кількість камінців, зібраних за n днів.

Створіть проект відповідно до наведеної блок-схеми.

1. Додайте до проекту необхідну сцену, спрайт камінця та ще два його образи (аби кіт міг збирати різноманітні камінці). (Зображення камінців розташовано в електронному додатку.)

2. Створіть змінні і, п та S.

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

а) Додайте команду коли прапорець натиснуто, що відповідає блоку Початок на блок-схемі.

б) Для введення п додайте команду запитати Скільки днів я буду відпочивати? і чекати та надати п значення відповідь (рис. 3.145).

в) Додайте команди надання змінній і значення 1 та надання змінній S значення 0 (рис. 3.146).

г) Переходимо до реалізації циклу з лічильником. Для цього додайте блок повторити 10 і замість значення 10 установіть п.

ґ) Усередині цього блоку сформуйте команди змінити S на і та змінити і на 1 (рис. 3.147).

д) Додайте команду виведення кількості камінців (рис. 3.148).

4. Запустіть проект на виконання. Введіть 5. Ви маєте одержати 15.

Удосконалимо проект таким чином, аби в кінці кожного дня кіт повідомляв, скільки в нього вже є камінців.

Нехай нам необхідно сформувати фразу у форматі: у 1-й день — 1, у 2-й день — 3, у 3-й день — 6 і т. д.

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

5. Додайте команду виведення фрази у форматі: у 1-й день — 1, у 2-й день — 3, у 3-й день — 6 і т. д.

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

7. Самостійно визначте, куди необхідно додати створені команди, аби проект працював коректно (рис. 3.149).

8. Запустіть проект. Уведіть 4. Кіт має виводити інформацію про кількість камінців, яку він має наприкінці кожного дня, 4 рази. В останній день це має бути число 1 + 2 + 3 + 4 = 10.

9. Звичайно, проект став би цікавішим, якби ми також бачили процес появи камінців у кота наприкінці кожного дня, для цього створіть скрипт для камінців, попередньо додавши команду коту оповістити камінці (рис. 3.150).

10. Для спрайта камінця додайте команду копи я отримую камінці.

11. Наступною додайте команду повторити 10. Кількість повторень установіть і (що відповідає кількості камінців, які буде додано в поточний день).

12. Всередині цього блоку додайте команду показати для відображення камінця, наступна команда змінити х на 10, для розташування наступного камінця правіше від попереднього.

13. Далі додайте команду штамп (саме вона і створить копію спрайта).

14. Для зміни виду камінця додайте команду змінити образ на випадкове від 1 до 3 (ця команда буде обирати один із наявних у нас трьох образів камінців) (рис. 3.151).

15. Запустіть проект. Уведіть значення 5.

Камінці послідовно мають з’явитися на сцені.

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

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

самого початку. Для цього додайте команди копи прапорець натиснуто, очистити все — для вилучення усіх копій камінця, сховати — для приховування самого спрайта, та перемістити в х=-200 у=-150 (рис. 3.152).

17. Запустіть проект ще раз та введіть число 8.

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

18. Додайте команди, при виконанні яких, якщо камінець досягає межі, то він переміщується в початкову точку по координаті х і на 20 одиниць угору по осі у.

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

б) Після гілки то додайте команди: змінити у на 20, задати х -200 (рис. 3.153).

19. Запустіть проект. Уведіть число 10. Тепер камін ці мають відображатися у декілька рядів.

20. Самостійно вдоскональте цей проект, зробивши так, аби кіт, повідомляючи результат, належним чином відмінював слово «камінець» (наприклад: 1 камінець, 3 камінці, 6 камінців тощо) (рис. 3.154).

Рис. 3.154

21. Збережіть файл з ім’ям Вправа_23.

Висновки

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

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

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

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

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

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

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

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

4. Яким чином можна зупинити виконання безумовного циклу?

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

 

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

 




Попередня сторінка:  28. Практична робота №6. «Складання та в...
Наступна сторінка:   30. Цикли з умовами



^