11 квітня 2018 р.

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

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

Розглянемо таку задачу.
Задача 1. Є діжка, відро і колодязь з водою. Використовуючи відро, потрібно наповнити діжку водою.
Ми вже розглядали аналогічну задачу на заповнення діжки водою. Але там було відомо, що діжка та відро порожні, а також ми знали їх ємності. Тому в тій задачі можна було одразу визначити, що для наповнення діжки команди тіла циклу потрібно виконати 5 разів.



Оскільки в цій задачі невідомо, чи є вода в діжці, чи діжка порожня, ні ємність діжки, ні ємність відра, то визначити, скільки разів потрібно виконати команди тіла циклу, не можливо.
Розглянемо виконавця з такою системою команд:
1.Наповнити відро водою.
2.Вилити воду з відра в діжку.
3.Перевірити умову «Діжка не повна?».
Алгоритм розв'язування цієї задачі для розглянутого виконавця у словесній формі виглядатиме так:
1.Перевірити умову «Діжка не повна?»
2.Якщо істина, то виконати команду 3, інакше (якщо хиба) виконати команду 6.
3.Наповнити відро водою.
4.Вилити воду з відра в діжку.
5.Виконати команду 1.
6.Закінчити виконання алгоритму.

Блок-схему цього алгоритму

Діжка може одразу бути повною. У такому разі команди тіла циклу не виконуватимуться жодного разуРозглянутий вище циклі називається циклом з передумовоюЗагальний вигляд циклу з передумовою наведено на рисунку.
Виконання цього циклу відбувається так: 
- виконавець виконує команду перевірки умови
- якщо результат виконання цієї команди істина, то виконавець виконує команди тіла циклу, після чого знову виконує команду перевірки умови;
якщо ж результат виконання команди перевірки умови хиба, то виконавець переходить до виконання першої команди наступного фрагмента алгоритму.
У Scratch можна використати команду:

для організації циклу з передумовою. Але на відміну від стандартного циклу з передумовою, команди тіла циклу з передумовою в Scratch виконуватимуться, якщо результат виконання команди перевірки умови буде хиба. Якщо ж результат виконання команди перевірки умови буде істина, то команди тіла циклу виконуватимуться не будуть.
Наприклад,        виконуючи        команду        циклу        з        передумовою
Виконавець виконуватиме команду тіла циклу переміститись на 10 кроків, якщо результат виконання команди перевірки умови значення х < 20 хиба, тобто якщо абсциса положення виконавця на Сцені не менша (більша або дорівнює) ніж 20. І навпаки, якщо результат виконання команди перевірки умови значення х < 20 істина, тобто якщо абсциса положення виконавця на Сцені менша ніж 20, виконавець не виконуватиме команду переміститись на 10 кроків, а виконуватиме команду, наступну за цим циклом.
Аналогічно виконуючи команду циклу

виконавець       переміщуватиметься на 10 кроків, якщо він не доторкається до границі Сцени. Як тільки виконавець доторкнеться до границі Сцени, виконання команди переміщення не відбудеться і виконавець зупиниться біля границі.
У Scratch є й інші команди, які можна використати для організації циклу з передумовою, наприклад команда коли натиснуто клавішу. Наприклад, цикл виконується так:

1.Виконується команда перевірки умови натиснуто клавішу стрілка вправо?
2.Якщо результат виконання цієї команди істина, виконується команда переміститись на 10 кроків, після чого знову перевіряється вказана умова, а якщо хиба — команда тіла циклу не виконується.
Наведемо приклад алгоритму, виконуючи який, виконавець рухається вправо за натиснутої клавішістрілка вправо. Дійшовши до правої границі Сцени, виконавець з'являється біля лівої границі Сцени і продовжує рух управо.
Підготовка до практичної роботи № 8 "Реалізація циклічних алгоритмів у середовищі Скретч"
1.     Запустіть програму Scratch.
2.     Складіть і виконайте алгоритми, щоб отримати зображення, наведене на рисунку 1 та на рисунку 2.


Рис 1









Рис 2
Використанно з http://hochyvseznatu.blogspot.com/2017/03/urok-24.html

Немає коментарів:

Дописати коментар