понеділок, 21 січня 2019 р.

Домашнє завдання 6 клас


Команда циклу. Виконання команди

Більшість алгоритмів містять серії багатократно повторюваних дій.  Для їх опису використовується команда циклу (синоніми - циклічна команда, команда повторення, оператор циклу).
Алгоритми (програми), що містять команду циклу, називаються циклічними.
Кожна циклічна команда має тіло циклу - деяку серію команд, яку інтерпретатор повторює.
Крім того, кожна циклічна команда має умову виконання повторень. Що таке умова? 
Умова - це вислів, про який можна сказати виконується він чи ні.
Якщо умова виконується, то говорять, що вислів істинний, правильним. Якщо ж умова не виконується, то вислів є хибним, неправильним.
      Які з наступних висловів істинні, а які хибні?
 а) всі горобці мають дзьоб
 б) деякі люди побували на Північному полюсі
 в) в жодному місяці немає 50 днів
 г) всі дерева ростуть у лісі
 д) всі діти вчаться у школі
 е) дехто з учнів нашого класу їздив у Київ
 є) деякі учні нашого класу побували на Марсі
 ж) всі учні нашого класу живуть на одній вулиці
 з) жодне слово не починається з букви "м"
 і)  всі слова починаються з букви "а"
 к) в кінці деяких речень стоїть знак питання
 л) доба має 24 години

В мовах програмування умова записується за допомогою операцій порівняння. На Python вони записуються як 

== (дорівнює),
<> (не дорівнює),
> (більше),
< (менше),
>= (більше або дорівнює),
<= (менше або дорівнює).

Наприклад, 5>3 - це умова, що приймає значення істини,   2*8==4*4 - також істинна умова.
Зверніть увагу на те,  що знак ==  означає перевірку умови рівності.
Повторення можна зустріти не лише у задачах з інформатики.
Розглянемо приклад 1. Нам необхідно забити цвях у дошку. Що ми робимо? Ми беремо молоток і вдаряємо по шляпці, якщо цвях все ще стирчить над поверхнею, то ми знову вдаряємо по шляпці. Так продовжується, доки умова істинна. Як тільки умова стала хибною, команда вдаряння по шляпці припиняється.
Намалюємо графічно, як це може виглядати.
Умовою тут виступає запитання: «Цвях стирчить?», тілом циклу є команда «Бах!», що символізує удар по шляпці цвяха.
Знаком «+» позначається виконання умови, цим знаком починається гілка з тілом циклу.
Знаком «-» позначається невиконання умови, цим знаком починається гілка виходу з циклу.
Розглянемо приклад 2. Як вивчити вірш?
У цьому прикладі умовою є  «Вірш не запам'ятав?», а тілом циклу - «Повтори 2 рази».
Розглянемо, який загальний вигляд команди циклу на алгоритмічній мові та мові Python:

алгоритмічна мова
мова Python
поки умова
    пц
             тело циклу
    кц
while  умова :
       тіло циклу
(пц -  початок циклу, кц - кінець циклу)
Зверніть увагу на двокрапку після умови. Це невід'ємна частина команди циклу на мові Python.
Серія команд, що повторюються, на Python відділяється відступами і тільки відступами (ніяких "операторних дужок" BEGIN -END (як у Pascal) чи фігурних дужок (як у С++)).
Цей оператор виконується наступним чином. Перевіряється умова. Якщо вона виконується, тобто має значення TRUE (правда,істина, +), то виконується тіло циклу. Знову перевіряється умова, якщо вона істинна, то знову виконується тіло циклу. Так повторюється, поки умова не перестане виконуватися. Тобто прийме значення FALSE (неправда, хиба, -). Як тільки це трапилося повторення дій припиняється, управління передається оператору, що є наступним за оператором циклу.

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

Буквальне розуміння прислів'я «Сім разів відміряй, один раз відріж» потребує використання команди циклу.
По-перше, нехай комп'ютер сам ніби «загинає пальці» і підраховує, скільки відмірювань здійснено.  Для цього введемо змінну, що буде грати роль лічильника кількості дій відмірювань. Нехай це буде змінна і. Нехай спочатку вона має значення 1
i=1
Що буде тілом циклу, тобто які команди будуть повторюватися? Звичайно, це «відміряй» і збільшення лічильника відмірювань на одиницю. Скільки разів має виконатися тіло циклу? За прислів'ям рівно сім. Тобто умова циклу має бути такою, щоб вона була істинною 7 разів, а потім стала хибною. Це може бути, наприклад, така умова:   i<=7. Тоді цикл буде виглядати так:
алгоритмічна мова
мова Python
i=1
поки i<=7
      пц
            «відміряй»
            i=i+1
      кц
«відріж»
i=1
while i<=7:
           «відміряй»
           i=i+1
«відріж»     

Виконаємо цю команду:
Змінна і набуває значення 1. Перевіряємо умову 1<=7, вона істинна, тому заходимо в тіло циклу. Відбувається команда «відміряй», змінна і набуває попереднього значення, збільшеного на 1.
Останній абзац будемо писати скорочено, відмічаючи «+» істинність умови і «-» її хибність:
Виконання
i=1
1<=7  +
«відміряй»
i=1+1=2
2<=7  +
«відміряй»
i=2+1=3
3<=7  +
«відміряй»
i=3+1=4
4<=7  +
«відміряй»
i=4+1=5
5<=7  +
«відміряй»
i=5+1=6
6<=7  +
«відміряй»
i=6+1=7
7<=7  +
«відміряй»
i=7+1=8
8<=7  -
«відріж»
Умова циклу хибна, тому циклічна команда завершила роботу. Скільки разів виконалось тіло циклу? Стільки, скільки разів була істинна умова, тобто 7. Скільки відбулось відмірювань? Подимившись на виконання, легко побачити, що їх було 7. Яке значення змінної і  після виходу з циклу? Дивимось на виділену більшим шрифтом стрічку виконання, це остання зміна значення змінної і. Отже, і має значення 8.
Після циклу стоїть команда «відріж». Вона  не відноситься до тіла циклу, оскільки у алг.мові розташовується після пц, а у мові Python стоїть без відступу.

Якщо нам треба повторити серію команд 4 рази, використовуємо наступну циклічну команду:
i=1
while i<=4:
            Серія команд
             i=i+1
Якщо серія команд має виконатися 3 рази, то команда циклу виглядатиме так:
i=1
while i<=3:
            Серія команд
       i=i+1

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

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