Алгоритм і блок-схеми: лінійні, розгалужені й циклічні
Перш ніж писати код, треба чітко знати, що саме має робити програма. Розбираємося, що таке алгоритм, які властивості відрізняють його від «інструкції на око», як його записують і малюють — і як кожна з трьох базових структур виглядає в Python.

Що таке алгоритм
Алгоритм — це скінченна послідовність точних і зрозумілих дій, яка перетворює вхідні дані на результат. Слово «точних» тут головне: інструкцію «посоліть за смаком» людина виконає, а комп’ютер — ні, бо не знає, скільки це.
Будь-який алгоритм працює з даними трьох видів:
- вхідні — те, що задаємо на початку: довжина й ширина прямокутника;
- проміжні — те, що обчислюється по дорозі: сума двох сторін;
- вихідні — результат, заради якого все починалось: периметр.
Коли алгоритм записаний мовою програмування, його називають програмою. Тобто програма — не щось принципово інше, а той самий алгоритм, записаний так, щоб його міг виконати комп’ютер.
Сім властивостей, без яких це не алгоритм
Кожну властивість найпростіше зрозуміти через те, що ламається, коли її немає.
| Властивість | Що означає | Що буває без неї |
|---|---|---|
| Скінченність | Алгоритм завершується за скінченну кількість кроків | Цикл без умови виходу — програма «зависає» назавжди |
| Елементарність (зрозумілість) | Кожен крок виконавець уміє виконати | Крок «розв’яжи рівняння» без пояснення, як саме |
| Дискретність | Процес поділено на окремі послідовні кроки | Неможливо сказати, який крок виконується зараз |
| Детермінованість | Однакові вхідні дані — завжди однаковий результат | «Візьміть кілька чисел» — у кожного вийде своє |
| Результативність | Є результат або повідомлення, що розв’язку немає | Програма завершилась, але невідомо, чим |
| Масовість | Працює для класу задач, а не одного набору чисел | Площа лише для прямокутника 3 × 5 |
| Ефективність | Результат за розумну кількість кроків і ресурсів | Перебір, який закінчиться через тисячу років |
Способи запису: словами, символами, схемою
Один і той самий алгоритм можна записати трьома способами. Візьмемо переведення швидкості з кілометрів за годину в метри за секунду:
| Спосіб | Як виглядає | Коли зручний |
|---|---|---|
| Вербальний | «Візьміть швидкість у км/год, помножте на 1000 і поділіть на 3600» | Пояснити ідею людині |
| Символьний | v_ms = v_kmh * 1000 / 3600 | Точний запис: псевдокод або мова програмування |
| Графічний | Блок-схема з фігур і стрілок | Побачити структуру: де розгалуження, де цикл |
Загальноприйнятими вважають два останні способи, і на практиці їх поєднують: спершу схема, щоб продумати логіку, потім — код.
Базові блоки блок-схем
Блок-схема — це набір фігур, з’єднаних стрілками. Форма фігури каже, що відбувається на кроці, текст усередині — що саме. Позначення описані міжнародним стандартом ISO 5807; у навчальних роботах найчастіше потрібні шість:
- Термінатор (овал) — початок і кінець алгоритму.
- Дані (паралелограм) — введення вхідних даних або виведення результату.
- Процес (прямокутник) — обчислення чи присвоєння, наприклад
S = a * b. - Рішення (ромб) — перевірка умови; у навчальних схемах з нього виходять два шляхи: «так» і «ні».
- Межа циклу (прямокутник зі зрізаними кутами) — пара блоків, що відкриває і закриває цикл.
- Визначений процес (прямокутник із подвійними бічними лініями) — виклик окремої підпрограми чи функції.
Лінійна структура: крок за кроком
У лінійному алгоритмі дії виконуються одна за одною, в єдиному порядку, без пропусків і повторів. Блоки на схемі стоять у тому ж порядку, в якому виконуються.
Той самий алгоритм у Python — рядок коду на кожен блок схеми:
a = float(input("Довжина a: "))
b = float(input("Ширина b: "))
p = 2 * (a + b)
print("Периметр:", p)Функції input, float і print детально розберемо в третьому уроці; зараз важливо помітити відповідність: введення → обчислення → виведення.
Розгалужена структура: вибір шляху
Часто наступна дія залежить від даних. Алгоритм, у якому залежно від умови виконується одна чи інша послідовність дій, називають розгалуженим, а кожну таку послідовність — гілкою. Розрізняють дві форми:
- Повна — у кожної гілки свої дії: якщо умова істинна, робимо одне, інакше — інше. У Python це
if … else. - Неповна — дії є лише в одній гілці, друга просто обходить їх. У Python —
ifбезelse.
a = float(input("a = "))
b = float(input("b = "))
if b == 0:
print("Ділити на нуль не можна")
else:
c = a / b
print("c =", c)==. Один знак = — це присвоєння, і рядок if b = 0: Python відхилить як синтаксичну помилку.Циклічна структура: повторення
Багато задач зводяться до того, щоб повторити ті самі обчислення з різними значеннями. Ділянку, що повторюється, називають тілом циклу, змінну, яка змінюється від повторення до повторення, — параметром циклу, а одне виконання тіла — ітерацією.
Цикл із лічильником
Кількість повторень відома наперед: задано початкове й кінцеве значення лічильника та крок. Такі цикли ще називають регулярними або арифметичними. Приклад — сума чисел від 1 до n:
n = int(input("n = "))
s = 0
for i in range(1, n + 1): # i = 1, 2, …, n
s = s + i
print("Сума:", s) # для n = 5: Сума: 15range(1, n + 1) не включає праву межу, тому до n додаємо 1 — це одна з найчастіших помилок на старті.
Ітераційний цикл
Кількість повторень наперед невідома: цикл триває, доки виконується умова, і вона залежить від проміжного результату. Типовий приклад — обчислення із заданою точністю: додаємо члени ряду 1 + 1/2 + 1/4 + …, поки черговий член не стане меншим за ε.
eps = 0.001
term = 1.0 # поточний член ряду
total = 0.0
while term > eps:
total = total + term
term = term / 2
print(total) # 1.998046875 — сума наближається до 2term = term / 2), цикл не завершиться — пряме порушення скінченності. Зупинити таку програму можна клавішами Ctrl+C.Вкладені цикли
Цикл може стояти всередині тіла іншого циклу. Зовнішній охоплює внутрішній повністю — межі внутрішнього не виходять за межі зовнішнього. На кожну ітерацію зовнішнього циклу внутрішній проходить усі свої значення від початку до кінця:
for row in range(1, 4): # зовнішній: 1, 2, 3
for col in range(1, 4): # внутрішній: 1, 2, 3 для кожного row
print(row * col, end=" ")
print() # новий рядок1 2 3
2 4 6
3 6 9Внутрішній лічильник змінюється швидше: поки row робить один крок, col проходить повне коло. Так улаштована робота з таблицями, матрицями й більшістю двовимірних даних.
Міні-курс Python з нуля
Усі матеріали курсу по порядку. Програма, завдання лабораторної та інформація про авторку — на головній сторінці курсу.
- Урок 1 · 9 хв · ви тутАлгоритм і блок-схемиВластивості алгоритму, способи запису, базові блоки й три структури — лінійна, розгалужена, циклічна — з кодом Python.
- Урок 2 · 8 хвЯк Python виконує кодКомпілятор проти інтерпретатора, байткод, встановлення Python 3.12+, REPL, «Дзен Python» і перша програма в IDLE.
- Урок 3 · 9 хвPython як калькуляторСім арифметичних операторів і пріоритети, модуль math, змінні, типи даних і перетворення введення.
- Практика · 10 хвЛабораторна робота №1 покроковоОбидва завдання на прикладах, переклад формул у Python, перевірка ОДЗ, чекліст звіту й контрольні запитання.
Перевір себе
Нічим принципово: програма — це алгоритм, записаний мовою програмування так, щоб його міг виконати комп’ютер.
Скінченність: алгоритм мусить завершуватися за скінченну кількість кроків.
У повній формі дії є в обох гілках (if … else), у неповній — лише в одній (if без else).
Коли кількість повторень наперед невідома й залежить від проміжного результату — наприклад, обчислення до досягнення заданої точності.
Далі: як Python виконує код
У другому уроці — інтерпретатор, встановлення Python і перша програма. Перейти до уроку 2