Обновить app/labs/labTest.py
This commit is contained in:
parent
abf38bce43
commit
5ba9131a15
|
@ -1,59 +1,59 @@
|
||||||
import math
|
import math
|
||||||
|
|
||||||
|
|
||||||
class labTest:
|
class labTest:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass # Конструктор пока пустой, при необходимости можно добавить параметры
|
pass
|
||||||
|
|
||||||
def calc_roots(self, a, b, c):
|
def calc_roots(self, a, b, c):
|
||||||
if a == 0:
|
if a == 0:
|
||||||
raise ValueError("Невозможно найти корни, так как уравнение не является квадратным.")
|
raise ValueError("Невозможно найти корни, так как уравнение не является квадратным.")
|
||||||
|
|
||||||
# дискриминант
|
# дискриминант
|
||||||
discriminant = b ** 2 - 4 * a * c
|
discriminant = b ** 2 - 4 * a * c
|
||||||
print(f"Дискриминант равен {discriminant:.2f}, ", end='')
|
print(f"Дискриминант равен {discriminant:.2f}, ", end='')
|
||||||
|
|
||||||
if discriminant > 0:
|
if discriminant > 0:
|
||||||
print("уравнение имеет 2 различных вещественных корня.")
|
print("уравнение имеет 2 различных вещественных корня.")
|
||||||
# Два различных корня
|
# Два различных корня
|
||||||
x1 = (-b + math.sqrt(discriminant)) / (2 * a)
|
x1 = (-b + math.sqrt(discriminant)) / (2 * a)
|
||||||
x2 = (-b - math.sqrt(discriminant)) / (2 * a)
|
x2 = (-b - math.sqrt(discriminant)) / (2 * a)
|
||||||
return [round(x1, 2), round(x2, 2)]
|
return [round(x1, 2), round(x2, 2)]
|
||||||
|
|
||||||
elif discriminant == 0:
|
elif discriminant == 0:
|
||||||
print("уравнение имеет 1 вещественный корень.")
|
print("уравнение имеет 1 вещественный корень.")
|
||||||
# Один корень
|
# Один корень
|
||||||
x = -b / (2 * a)
|
x = -b / (2 * a)
|
||||||
return [round(x, 2)]
|
return [round(x, 2)]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("уравнение не имеет вещественных корней.")
|
print("уравнение не имеет вещественных корней.")
|
||||||
# Нет вещественных корней
|
# Нет вещественных корней
|
||||||
return []
|
return []
|
||||||
|
|
||||||
# Коэффициенты уравнения
|
# Коэффициенты уравнения
|
||||||
# a, b, c = 0, -3, 2 // 1 -3 2
|
# a, b, c = 0, -3, 2 // 1 -3 2
|
||||||
|
|
||||||
def main(self, a, b, c):
|
def main(self, a, b, c):
|
||||||
try:
|
try:
|
||||||
X = self.calc_roots(a, b, c)
|
X = self.calc_roots(a, b, c)
|
||||||
if X:
|
if X:
|
||||||
print(f"Корни уравнения: {', '.join(map(str, X))}.")
|
print(f"Корни уравнения: {', '.join(map(str, X))}.")
|
||||||
else:
|
else:
|
||||||
print("Корни уравнения отсутствуют.")
|
print("Корни уравнения отсутствуют.")
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
try:
|
try:
|
||||||
a = int(input("Введите a: "))
|
a = int(input("Введите a: "))
|
||||||
b = int(input("Введите b: "))
|
b = int(input("Введите b: "))
|
||||||
c = int(input("Введите c: "))
|
c = int(input("Введите c: "))
|
||||||
self.main(a, b, c)
|
self.main(a, b, c)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
print("Ошибка ввода: необходимо ввести целые числа для a, b и c.")
|
print("Ошибка ввода: необходимо ввести целые числа для a, b и c.")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
lT = labTest()
|
lT = labTest()
|
||||||
lT.start()
|
lT.start()
|
||||||
|
|
Loading…
Reference in New Issue