60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
|
import math
|
||
|
|
||
|
|
||
|
class labTest:
|
||
|
|
||
|
def __init__(self):
|
||
|
pass # Конструктор пока пустой, при необходимости можно добавить параметры
|
||
|
|
||
|
def calc_roots(self, a, b, c):
|
||
|
if a == 0:
|
||
|
raise ValueError("Невозможно найти корни, так как уравнение не является квадратным.")
|
||
|
|
||
|
# дискриминант
|
||
|
discriminant = b ** 2 - 4 * a * c
|
||
|
print(f"Дискриминант равен {discriminant:.2f}, ", end='')
|
||
|
|
||
|
if discriminant > 0:
|
||
|
print("уравнение имеет 2 различных вещественных корня.")
|
||
|
# Два различных корня
|
||
|
x1 = (-b + math.sqrt(discriminant)) / (2 * a)
|
||
|
x2 = (-b - math.sqrt(discriminant)) / (2 * a)
|
||
|
return [round(x1, 2), round(x2, 2)]
|
||
|
|
||
|
elif discriminant == 0:
|
||
|
print("уравнение имеет 1 вещественный корень.")
|
||
|
# Один корень
|
||
|
x = -b / (2 * a)
|
||
|
return [round(x, 2)]
|
||
|
|
||
|
else:
|
||
|
print("уравнение не имеет вещественных корней.")
|
||
|
# Нет вещественных корней
|
||
|
return []
|
||
|
|
||
|
# Коэффициенты уравнения
|
||
|
# a, b, c = 0, -3, 2 // 1 -3 2
|
||
|
|
||
|
def main(self, a, b, c):
|
||
|
try:
|
||
|
X = self.calc_roots(a, b, c)
|
||
|
if X:
|
||
|
print(f"Корни уравнения: {', '.join(map(str, X))}.")
|
||
|
else:
|
||
|
print("Корни уравнения отсутствуют.")
|
||
|
except ValueError as e:
|
||
|
print(e)
|
||
|
|
||
|
def start(self):
|
||
|
try:
|
||
|
a = int(input("Введите a: "))
|
||
|
b = int(input("Введите b: "))
|
||
|
c = int(input("Введите c: "))
|
||
|
self.main(a, b, c)
|
||
|
except ValueError:
|
||
|
print("Ошибка ввода: необходимо ввести целые числа для a, b и c.")
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
lab_test = labTest()
|
||
|
lab_test.start()
|