Кратко: ниже — программа на Python, которая решает уравнение ax^2 + bx + c = 0 (учитывает все случаи: квадратичное, линейное, вырожденное). Сначала объяснение шагов, потом сам код.
Программа (Python 3):
import math import cmath EPS = 1e-12 def solve_quadratic(a, b, c): # учитываем численную погрешность при проверках на ноль if abs(a) < EPS: # линейный случай: bx + c = 0 if abs(b) < EPS: if abs(c) < EPS: return "Бесконечно много решений (тождество 0 = 0)" else: return "Нет решений (противоречие)" else: x = -c / b return f"Линейное уравнение, одно решение: x = {x}" # квадратичный случай D = b*b - 4*a*c if D > EPS: sqrtD = math.sqrt(D) x1 = (-b + sqrtD) / (2*a) x2 = (-b - sqrtD) / (2*a) return f"Два разных действительных корня: x1 = {x1}, x2 = {x2}" elif abs(D) <= EPS: x = -b / (2*a) return f"Два равных корня: x = {x}" else: # комплексные корни sqrtD = cmath.sqrt(D) x1 = (-b + sqrtD) / (2*a) x2 = (-b - sqrtD) / (2*a) return f"Два комплексных корня: x1 = {x1}, x2 = {x2}" if __name__ == "__main__": try: a = float(input("Введите a: ")) b = float(input("Введите b: ")) c = float(input("Введите c: ")) print(solve_quadratic(a, b, c)) except Exception as e: print("Ошибка ввода:", e)
Примеры использования:
Если нужно на другом языке (Pascal, C++ и т.д.) или без комплексных корней/с другим форматом вывода — скажите, и я переделаю.