Ваша программа близка к правильному решению, но есть некоторые ошибки в логике и синтаксисе. Вот исправленный вариант:
import math
def quadratic_equation_has_roots(a, b, c):
discriminant = b**2 - 4*a*c
return discriminant >= 0
a = float(input("Введите значение a: "))
b = float(input("Введите значение b: "))
c = float(input("Введите значение c: "))
has_roots = quadratic_equation_has_roots(a, b, c)
print("Уравнение имеет корни:", has_roots)
Используйте функцию quadratic_equation_has_roots, чтобы проверить, есть ли хотя бы один корень уравнения. Затем выводится соответствующее сообщение.
Даны коэффициенты a, b, c квадратного уравнения ax2 + bx + c = 0. Необходимо вывести на экран True, если уравнение имеет хотя бы один корень, и False — в противном случае. Программа должна представлять линейный алгоритм, то есть не допускается использование условного оператора.
То что я смог написать:
1) не работает :(
import math.
def quadratic_equation_roots(a, b, c):
discriminant = b**2 - 4*a*c
return ((-1*b + math.sqrt(discriminant)) / (2*a),
(-1*b - math.sqrt(discriminant)) / (2*a))
a = float(input("Введите значение a: "))
b = float(input("Введите значение b: "))
c = float(input("Введите значение c: "))
roots = quadratic_equation_roots(a, b, c)
if roots:
print("Квадратное уравнение имеет корни:", roots)
else:
print("Квадратное уравнение не имеет корней")
2) тоже :(
def quadratic(a, b, c, d):
if a == 0 and b == 0 and c == 0:
d = "Уравнение линейное"
if b == 0 and d == 0:
b = a
a = 1
d = c
c = 0
if d == 1:
if a != 0 and a != 1 and b != 0:
a = 1 / a
c = -c / a
elif a == 1 and b == 0:
b = 1
a = 0
if b != 0 and b != 1:
b = 1/b
c = c / b
else:
if c != 0:
c = 1/(c+a)
d = d - c
else:
d = 0
d = -d/c
d = round(d, 3)
if d != int(d):
d = str(d)
else:
d = int(d)
if c == 0:
c = a
if (a + b + c + d) == 0:
a += 1
d = "ax^2 + bx +c = 0"
print(d)
quadratic(1, 2, 1, 6)