Предмет: Информатика, автор: dariaaass

Допоможіть, будь ласка, зробити ось таку програму Python
Розробити програму, яка обчислює корені квадратного рівняння. Вікно
програми повинно містити відповідну кількість віджетів Label, Entry, Button.
Початкові параметри вікна: ширина – 400, висота – 300, колір тла – зелений.
Використати менеджер геометрії pack().

Ответы

Автор ответа: nitroamogus227
2

Ответ:

# Розв'язання квадратного рівняння a*x^2+b*x+c=0

from tkinter import *

from math import sqrt

def solver(a,b,c):

D = b*b - 4*a*c # обчислення дискримінанта

if D >= 0:

x1 = (-b + sqrt(D)) / (2*a);

x2 = (-b - sqrt(D)) / (2*a)

text = "Дискримінант: %s \n x1 = %s \n x2 = %s \n" % (D, x1, x2)

else:

text = "Дискримінант: %s \n Рівняння розв'язків немає" % D

return text

def inserter(value):

""" Очистка та вставка значень """

output.delete("0.0","end")

output.insert("0.0",value)

def clear(event):

""" Очистка текстових полів об'єкта Entry """

caller = event.widget

caller.delete("0", "end")

def handler(): # функція обробки

# Отримати значення коефіцієнтів з перевіркою на коректність

try:

a_val = float(a.get())

b_val = float(b.get())

c_val = float(c.get())

inserter(solver(a_val, b_val, c_val))

except ValueError:

inserter("Вставити числові коефіцієнти квадратного рівняння")

root = Tk()

root.title("Розв'язок квадратного рівняння")

root.geometry("330x230+300+100")

root.resizable(width=False, height=False)

#

frame = Frame(root) #

frame.pack()

a = Entry(frame, width=3) #

a.grid(row=1,column=1,padx=(10,0))

a.bind("<FocusIn>", clear)

al = Label(frame, text="x**2+").grid(row=1,column=2)

b = Entry(frame, width=3) #

b.bind("<FocusIn>", clear)

b.grid(row=1,column=3)

bl = Label(frame, text="x+").grid(row=1, column=4)

c = Entry(frame, width=3) #

c.bind("<FocusIn>", clear)

c.grid(row=1, column=5)

cl = Label(frame, text="= 0").grid(row=1, column=6)

but = Button(frame, text="Розв'язати", command=handler).grid(row=1,

column=7, padx=(10,0)) #

output = Text(frame, bg="lightblue", font="Arial 12", width=35, height=10)

output.grid(row=2, columnspan=8)

root.mainloop()

Объяснение:

Квадратне рівняння має вигляд ax^2 + bx + c = 0. Коефіцієнти a, b і c - це конкретні числа, а x треба знайти, розв'язавши рівняння.

Алгоритм

1. Обчислити дискримінант за формулою d = b^2 - 4ac.

2. Якщо дискримінант більше нуля, то обчислити два кореня рівняння:

x1 = (-b + √d) / 2a

x2 = (-b-√d) / 2a

3. Якщо дискримінант дорівнює нулю, то обчислити тільки один корінь (другий буде дорівнює йому).

4. Якщо дискримінант від'ємний, то вивести повідомлення, що коріння немає.


dariaaass: Дякую)
dariaaass: Можеш, будь ласка, зі ще одну програму зробити
dariaaass: Вона є в моєму профілі
nitroamogus227: зара подивлюсь
yurabrodzinskyy: nitroamogus227, якшо знаєте С++, допоможіть пліз))))) https://znanija.com/task/50966885
Похожие вопросы
Предмет: Математика, автор: medfoxian363