Решил сделать простую программу для решения квадратных уравнений. Конечно, подобных программ в интернете много, но захотелось сделать свою.
Программу буду писать в среде разработки jupiter notebook. Для начала создам графическую оболочку с помощью библиотеки tkinter.
В начале импортируем нужную библиотеку.
from tkinter import *
import tkinter.messagebox as box
Теперь создадим само окно куда будут вставлены необходимые объекты
window = Tk()
window.title( 'Решение квадратных уравнений' )
frame = Frame( window )
window.geometry("600x160")
Написание функции для решения уравнений пока пропустим
def calculation():
pass
Сейчас создадим все необходимые объекты. Нам понадобится три вида элементов:
label - используется для отображения текста
entry - поле для ввода текста
button - кнопка, на которой может быть текст, совершает определенные действия при нажатии на нее
У нас будет три поля ввода: var_a, var_b, var_c для трех коэффициентов уравнения. Элементов label будет 4, так как текст разбит на 4 части разделенный элементами entry. И будет один элемент button для запуска программы
Вот собственно сам код создания элементов.
label1 = Label( text = 'Заполните поля в уравнении:',font="Arial 12" )
label1.place(x=10, y=52) - в place указываются координаты размещения элемента
var_a = Entry(window,width=6)
var_a.place(x=230, y=55)
label2 = Label( text = 'x^2 +',font="Arial 12" )
label2.place(x=270, y=52)
var_b = Entry(window,width=6)
var_b.place(x=310, y=55)
label3 = Label( text = 'x +',font="Arial 12" )
label3.place(x=340, y=52)
var_c = Entry(window,width=6)
var_c.place(x=365, y=55)
label4 = Label( text = '= 0',font="Arial 12" )
label4.place(x=390, y=52)
btn = Button( text = 'Запустить',command=calculation)
btn.place(x=430, y=52)
window.mainloop()
Теперь напишем пропущенную функцию. Ответ будет отображается в отдельном диалоговом окне. Возможно три варианта окна, так как есть три варианта ответа:
1. Если d < 0, корней нет;
2. Если d = 0, есть ровно один корень;
3. Если d > 0, корней будет два.
def calculation():
a=float(var_a.get())
b=float(var_b.get())
c=float(var_c.get())
d=b**2-4*a*c
if d>0:
x_1=(-b-d**0.5)/2*a
x_2=(-b+d**0.5)/2*a
box.showinfo( 'Ответ' , 'Корни квадратного уравнения x_1 = '+str(x_1)+', x_2 = '+str(x_2))
elif d==0:
x_1=(-b-d**0.5)/2*a
box.showinfo( 'Ответ' , 'Корень квадратного уравнения x = '+str(x_1))
elif d<0:
box.showinfo( 'Ответ' , 'Корней нет')
В итоге получилась вот такая программа.