Логотип сайту
Інформатика 8 клас

Тема 5: «Алгоритми та програми». Урок № 59. (До § 37)

Розв’язання завдань з анімаціями

Інтерактивний план-конспект уроку для 8 класу НУШ

🎯 Мета уроку

  • Освітня: закріпити знання та вміння учнів зі створення анімацій у `tkinter` шляхом розв'язання різноманітних практичних завдань; навчити аналізувати та модифікувати готовий код.
  • Розвивальна: розвивати навички програмування, критичне мислення, вміння працювати з помилками та шукати ефективні рішення для створення анімаційних ефектів.
  • Виховна: виховувати відповідальність, самостійність у роботі, сприяти розвитку творчих здібностей та інтересу до вивчення інформатики.

✅ Очікувані результати

Після уроку учні зможуть:

  • Створювати анімації з рухом об'єктів та послідовною зміною зображень.
  • Реалізовувати реакцію об'єктів на події введення (клавіатура).
  • Використовувати функцію `midpoint` для обчислення координат центру об'єкта.
  • Модифікувати код для зміни властивостей анімації (колір, швидкість, напрямок).
  • Вирішувати типові завдання зі створення анімаційних програм у Python.

📊 Групи результатів (НУШ)

Візуалізація важливості груп результатів для цього уроку.

Учень / учениця:

  • ГР1 – працює з інформацією, даними, моделями;

  • ГР2 – створює інформаційні продукти;

  • ГР3 – працює в цифровому середовищі;

  • ГР4 – безпечно та відповідально працює з інформаційними технологіями.

📚 Тип уроку

Урок узагальнення та систематизації знань, застосування вмінь і навичок.

💻 Обладнання та ПЗ

  • Персональні комп'ютери з встановленим Python та `tkinter`.
  • Середовище розробки (IDLE, VS Code).
  • Проєктор або інтерактивна дошка.

🔗 Міжпредметні зв'язки

  • Математика (координатна площина, геометрія).
  • Фізика (рух, відбиття, траєкторії).
  • Мистецтво (дизайн анімації, візуальні ефекти).

ПОВТОРЮЄМО

Актуалізація опорних знань

  1. Які функції призначено для переміщення об'єкта по полотну?
  2. Як запрограмувати реакцію об'єкта на подію?
  3. Поясніть призначення аргументів методу `canvas.bind('<KeyPress-Up>', step)` .
  4. Як створити анімацію шляхом послідовної зміни зображень?
  5. Який метод використовується для оновлення вікна `tkinter`?
Знак питання

Джерело: Підручник з інформатики для 8 класу (стор. 246)

Практичний блок уроку

Питання 1: Множинний вибір (радіокнопки)

Який параметр функції `canvas.move(item, x, y)` відповідає за зміщення по вертикалі?

Питання 2: Множинний вибір (чекбокси)

Які методи можна використовувати для створення анімації в `tkinter`?

Питання 3: Зіставлення

Зіставте метод `tkinter` з його описом:

Tk()
Canvas()
.mainloop()
.create_oval()

Завдання для самостійного виконання

  • Розширте програму "Vprava37", додавши можливість змінювати колір сліду круга при натисканні інших клавіш (наприклад, "C" для синього, "G" для зеленого).
  • Створіть програму, де два об'єкти рухаються одночасно, і керувати ними можна незалежно за допомогою різних наборів клавіш.
  • Реалізуйте анімацію "пінг-понгу", де м'ячик відбивається від чотирьох стінок і змінює напрямок руху.
  • Модифікуйте приклад з анімацією метелика, щоб він рухався не тільки по колу, а й реагував на клавіші управління курсором.

Перевірка знань

Натисніть на картку, щоб побачити відповідь.

  • 1. Який модуль Python використовується для створення графічних інтерфейсів та анімацій?
    Модуль `tkinter`.
  • 2. Що таке `event.keysym` і для чого він використовується?
    `event.keysym` – це властивість об'єкта `event`, яка містить символ натиснутої клавіші.
    Використовується для визначення, яка клавіша була натиснута, щоб програмувати відповідну реакцію.
  • 3. Як обчислити центр об'єкта, якщо відомі його координати `x1, y1, x2, y2`?
    Центр обчислюється як `[(x1+x2)/2, (y1+y2)/2]`.
  • 4. Яке призначення методу `.after(час, функція)`?
    Наприклад, `root.after(час, функція)` .
    Метод `.after()` викликає задану `функцію` через вказаний `час` (у мілісекундах). Це дозволяє створювати затримки та циклічно викликати функції для анімації.

    Наприклад, `root.after()` .
  • 5. Який метод `Canvas` дозволяє залишати "слід" за рухомим об'єктом?
    Для залишення сліду можна використовувати метод `.create_line()`, малюючи відрізки між послідовними центрами рухомого об'єкта.

    Наприклад, `canvas.create_line()` .
  • 6. Чому важливо використовувати `tk.update()` або `root.after()` в анімаціях?
    Методи .update() та .after() необхідні для оновлення відображення вікна та полотна.
    Без них зміни в координатах об'єктів не будуть відображатися на екрані, і анімація не відбуватиметься.

Джерело: Підручник з інформатики для 8 класу (стор. 246)

Домашнє завдання

1. Теоретична частина:

  • Повторити § 37 (стор. 241-246).

2. Практична частина:

  • Виконати вправу № 37 (стор. 245-246).

3. Завдання за бажанням (для закріплення):

Учні з книгами або комп'ютерами

Додаткові матеріали