Алгоритми з повтореннями. Цикл із умовою
Нова українська школа
Урок 39
Інформатика 6
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Алгоритми з повтореннями. Цикл із умовою
Цикл for зручно використовувати для перебору значень із відомої послідовності.
Але доволі часто кількість повторень заздалегідь невідома і дії необхідно повторювати, поки виконується деяка умова.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл while
Цикл while («поки») буде повторюватися, поки виконується задана умова. Ця умова називається умовою циклу і повертає:
або
True
False
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл while
Синтаксис команди:
whіle <умова>:
<тіло циклу>
логічний вираз, що є умовою виконання циклу
команди, які виконуються під час кожної ітерації
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл while
Виконання команди while починається з обчислення значення логічного виразу — умови повторення циклу. Якщо умова:
то виконуються команди тіла циклу і керування повертається на перевірку умови
то виконується команда, яка є наступною після оператора while
істинна
хибна
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл 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
Як працює цикл while
Розгляньте приклад
Для початкового значення х = 7 цикл while х<10 виконається тричі. Після завершення роботи циклу�х = 10.
Програмний код
Результат
8
9
10
x = 7
while x<10:
x = x+1
print(x)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл while
При початковому значенні х = 10 цикл while х<5 не виконається жодного разу.
Якщо вже під час першої перевірки умова циклу while виявиться хибною, тіло циклу не виконається жодного разу.
Програмний код
Результат
x = 10
while x<5:
x = x+1
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл while
Розгляньте приклад
Програма пропонує ввести пароль. Якщо пароль правильний (наприклад, «секрет»), то цикл while припиняє роботу, якщо неправильний — повторює запит паролю.
Введіть пароль:
ааа
Введіть пароль: Таємниця
Введіть пароль: Секрет
Taк, пароль Секрет
password = ''
while password != 'Секрет':
password = input('Введіть пароль: ')
print('Taк, пароль ' +password)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл 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
Як працює цикл while
Цикл працює, поки введено не 'q'
problem = input('Введіть приклад або q ->')
while problem != 'q':
print(problem, ' = ', eval(problem))
problem = input('Введіть приклад або q -> ')
print('Можна відпочити')
Ми можемо показати математичний вираз і його результат в окремому рядку відповіді
У тілі циклу виводиться відповідь на попереднє завдання і вводиться наступне завдання
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Як працює цикл 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
Як працює цикл 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
Нескінченний цикл
Фрагмент програми ілюструє нескінченний цикл:
num = 0
while num < 20:
print (num)
У тілі циклу значення num не змінюється, тому умова num<20 завжди правильна і поданий цикл є нескінченним.
Якщо як умову циклу while задати True, умова ніколи не стане хибною і цикл не завершиться.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Нескінченний цикл
Розгляньте приклад
Програма випробовує витримку людини — у нескінченному циклі пропонує їй розв’язати задачу.
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
Нескінченний цикл
Можна зупинити виконання
нескінченного циклу у вікні консолі IDLE. Для цього у вікні консолі натисніть сполучення клавіш Ctrl + С. Після цього IDLE буде відправлений запит на зупинку програми.
Ctrl
C
+
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Питання для самоперевірки
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Розгадайте ребус
«Ребуси українською» © rebus1.com
Умова
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Домашнє завдання
Проаналізувати
с. 212-217
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Працюємо за комп’ютером
Сторінка
216-217
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 33
Дякую за увагу!
Нова українська школа
Урок 39
Інформатика 6
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.