📖 Зміст
Частина 1: Світ програмування навколо нас
Частина 2: Алфавіт і словник програмування
Частина 3: Будуємо перші програми
Частина 4: Наш дивовижний мозок
Частина 5: Творчі проекти
Частина 6: Програмування в реальному світі
Частина 7: Від електрики до штучного інтелекту
Глава 8 з 27
2: Алфавіт і словник програмування
Закріпи розділ — картки
Розділ 8: цикли — картки
Інтервальне повторення для цього розділу
Увійдіть, щоб займатися
Розділ 8: "Цикли: карусель повторень"
Був сонячний день, і Професор Біт запропонував Алісі відвідати парк атракціонів. Коли вони підійшли до каруселі, Аліса з захопленням спостерігала, як та кружляє знову й знову.
— Дивись, карусель! — вигукнула Аліса. — Вона весь час повторює один і той самий рух.
— Чудове спостереження! — кивнув Професор. — І це чудовий приклад того, що в програмуванні називається циклом.
— Циклом? — перепитала Аліса.
— Так, цикл — це команда, яка змушує комп'ютер повторювати певні дії кілька разів або до виконання певної умови, — пояснив Професор. — Уяви, що тобі потрібно написати програму, яка виводить на екран числа від 1 до 5.
Професор дістав свій планшет і показав два варіанти коду:
python
Без використання циклу
print(1)
print(2)
print(3)
print(4)
print(5)
python
З використанням циклу
for i in range(1, 6):
print(i)
— Обидва варіанти роблять одне й те саме, — пояснив він, — але з циклом код коротший, і його легше змінити. Наприклад, якщо нам знадобиться вивести числа від 1 до 100, у другому випадку потрібно буде просто змінити одне число.
Байт радісно підстрибнув:
— Цикли дуже корисні, коли потрібно повторити одну дію багато разів!
Професор замріяно подивився на карусель і тихо продекламував:
Тісняться криги в берегах,
Скидаючи важкі окови.
Весна зеленим по снігах
Для літа тче стежки шовкові.
За літом осінь рознесе
По світу пахощі врожаю.
І світ невпинно вдаль тече,
Життєвий цикл не знає краю.
Кружляє часу карусель,
Боки планети сонцем гріє,
Змінивши ночі акварель,
І холод на очах тепліє.
Той нескінченний алгоритм
Дає енергію машині,
Покірний код карбує ритм,
Змінивши наслідком причини.
Струмує часу джерело,
У лабіринтах днів стікає.
За «якщо» завжди прийде «то» —
Відбудеться, не висихає!
Аліса, Професор і Байт сіли на лавочку з морозивом і продовжили розмову.
— У природі ми бачимо безліч циклів, — зауважила Логік, приєднуючись до компанії. — Зміна дня і ночі, пір року, фази Місяця — все це природні цикли.
— А які цикли бувають у програмуванні? — зацікавилась Аліса.
— Є два основні типи циклів, — відповів Професор. — Цикл із заданою кількістю повторень і цикл з умовою.
Він показав на планшеті:
python
Цикл із заданою кількістю повторень (for)
for i in range(5): # Повторити 5 разів
print("Це виконається 5 разів")
python
Цикл з умовою (while)
count = 0
while count < 5: # Виконувати, поки count менше 5
print("Це теж виконається 5 разів")
count = count + 1
— У першому випадку, — пояснив Професор, — ми одразу вказуємо, скільки разів потрібно повторити дію. У другому — задаємо умову, за якої цикл повинен продовжуватись.
— Як на каруселі! — здогадалась Аліса. — Вона крутиться певну кількість кіл, а потім зупиняється.

— Саме так! — підтвердив Професор. — А от коли дощ іде, поки не розвіються дощові хмари — це приклад циклу з умовою.
Байт показав на своєму екрані мультяшного чоловічка:
— Дивись, я можу змусити його рухатися за допомогою циклу:
python
for крок in range(10):
крокувати_вперед()
if крок % 2 == 0: # Якщо номер кроку парний
підняти_руку()
else:
опустити_руку()
— Бачиш, — продовжив Професор, — всередині циклу можуть бути різні команди, включаючи умови. Це дозволяє створювати складні алгоритми.
Коли вони проходили повз автомат з іграшками, Аліса зупинилась:
— Дивіться, хлопчик намагається дістати іграшку. Він уже втретє кидає монетку.
— Це схоже на цикл while, — звернув увагу Професор. — Він буде повторювати спроби, поки не дістане іграшку або поки не закінчаться монетки. У програмуванні це могло б виглядати так:
python
монетки = 5
іграшка_отримана = Falsewhile монетки > 0 and not іграшка_отримана:
іграшкаотримана = спробадістати_іграшку()
монетки = монетки - 1
if іграшка_отримана:
print("Ура! Вийшло!")
else:
print("На жаль, монетки закінчились...")
— А що означає крок % 2 == 0 у прикладі з чоловічком? — запитала Аліса.
— Символ % — це операція "модуль" або залишок від ділення, — пояснив Професор. — крок % 2 дає залишок від ділення змінної крок на 2. Якщо залишок дорівнює нулю, значить число парне.
Байт доповнив:
— Ця перевірка дозволяє робити різні дії для парних і непарних кроків. На парних кроках ми піднімаємо руку, на непарних — опускаємо. Так виходить, що чоловічок махає рукою під час руху.
— Цикли можуть бути і вкладеними, — додав Професор. — Тобто всередині одного циклу може знаходитись інший.
python
Таблиця множення
for i in range(1, 11):
for j in range(1, 11):
print(i, "x", j, "=", i * j)
print("---") # Роздільник між рядками таблиці
— Тут зовнішній цикл перебирає числа від 1 до 10, а для кожного такого числа внутрішній цикл теж перебирає числа від 1 до 10, — пояснив він. — Так виходить повна таблиця множення.
— А що буде, якщо цикл ніколи не закінчиться? — запитала Аліса.
— Це називається "нескінченний цикл", — відповіла Логік. — У такому випадку програма виконуватиметься вічно, поки хтось її не зупинить.
— Іноді нескінченні цикли створюються навмисно, — додав Професор. — Наприклад, операційна система комп'ютера працює в нескінченному циклі, постійно перевіряючи, чи не натиснув користувач якусь клавішу або кнопку миші.
python
while True:
перевіритиввідкористувача()
оновити_екран()
дочекатись(0.01) # Маленька пауза для економії ресурсів
— Але частіше нескінченні цикли — це помилка програміста, — попередив Професор. — Наприклад, якщо забути збільшувати лічильник у циклі while:
python
count = 0
while count < 5:
print("Це виконається нескінченно!")
# Забули додати count = count + 1
— У цьому випадку count завжди дорівнюватиме 0, і умова count < 5 завжди буде істинною, — пояснив він. — Програма нескінченно виводитиме одне й те саме повідомлення.
Коли вони проходили повз атракціон "Американські гірки", Аліса помітила:
— Дивіться, поїзд рухається по одному й тому самому шляху знову й знову!
— Так, багато природних і механічних процесів циклічні, — кивнув Професор. — Але в програмуванні є ще одна важлива особливість циклів — ми можемо перервати цикл достроково або пропустити деякі ітерації.
python
for i in range(10):
if i == 5:
break # Перериваємо цикл, якщо i дорівнює 5
print(i) # Будуть виведені числа 0, 1, 2, 3, 4for i in range(10):
if i % 2 == 0:
continue # Пропускаємо ітерацію, якщо i парне
print(i) # Будуть виведені числа 1, 3, 5, 7, 9
— Команда break повністю перериває цикл, а continue пропускає тільки поточну ітерацію і переходить до наступної, — пояснив Професор.
Завдання
*
*
*Підказка: використовуй цикл для управління кількістю рядків, і ще один цикл для визначення кількості зірочок у кожному рядку.