metodi/app/labs/labTest.py

60 lines
2.0 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__":
lT = labTest()
lT.start()