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

Робота з двовимірними масивами у графічному інтерфейсі

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

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

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

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

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

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

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

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

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

4 цілей
  • 1Створити повноцінний графічний застосунок Tkinter для маніпуляцій з квадратною матрицею 4×4.
    Опанувати ➔
  • 2Організувати двовимірний масив полів Entry для двостороннього зв'язку між екраном та пам'яттю програми.
    Опанувати ➔
  • 3Реалізувати прив'язку події натискання клавіші Enter через tk.bind('<Return>', read).
    Опанувати ➔
  • 4Запрограмувати генерацію значень матриці за трьома алгоритмами: таблиця множення, генератор випадкових чисел та матриця прапорців нижнього трикутника.
    Опанувати ➔
🎯 Гачок уроку • Вгадай

🎮 Створюємо власний числовий редактор!

Уявіть табличний процесор на зразок міні-Excel, де дані можна не просто вводити руками, а миттєво генерувати за математичними правилами однією кнопкою. Сьогодні ви створите саме таку інтерактивну програму з сіткою полів, кнопками та обробниками подій!

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

Мета роботи: Створити графічний застосунок мовою Python з бібліотекою Tkinter, який формує на екрані матрицю полів введення Entry розміром 3×3 через пакувальник grid(), зчитує введені числа у двовимірний список, знаходить суму елементів та виводить результат користувачеві.

Повний робочий код програми:

import tkinter as tk
from tkinter import messagebox

root = tk.Tk()
root.title("Матриця 3x3 в GUI")
root.geometry("260x280")

# Двовимірний список для збереження посилань на віджети Entry:
entries = []

for i in range(3):
    row_entries = []
    for j in range(3):
        e = tk.Entry(root, width=5, font=("Arial", 14), justify="center")
        e.grid(row=i, column=j, padx=5, pady=5)
        e.insert(0, "0")  # початкове значення
        row_entries.append(e)
    entries.append(row_entries)

def calculate_sum():
    try:
        total = 0
        for i in range(3):
            for j in range(3):
                val = float(entries[i][j].get())
                total += val
        lbl_res.config(text=f"Сума: {total:.2f}")
    except ValueError:
        messagebox.showerror("Помилка", "Будь ласка, вводьте лише дійсні числа!")

btn = tk.Button(root, text="Обчислити суму", command=calculate_sum, bg="#10b981", fg="white", font=("Arial", 10, "bold"))
btn.grid(row=3, column=0, columnspan=3, pady=10, sticky="ew", padx=10)

lbl_res = tk.Label(root, text="Сума: 0", font=("Arial", 12, "bold"))
lbl_res.grid(row=4, column=0, columnspan=3, pady=5)

root.mainloop()
[[ ]]
Двовимірний Масив (Матриця) § 32–33

Вкладені Списки, Діагоналі та Підсумки

Індексація елементів matrix[i][j] (i — рядок, j — стовпець):
i \ j
[j=0]
[j=1]
[j=2]
[i=0]
[i=1]
[i=2]

📊 Автоматичні підсумки матриці:

Сума рядка 0: 16
Сума рядка 1: 18
Сума рядка 2: 11
Головна діагональ: 20
Побічна діагональ: 16
Загальна сума всіх: 45

💻 Вкладені цикли в Python:

# Знаходження суми елементів головної діагоналі (i == j):
diag_sum = 0
for i in range(len(matrix)):
    diag_sum += matrix[i][i]

# Обчислення суми кожного рядка:
for i in range(len(matrix)):
    print(f"Рядок {i}: сума = {sum(matrix[i])}")

2. Як працює геометричний менеджер grid()?

Менеджер розташування .grid(row=i, column=j) розміщує елементи інтерфейсу в умовній табличній сітці:
• row=i — номер рядка (від 0 зверху донизу).
• column=j — номер стовпця (від 0 зліва направо).
• columnspan=3 — об'єднання 3 сусідніх стовпців для широкої кнопки.

📋 Технологічна карта виконання Практичної роботи 10: Двовимірні масиви (матриці) та GUI у Python

Програмне забезпечення: Python 3.x (Tkinter / Pygame)

Етап роботиОперація, гарячі клавіші та діяОчікуваний результат
Крок 1. Оголошення матриці N×MСтворити двовимірний список 3×3, заповнений нулями або випадковими числами: matrix = [[0]*3 for _ in range(3)]Таблична структура даних у пам’яті
Крок 2. Доступ за подвійним індексомОрганізувати вкладений цикл: for i in range(n): for j in range(m): обробка matrix[i][j]Порядковий та постовпцевий перебір елементів матриці
Крок 3. Створення вікна TkinterСтворити головне вікно root = Tk(), задати заголовок та геометрію 400x400Графічне вікно програми з кнопками та полем виводу
Крок 4. Візуалізація сітки кнопокРозмістити матрицю кнопок або міток у вікні методом .grid(row=i, column=j)Графічна інтерактивна таблиця 3×3 у вікні додатку
Крок 5. Обробка кліку мишіНаписати функцію, яка при натисканні на клітинку змінює її колір або значенняПрацюючий графічний інтерфейс користувача (GUI)

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

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

Що утворюється в результаті застосування правила Завдання 3: a[i][j] = 0 якщо i <= j, інакше 1?

🗒️

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

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

Домашка • 1 завд.
Практична робота 10 (с. 206–207)

Робота з двовимірними масивами у програмі з графічним інтерфейсом Tkinter

💡 Підказка від нас: Створити вікно 'Масив', сітку полів 4х4 Entry, функцію зчитування по Enter, та три кнопки дій: множення індексів, випадкові числа, та трикутне заповнення (0 якщо i<=j, 1 якщо i>j).

📌

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

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

⚡ grid(row=i, column=j)

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

⚡ tk.bind('<Return>', func)

Прив'язка клавіші клавіатури Enter до виклику функції обробника.

⚡ en.delete(0, END)

Повне очищення текстового вмісту поля вводу Entry.

⚡ en.insert(0, str(val))

Вставка нового рядка на початок поля Entry.

⚡ en.get().isdigit()

Перевірка, чи ввів користувач справжні числові цифри перед конвертацією.

👾

Бос-тест: ПР № 10 — Двовимірні масиви в Tkinter GUI

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

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

Який метод менеджера геометрії Tkinter найкраще підходить для розміщення матриці віджетів Entry у рядки та стовпці?