• Предмет: Информатика
  • Автор: Veraa09
  • Вопрос задан 4 месяца назад

PYTHON Буду благодарна!!!!
Складіть проєкт розв'язування квадратного рівняння. Вхідні дані (значення коефіцієнтів a,b,c) вводяться з полів. Результат виводиться у напис. Додайте кнопку ОБЧИСЛИТИ, при натисканні на яку відбувається обчислення.

Ответы

Ответ дал: UseDark
1

Можна створити інтерфейс з використанням бібліотеки Tkinter. Ось код:
import tkinter as tk

from tkinter import messagebox

import math

# Функція для обчислення квадратного рівняння

def solve_quadratic_equation(a, b, c):

   try:

       a = float(a)

       b = float(b)

       c = float(c)

       discriminant = b**2 - 4*a*c

       if discriminant > 0:

           x1 = (-b + math.sqrt(discriminant)) / (2*a)

           x2 = (-b - math.sqrt(discriminant)) / (2*a)

           return "x1 = {0:.2f}, x2 = {1:.2f}".format(x1, x2)

       elif discriminant == 0:

           x = -b / (2*a)

           return "x = {0:.2f}".format(x)

       else:

           return "No real roots"

   except ValueError:

       return "Invalid input"

# Функція для обробки натискання кнопки

def calculate():

   a = entry_a.get()

   b = entry_b.get()

   c = entry_c.get()

   result = solve_quadratic_equation(a, b, c)

   messagebox.showinfo("Result", result)

# Створення вікна

root = tk.Tk()

root.title("Quadratic Equation Solver")

# Створення елементів інтерфейсу

label_a = tk.Label(root, text="a = ")

label_a.grid(row=0, column=0, padx=5, pady=5)

entry_a = tk.Entry(root)

entry_a.grid(row=0, column=1, padx=5, pady=5)

label_b = tk.Label(root, text="b = ")

label_b.grid(row=1, column=0, padx=5, pady=5)

entry_b = tk.Entry(root)

entry_b.grid(row=1, column=1, padx=5, pady=5)

label_c = tk.Label(root, text="c = ")

label_c.grid(row=2, column=0, padx=5, pady=5)

entry_c = tk.Entry(root)

entry_c.grid(row=2, column=1, padx=5, pady=5)

button = tk.Button(root, text="Calculate", command=calculate)

button.grid(row=3, column=0, columnspan=2, pady=10)

root.mainloop()

Функція обчислення квадратного рівняння

def calculate():

a = float(entry_a.get())

b = float(entry_b.get())

c = float(entry_c.get())

# Обчислюємо дискримінант

D = b**2 - 4*a*c

# Перевірка значень дискримінанта

if D < 0:

   result_label.config(text="No real roots")

elif D == 0:

   x = -b / (2*a)

   result_label.config(text="x = {}".format(x))

else:

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

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

   result_label.config(text="x1 = {}, x2 = {}".format(x1, x2))

Вас заинтересует