Створення програми «Калькулятор»

ПРАКТИЧНА РОБОТА 18


Завдання:
скласти програму Калькулятор для конвертування десяткового числа (з основою 10) у двійкове (з основою 2).

Обладнання: комп’ютер із середовищем програмування Python.

Хід роботи

Під час роботи за комп’ютером дотримуйтеся правил безпеки.

У Python IDLE виконайте команду File → New File.

1. Завантажте модуль tkinter.

2. Створіть вікно програми розмірами 600 × 300 із заголовком Калькулятор (рис. 1).
Завершіть програму командою root.mainloop().

3. Додайте у вікно програми віджети lab1, lab2 класу Label, entry1, entry2 класу Entry, згідно з рис. 1.

4. Створіть віджет b1 класу Button із заголовком Перевести у двійкове.

5. Створіть  для кнопки Перевести у двійкове.
Для переведення десяткового числа в двійкову систему числення використайте алгоритм (рис. 2):
1) створити порожній рядок dv;
2) зчитати десяткове число dc з поля віджета entry1;
3) поки dc>0, повторювати:
— знайти r — остачу від ділення dc на 2;
— перетворити r на рядок і додати в початок рядка dv;
— поділити dc цілочисельно на 2;
4) вивести значення dv до поля віджета entry2.

6. Створіть віджет b2 класу Button із заголовком Перевести у десяткове.

7. Створіть обробник події для кнопки Перевести у десяткове.
Для переведення двійкового числа в десяткову систему числення використайте алгоритм (див. рис. 2):
1) зчитати рядок dv з поля віджета entry2;
2) створити  для накопичення суми dc = 0;
3) обчислити суму всіх цифр рядка dv, помножених на число 2, піднесене до степеня, що дорівнює номеру розряду цифри (рис. 3): 
4) вивести значення до поля віджета entry1.

8. Для переведення запишіть команду циклу:
dc = 0
for i in range(len(dv)):
     dc = dc+int(dv[i])*2**(len(dv)–i–1)

9. Завантажте модуль messagebox.

10. Додайте до опису обробника події для кнопки b1 виклик функції messagebox.showinfo для виведення повідомлень на зразок:
Десяткове 19 дорівнює двійковому 10011:
vidp = 'Десяткове ' + str(dc) + ' дорівнює двійковому ' + dv 
messagebox.showinfo('Переведення у двійкове', vidp)

11. Додайте до опису обробника події для кнопки b2 виклик функції messagebox.showinfo для виведення повідомлень на зразок:
Двійкове 10011 дорівнює десятковому 19


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