Створення програми
з графічним інтерфейсом

ПРАКТИЧНА РОБОТА 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. Створіть три тестових набори вхідних даних для тестування програми.
Перевірте роботу програми на ваших тестових даних.


Зробіть висновок: як організувати діалог з користувачем у програмі з графічним інтерфейсом.