Створення програми
з графічним інтерфейсом
ПРАКТИЧНА РОБОТА 17
Завдання: розробити програму для розв’язування задачі.
Організації часто доводиться фарбувати баки циліндричної форми. При цьому потрібно фарбувати лише верхню частину й зовнішню поверхню стінок. Створіть програму для визначення, скільки банок фарби потрібно для фарбування певного бака.
Обладнання: комп’ютер із середовищем програмування мовою Python.
Хід роботи
Під час роботи за комп’ютером дотримуйтеся правил безпеки.
1. Проаналізуйте математичну модель задачі.
У Python IDLE виконайте команду File → New File.
2. Завантажте модулі tkinter, math.
3. Створіть вікно програми розмірами 600 × 300 із заголовком Фарбування циліндра (див. рисунок).
Завершіть програму командою root.mainloop().
4. Розмістіть у вікні віджет Label із написом діаметр, м:
lab1 = Label(root, text = 'діаметр, м', width = 20, font = 'Arial 14', anchor = E)
lab1.grid(row = 0, column = 0)
5. Розмістіть у вікні віджет Entry, щоб задати значення діаметра:
ent1 = Entry(root, width = 8, font = 'Arial 14')
ent1.grid(row = 0, column = 1, padx = 10)
6. Згідно з рисунком додайте до вікна об’єкти класу Label для виведення написів.
7. Згідно з рисунком додайте до вікна об’єкти класу Entry для введення значень висоти бака і площі поверхні, яку можна зафарбувати однією банкою фарби, і для виведення кількості банок для фарбування всієї поверхні.
8. Додайте до вікна об’єкт btn класу Button:
btn = Button(root, text = 'Обчислити кількість банок', font = 'Arial 14', command = btn_click)
btn.grid(row = 3, column = 0, columnspan = 2)
9. Опишіть Натискання кнопки для об’єкта btn.
Виконання обробника події повинно привести до виведення шуканої кількості банок до поля ent4.
Дробове значення числа банок потрібно округлити до більшого цілого.
d = float(ent1.get())
h = float(ent2.get())
b = float (ent3.get())
tp = pi*d**2/4
wall = pi*d*h
k = ceil((tp+wall)/b)
ent4.insert(0, str(k))
10. Щоб додати до вікна програми зображення, розмістіть у вікні об’єкт класу Label, запишіть у змінну mal назву вибраного вами файлу, і надайте атрибуту image об’єкта значення mal:
mal = PhotoImage(file = 'bak.png')
Label(image = mal).grid(row = 0, column = 2, rowspan = 5)
11. Збережіть програму у файлі з назвою Vprava34.
12. Створіть три тестових набори вхідних даних для тестування програми.
Перевірте роботу програми на ваших тестових даних.
Зробіть висновок: як організувати діалог з користувачем у програмі з графічним інтерфейсом.