Повні розв’язки, як у зошиті. Хочеш розібратися самостійно — під кожним завданням є «Пояснення з репетитором».
Сторінка 169
Завдання 41
Порівняння прапорця та перемикача
Обговоріть у парі відмінності між створенням елементів керування «Прапорець» (Checkbutton) та «Перемикач» (Radiobutton) в Python. Наведіть два міркування (кількість змінних, характер вибору).
Розв’язання
Прапорець прив'язується до власної незалежної змінної (IntVar), оскільки стан одного не впливає на інші.
Перемикачі в групі прив'язуються до однієї спільної змінної, тому увімкнення одного автоматично вимикає інші.
Відповідь:
1) Прапорець — кілька змінних, вибір багатий; Перемикач — одна змінна, вибір єдиний.
Завдання 42
Порівняння кодів шаблонів
За матеріалами попереднього завдання створіть шаблони «Вікно з прапорцями» і «Вікно з перемикачами». Порівняйте коди програм у парі та внесіть правки.
Розв’язання
У коді з прапорцями для кожного елемента викликається `tkinter.IntVar()` або створюється нова змінна.
У коді з перемикачами всі елементи передають один і той самий об'єкт змінної в параметр `variable`.
Відповідь:
Шаблон з прапорцями містить кілька оголошень змінних, шаблон з перемикачами — лише одну спільну змінну для всієї групи.
Завдання 43
Програма вибору кольору
Створіть програму, де користувач обирає колір за допомогою перемикача, а область вікна зафарбовується відповідним кольором. Використайте напис, кнопку та позначки (мал. 10.31).
Розв’язання
Створіть вікно `window` та три перемикачі з текстом «Червоний», «Синій», «Зелений» і прив'яжіть їх до однієї змінної.
Додайте кнопку, яка викликає функцію: отримайте значення змінної перемикача та встановіть `window.config(bg=...)` відповідний колір.
Відповідь:
Програма має вікно з трьома перемикачами; при виборі одного з них і натисканні кнопки фон вікна змінюється на обраний колір.
Завдання 44
Обрання проєкту з елементами керування
Оберіть одне із завдань (а–г) і створіть програму. Варіанти: а) Улюблений колір (прапорці), б) Відмінювання іменників, в) Коло (радіус), г) Калькулятор Піфагора.
Розв’язання
Оберіть один із чотирьох проєктів і визначте структуру вікна (елементи керування, вивід результату).
Напишіть код створення інтерфейсу та функцію розрахунку або відображення вибору користувачем.
Запустіть програму та перевірте коректність роботи для різних варіантів введення.
Відповідь:
Програма реалізує обраний проєкт (наприклад, калькулятор Піфагора), де користувач вибирає сторону через перемикач і вводить дані в поля.
Завдання 45
Підрахунок слів у текстовому полі
Створити програму, яка визначає кількість слів у введеному рядку (між словами — один пропуск). Використати цикли та елементи графічного інтерфейсу (вікно, текстове поле, кнопка, повідомлення).
Розв’язання
Створіть вікно `window`, текстове поле зі змінною `str_var` та кнопку «Визначити».
У функції події натискання кнопки (`button_click`) отримайте рядок через `st = str_var.get()`.
Використайте метод `.split()` для розбиття рядка на слова: `words = st.split()`, а потім знайдіть кількість слів через `len(words)`.
Виведіть результат у повідомленні: `messagebox.showinfo('Результат', str(len(words)))`.
Відповідь:
Програма рахує слова, розбиваючи введений рядок за пробілами; кількість слів дорівнює довжині списку отриманого методом `.split()`.
Завдання 46
Розробка проєктів з різними функціями
Обговорити ідею та розробити один із чотирьох проєктів: а) аналіз виразу (дії), б) НСД двох чисел, в) перевірка простоти числа, г) перевірка «щасливого квитка».
Розв’язання
Для проєкту «Просте число»: створіть функцію, яка приймає число `n` і повертає `True`, якщо цикл від 2 до n не знайшов дільника без остачі.
Створіть вікно з текстовим полем для введення числа та кнопкою «Перевірити».
У події натискання кнопки викличте функцію перевірки і виведіть результат у повідомленні: «Число просте» або «Число складене».
Для інших варіантів (НСД, квиток) змініть умову перевірки відповідно до математичних формул або правил.
Відповідь:
Проєкт реалізується шляхом написання функції-перевірника для обраної задачі та підключення її до кнопки графічного інтерфейсу; результат виводиться у вікні повідомлення.
Завдання 47
Порівняння горизонтальних і вертикальних шкал
Прочитати теорію, обговорити відмінності та подібності команд створення горизонтальної (`orient=HORIZONTAL`) та вертикальної (`orient=VERTICAL`) шкал.
Розв’язання
Ознайомтеся з параметрами `orient`, `length`, `from_`, `to` у документації або коді підручника.
Порівняйте приклади коду: горизонтальна шкала має `orient=HORIZONTAL`, вертикальна — `orient=VERTICAL`.
Висновки: обидві шкали дозволяють користувачеві вводити значення з діапазону, але візуально вони розташовані по-різному.
Відповідь:
Шкали подібні за функцією (введення значення з діапазону) та параметрами (`from_`, `to`, `variable`); вони відрізняються лише параметром `orient`, що визначає напрямок розміщення на екрані.
Завдання 48
Створення шаблонів з шкалами
Створити три файли-шаблони: «Вікно», «Вікно й горизонтальна шкала», «Вікно й вертикальна шкала». Порівняти їхній код.
Розв’язання
Створіть файл для базового вікна з текстовим полем та кнопкою.
У другому файлі додайте команду `scale = Scale(window, orient=HORIZONTAL, ...)` і налаштуйте діапазон значень.
У третьому файлі замініть параметр `orient` на `VERTICAL`, можна змінити довжину (`length`) та розміщення (`anchor`).
Порівняйте коди: у всіх є імпорт бібліотеки, створення вікна та шкали, але різняться лише налаштування напрямку та розмірів шкал.
Відповідь:
Шаблони відрізняються лише кодом ініціалізації шкали (параметр `orient`), де горизонтальна має значення `HORIZONTAL`, а вертикальна — `VERTICAL`.
Завдання 49
Обчислення математичних сум за допомогою шкали
Створити програму, де користувач обирає число на горизонтальній або вертикальній шкалі. Виконати одне із завдань: а) знайти суму чисел від 0 до значення зі шкали; б) знайти добуток парних чисел від 2 до цього значення (максимум 10); в) знайти суму чисел, кратних 5, від 1 до значення зі шкали.
Розв’язання
Створіть головне вікно `window` та імпортуйте необхідні об'єкти з модуля `tkinter`.
Додайте у вікно горизонтальну шкалу `Scale`, встановивши діапазон (наприклад, від 0 до 100) і прив'яжіть її до змінної `var`.
Створіть кнопку, яка викликає функцію розрахунку: отримайте значення зі шкали (`val = var.get()`), ініціалізуйте змінну для результату (наприклад, `sum_val = 0`) і проведіть цикл від початку до `val`, додаючи потрібні числа.
Виведіть результат у текстовий етикет або повідомлення.
Відповідь:
Програма працює коректно, показуючи обчислену суму (або інший варіант згідно з підпунктом) для вибраного значення шкали.
Завдання 50
План вдосконалення інтерфейсу додатку
Обговорити, які елементи керування (кнопки, поля введення, списки тощо) можна додати до власного проєкту. Оцінити, як це змінить вигляд програми та спростить взаємодію користувача.
Розв’язання
Визначте, яка дія користувача зараз відсутня або незручна (наприклад, важко змінити параметр).
Оберіть елемент керування, який вирішить цю проблему (наприклад, `Entry` для введення числа або `Listbox` для вибору варіанту).
Додайте цей елемент у вікно та прив'яжіть його до відповідної змінної або функції.
Перевірте, чи новий елемент не заважає іншим і чи програма стає простішою для використання.
Відповідь:
План включає додавання кнопки «Застосувати» та поля введення для уточнення параметрів, що зробить інтерфейс більш гнучким і зручним для користувача.
Завдання 51
Заповнення чекліста виконання завдань
Використати інтерактивний електронний додаток, щоб перевірити роботу програми та заповнити чекліст етапу тестування.
Розв’язання
Запустіть ваш проєкт у середовищі програмування.
Перевірте кожен елемент інтерфейсу (натискайте кнопки, змінюйте повзуни шкал, вводьте текст).
Порівняйте роботу програми з критеріями чеклісту в додатку і позначте пункти як виконані або знайдені помилки.
Запишіть у чеклісті статус кожного пункту (виконано/потрібне виправлення).
Відповідь:
Чекліст заповнено, програма пройшла базову перевірку функціоналу та інтерфейсу.
Завдання 52
Алгоритм тестування та налагодження
Дотримуватися алгоритму тестування: створити набір тестових даних (різні входи, натискання), протестувати програму самостійно, знайти помилки та виправити їх.
Розв’язання
Підготуйте список тестових випадків: правильні числа, порожнє поле, дуже великі значення, літери замість чисел.
Запустіть програму і послідовно протестуйте кожен з цих випадків.
Якщо програма виводить помилку або зависає — знайдіть місце у коді, де виникає проблема (наприклад, ділення на нуль або переповнення буфера).
Виправте код, запустіть програму ще раз і переконайтеся, що помилка більше не виникає.
Відповідь:
Програма успішно протестована; знайдені та виправлені помилки пов'язані з обробкою некоректного вводу даних.
Завдання 53
Залучення інших до тестування
Дати однокласникам можливість протестувати програму, попросити фідбек (що зрозуміло, що незручно) та покращити програму на основі відгуків.
Розв’язання
Підготуйте короткі інструкції або демонстраційне відео для інших учнів.
Попросіть друзів виконати сценарії, які ви не перевіряли (наприклад, швидке натискання кнопок, введення довгих рядків тексту).
Запишіть усі зауваження щодо зовнішнього вигляду та логіки дій.
Внесіть зміни в код або дизайн відповідно до отриманих порад.
Відповідь:
Залучити інших учнів до тестування, проаналізувати їхні відгуки щодо зручності та функціоналу, а потім внести необхідні виправлення в програму для покращення її якості.
Завдання 54
Оцінювання програми за критеріями
Оцінити власну програму за чотирма критеріями: ідея та вирішення проблеми, інтерфейс і зручність, програмування та функціональність, тестування та вдосконалення. Підготувати презентацію на 2–3 хвилини.
Розв’язання
Пройдіться по чотирьох пунктах оцінювання (Ідея, Інтерфейс, Код, Тестування) і запишіть свої висновки.
Складіть план презентації: вступ про ідею, показ роботи програми, розповідь про виправлення помилок.
Підготуйте коротке усне повідомлення (2–3 хвилини), де опишете головні функції та шлях вдосконалення.
Відповідь:
Оцінити програму за критеріями ідеї, інтерфейсу, коду та тестування; підготувати презентацію, яка демонструє основні можливості додатку та процес його розробки.
Завдання 55
Рефлексія над навичками
Заповнити рефлексійну таблицю за шаблоном (7 пунктів) і надіслати електронним листом на навчальну скриньку.
Розв’язання
Прочитайте кожен пункт рефлексії (від «Що я дізнався» до «Що хочу дізнатися далі»).
Запишіть короткі відповіді, використовуючи власний досвід роботи з кодом та дизайном.
Перевірте текст на наявність помилок і надішліть файл електронною поштою викладачу.
Відповідь:
Заповнити рефлексійну таблицю, де описати нові навички, найцікавіші моменти роботи, здобуті вміння та плани на майбутнє, і надіслати результат викладачу.