EZZ-SCHOOLBOOKS
Гончарук Олександр
Розділ підручника:ПР 16• с. 231
ПР 16⏱ 45 хвСкладність: ⭐⭐🏆 +100 XPПрограма МОН 100%

Створення програми «Квадрат Полібія» (криптографія)

За підручником: О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов. «Інформатика, 9 клас» (Видавництво «Ранок», 2026)• друкована с. 231
Розробник платформи:Гончарук Олександр
👩‍🏫Методичні акценти для вчителя • План проведення уроку на 45 хвНУШ
▼
🎯 Очікувані результати навчання (НУШ):

Формування предметних компетентностей за темою «Створення програми «Квадрат Полібія» (криптографія)», розвиток критичного мислення, вміння аналізувати причинно-наслідкові зв'язки та застосовувати набуті знання на практиці.

💬 Провокативне питання для старту:

Використайте блок «Гачок (Hook)» нижче для 2-хвилинної розминки з класом перед поясненням нового матеріалу.

⏱️ Рекомендований таймінг 45-хвилинного уроку:
0–5 хв
Гачок & Місія
5–20 хв
Теорія & Інтерактив
20–30 хв
Робота «У зошит»
30–40 хв
Бос-тест уроку
40–45 хв
Рефлексія & XP
📋 Готовий запис для електронного журналу (НЗ.ua / Human / Єдина Школа):

Тема: ПР 16. Створення програми «Квадрат Полібія» (криптографія). Д/з: опрацювати матеріал уроку та завдання «У зошит» на платформі EZZ-SCHOOL BOOKS.

⚡ Фронтальне бліц-опитування класу на початку уроку (2 хв):
  1. Що є ключовим поняттям теми «Створення програми «Квадрат Полібія» (криптографія)» і чому воно важливе?
  2. Де у повсякденному житті, науці чи IT ми стикаємося з цим явищем/алгоритмом?
  3. Яка найпоширеніша помилка виникає під час першого знайомства з матеріалом?
🏠 Диференційоване домашнє завдання:
  • Базовий рівень (обов'язковий): опрацювати конспект і блок «У зошит».
  • Достатній рівень: скласти власну шпаргалку та пройти MiniCheck.
  • Високий / STEM: виконати симуляцію у лабораторії та скласти BossQuiz на 100 XP.
📊 Критерії формувального оцінювання:
1–6 б: Відтворює означення, виконує вправи за алгоритмом.
7–12 б: Самостійно розв'язує проблеми, аналізує моделі.
🎯

Твоя місія на цей урок

Натискай на цілі у міру їх опанування:

5 цілей
  • 1Засвоїти фундаментальні принципи класичної криптографії та шифрів заміни.
    Опанувати ➔
  • 2Побудувати двовимірний список buk розміром 6×6 для представлення розширеного українського алфавіту.
    Опанувати ➔
  • 3Реалізувати алгоритм шифрування shifrText(): перетворення кожної літери на пару координат (номер рядка, номер стовпця).
    Опанувати ➔
  • 4Реалізувати алгоритм дешифрування rozshText(): відновлення оригінального тексту з пар цифр за допомогою методу split().
    Опанувати ➔
  • 5Створити графічний інтерфейс Tkinter із полями введення та кнопками керування.
    Опанувати ➔
🎯 Гачок уроку • Вгадай

🕵️ Таємне листування античних полководців у вікні Python!

Близько 2200 років тому давньогрецький історик та воєначальник Полібій винайшов метод передачі секретних повідомлень смолоскипами між вежами за допомогою таблиці координат. Сьогодні цей класичний криптографічний алгоритм — Квадрат Полібія — стане основою вашої власної програми шифрування!

1. Мета та покроковий алгоритм виконання

Мета роботи: Реалізувати класичний алгоритм криптографії — квадрат Полібія для української абетки (матриця 6×6): шифрування відкритого тексту в послідовність пар координат (рядок, стовпець) та зворотне дешифрування шифротексту.

Повний код шифратора та дешифратора:

# Таблиця Полібія 6x6 для 33 літер української абетки + розділові знаки:
grid = [
    ['А', 'Б', 'В', 'Г', 'Ґ', 'Д'],
    ['Е', 'Є', 'Ж', 'З', 'И', 'І'],
    ['Ї', 'Й', 'К', 'Л', 'М', 'Н'],
    ['О', 'П', 'Р', 'С', 'Т', 'У'],
    ['Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ'],
    ['Ь', 'Ю', 'Я', ' ', '.', '!']
]

def encrypt(text):
    result = []
    for char in text.upper():
        for r in range(6):
            for c in range(6):
                if grid[r][c] == char:
                    result.append(f"{r + 1}{c + 1}")
    return " ".join(result)

def decrypt(cipher):
    chars = []
    pairs = cipher.split()
    for p in pairs:
        r = int(p[0]) - 1
        c = int(p[1]) - 1
        chars.append(grid[r][c])
    return "".join(chars)

# Тест:
msg = "СЛАВА УКРАЇНІ"
cipher = encrypt(msg)
print(f"Шифротекст: {cipher}")
print(f"Розшифровано: {decrypt(cipher)}")
6×6
Криптографічний Квадрат Полібія (ПР 16)

Шифрування та Дешифрування за Координатами

Алфавіт: 33 букви + 3 знаки (36 комірок)
Таблиця букв: рядок i × стовпець j
i \ j
0
1
2
3
4
5
0
А
Б
В
Г
Ґ
Д
1
Е
Є
Ж
З
И
І
2
Ї
Й
К
Л
М
Н
3
О
П
Р
С
Т
У
4
Ф
Х
Ц
Ч
Ш
Щ
5
Ь
Ю
Я
'
,
.
# Алгоритм шифрування:
if vp[k] == buk[i][j]: sh = sh + str(i) + str(j) + ' '

2. Чому Полібій випередив свій час на 2000 років?

Давньогрецький історик Полібій (II ст. до н.е.) винайшов не просто шифр, а першу в історії систему цифрового кодування сигналів! Замість літер грецькі воїни піднімали факели: наприклад, 2 факели ліворуч і 3 факели праворуч означали літеру з координатами (2, 3). Це прямий пращур азбуки Морзе та двійкового коду сучасних комп'ютерів!

📋 Технологічна карта виконання Практичної роботи 16: Криптографічний квадрат Полібія у Python

Програмне забезпечення: Python 3.x / IDLE

Етап роботиОперація, гарячі клавіші та діяОчікуваний результат
Крок 1. Створення таблиці ПолібіяСтворити матрицю 6×6 з літерами українського алфавіту (33 літери + пробіл, крапка, знак оклику)Двовимірна таблиця координат криптографічної заміни
Крок 2. Алгоритм шифруванняКожну літеру вхідного повідомлення замінити парою чисел (номер рядка, номер стовпця)Слово «МОВА» → координати пар чисел, наприклад: «32 41 13 11»
Крок 3. Обробка пробілів та регіструПеревести текст у верхній регістр .upper(), замінити пробіли на спеціальний код або символУніфікований текст, готовий до посимвольного кодування
Крок 4. Алгоритм дешифруванняПрийняти рядок координатних пар, за першою цифрою знайти рядок, за другою — стовпець у матриціВідновлення початкового відкритого тексту без спотворень
Крок 5. Консольний інтерфейс користувачаСтворити меню: 1 — Зашифрувати, 2 — Розшифрувати, 3 — Вийти; протестувати на секретному повідомленніПрацююча програма-шифратор для захисту повідомлень

🎯 Критерії оцінювання практичної роботи (НУШ 12 балів)

Рівень навчальних досягненьВимоги до виконаного практичного завдання
Початковий (1–3 б.)Розуміє принцип заміни символу на пару координат за квадратом Полібія.
Середній (4–6 б.)Реалізує функцію шифрування одного слова без розділових знаків.
Достатній (7–9 б.)Написано повний модуль шифрування та дешифрування речень із коректною обробкою пробілів.
Високий (10–12 б.)Створено повноцінний криптографічний додаток із графічним інтерфейсом Tkinter або збереженням зашифрованого файлу на диск.
✓ Швидка перевірка (Mini-Check)

Як у квадраті Полібія 6×6 зашифрується буква, яка розташована на перетині 2-го рядка та 2-го стовпця таблиці buk?

🗒️

У зошит (за підручником)

Вправи з підручника до цієї теми уроку. Виконуй у робочий зошит або за комп'ютером за вказівкою вчителя:

Домашка • 1 завд.
Практична робота 16 (с. 231–233)

Створення програми шифрування та дешифрування «Квадрат Полібія» у Tkinter

💡 Підказка від нас: Створити 6х6 таблицю літер українського алфавіту з розділовими знаками, поля введення тексту та коду, кнопки 'Зашифрувати' і 'Розшифрувати', протестувати шифровку контрольного рядка 22 30 24 31 53 51 34 10 32 (комп'ютер).

📌

Шпаргалка уроку (головне в один екран)

Усе найважливіше для повторення перед уроком або самостійною роботою

⚡ Квадрат Полібія

Шифр заміни, де кожен символ кодується парою своїх табличних координат (рядок, стовпець).

⚡ buk[i][j]

Двовимірний масив 6×6 букв українського алфавіту з апострофом та розділовими знаками.

⚡ str.split()

Розбиття текстового рядка з парами цифр на окремі елементи за пропусками.

⚡ int(n[0]), int(n[1])

Конвертація першого та другого символу закодованої пари у цілочисельні індекси.

👾

Бос-тест: ПР № 16 — Квадрат Полібія

Питання 1 з 3 • Завдай удару по босу теми

+100 XP Рахунок: 0/3
❤️ Здоров'я Боса (HP): 100% Питання 1/3

Як кодується кожна літера алфавіту в шифрі «Квадрат Полібія»?