1 of 21

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

Нова українська школа

Урок 39

Інформатика 6

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

2 of 21

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

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

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

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

3 of 21

Як працює цикл while

Цикл while («поки») буде повторюватися, поки виконується задана умова. Ця умова називається умовою циклу і повертає:

або

True

False

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

4 of 21

Як працює цикл while

Синтаксис команди:

whіle <умова>:

<тіло циклу>

логічний вираз, що є умовою виконання циклу

команди, які виконуються під час кожної ітерації

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

5 of 21

Як працює цикл while

Виконання команди while починається з обчислення значення логічного виразу — умови повторення циклу. Якщо умова:

то виконуються команди тіла циклу і керування повертається на перевірку умови

то виконується команда, яка є наступною після оператора while

істинна

хибна

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

6 of 21

Як працює цикл while

Розгляньте приклад

Для послідовного перебору цілих чисел із діапазону [0; 10) можна використовувати цикл for.

Дії, які виконує цикл for, повністю відповідають циклу while:

for i in range(10):

print(i)

i=0

while i<10:

print(i)

i = i+1

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

7 of 21

Як працює цикл while

Розгляньте приклад

Для початкового значення х = 7 цикл while х<10 виконається тричі. Після завершення роботи циклу�х = 10.

Програмний код

Результат

8

9

10

x = 7

while x<10:

x = x+1

print(x)

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

8 of 21

Як працює цикл while

При початковому значенні х = 10 цикл while х<5 не виконається жодного разу.

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

Програмний код

Результат

x = 10

while x<5:

x = x+1

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

9 of 21

Як працює цикл while

Розгляньте приклад

Програма пропонує ввести пароль. Якщо пароль правильний (наприклад, «секрет»), то цикл while припиняє роботу, якщо неправильний — повторює запит паролю.

Введіть пароль:

ааа

Введіть пароль: Таємниця

Введіть пароль: Секрет

Taк, пароль Секрет

password = ''

while password != 'Секрет':

password = input('Введіть пароль: ')

print('Taк, пароль ' +password)

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

10 of 21

Як працює цикл while

Розгляньте приклад

Напишемо програму, в якій людина вводить із клавіатури математичний вираз і отримує відповідь. Для обчислення значення виразу використовують функцію eval(), яка опрацьовує рядок символів так, як і Python IDLE. Цикл while працює, поки людина не введе q.

problem = input('Введіть приклад або q ->')

while problem != 'q':

print(problem, ' = ', eval(problem))

problem = input('Введіть приклад або q -> ')

print('Можна відпочити')

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

11 of 21

Як працює цикл while

Цикл працює, поки введено не 'q'

problem = input('Введіть приклад або q ->')

while problem != 'q':

print(problem, ' = ', eval(problem))

problem = input('Введіть приклад або q -> ')

print('Можна відпочити')

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

У тілі циклу виводиться відповідь на попереднє завдання і вводиться наступне завдання

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

12 of 21

Як працює цикл while

Розгляньте приклад

У циклі триває побудова відрізків і поворот Черепашки на 170°, поки Черепашка не повернеться в точку (0, 0) (abs(рos())<1).

from turtle import*

color('blue', 'yellow')

begin_fill()

forward (200)

while abs(pos())>1:

left(170)

forward (200)

end_fill()

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

13 of 21

Як працює цикл while

Розгляньте приклад

Вкладник поклав до банку 1000 грн під 15% річних. Через скільки років сума на рахунку подвоїться?

s = 1150.0

s = 1322.5

s = 1520.88

s = 1749.01

s = 2011.36

Через 5 років 2011.36 грн

s = 1000

n = 0

while s<2000:

n = n+1

s = s+s*0.15 # Збільшення суми внеску на 15%

print('s = ',round(s, 2))

# Значення s виводиться з 2 знаками після коми

print('Через', n, 'років', round(s, 2), 'грн')

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

14 of 21

Нескінченний цикл

Фрагмент програми ілюструє нескінченний цикл:

num = 0

while num < 20:

print (num)

У тілі циклу значення num не змінюється, тому умова num<20 завжди правильна і поданий цикл є нескінченним.

Якщо як умову циклу while задати True, умова ніколи не стане хибною і цикл не завершиться.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

15 of 21

Нескінченний цикл

Розгляньте приклад

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

from random import randint

while True :

a = randint(1,10)

b = randint(1,10)

print(a, '+', b)

x = int(input('=?'))

if a+b == x: print('Так')

else: print('Ні')

Змінні а і b набувають випадкових значень в межах від 1 до 10

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

16 of 21

Нескінченний цикл

Можна зупинити виконання

нескінченного циклу у вікні консолі IDLE. Для цього у вікні консолі натисніть сполучення клавіш Ctrl + С. Після цього IDLE буде відправлений запит на зупинку програми.

Ctrl

C

+

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

17 of 21

Питання для самоперевірки

  1. Поясніть структуру та правила виконання циклу з умовою.
  1. Опишіть відмінність у використанні циклу з параметром і циклу з умовою.
  1. Коли випадку цикл while не виконається жодного разу?
  1. У якому випадку виникає «нескінченний цикл»?

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

18 of 21

Розгадайте ребус

«Ребуси українською» © rebus1.com

Умова

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

19 of 21

Домашнє завдання

Проаналізувати

с. 212-217

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

20 of 21

Працюємо за комп’ютером

Сторінка

216-217

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 33

21 of 21

Дякую за увагу!

Нова українська школа

Урок 39

Інформатика 6

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.