Задача понятна. Ниже предлагаю простой учебный код на Python, который решает квадратное уравнение ax^2 + bx + c = 0 и выводит пошаговое решение. Это подходящий пример для уроков средней школы (поясняет дискриминант, корни и случаи линейного уравнения).
Что делает код
- Принимает три коэффициента a, b, c.
- Если a ≠ 0: решает квадратное уравнение через дискриминант D = b^2 - 4ac.
- D > 0: выводит два действительных корня.
- D = 0: выводит один корень.
- D < 0: говорит, что действительных корней нет.
- Если a = 0: решение становится линейным уравнением bx + c = 0 и выводит корень или поясняет случаи отсутствия/бесконечного числа решений.
- Форматирует числа так, чтобы целые выглядели как целые, а дробные — с разумной точностью.
Как запустить
- Скопируйте код в файл, например quadratic_steps.py.
- Запустите: python quadratic_steps.py
- Введите коэффициенты a, b и c через пробел, например: 1 -3 2
Код (чистый текст, без форматирования Markdown) import math
def format_number(x): # Если число близко к целому, показываем как целое if abs(x - round(x)) < 1e-9: return str(int(round(x))) else: # показываем до 6 знаков после запятой, убираем лишние нули s = f"{x:.6f}".rstrip('0').rstrip('.') return s
def solve_quadratic(a, b, c): lines = [] if a != 0: lines.append(f"Уравнение: {a}x^2 + {b}x + {c} = 0") D = bb - 4ac lines.append(f"Дискриминант D = {b}^2 - 4{a}{c} = {D}") if D > 0: sqrtD = math.sqrt(D) x1 = (-b - sqrtD) / (2a) x2 = (-b + sqrtD) / (2a) lines.append("D > 0: есть два действительных корня:") lines.append(f"x1 = {format_number(x1)}, x2 = {format_number(x2)}") elif D == 0: x = -b / (2a) lines.append("D = 0: один корень:") lines.append(f"x = {format_number(x)}") else: lines.append("D < 0: действительных корней нет.") else: # Линейное уравнение: bx + c = 0 if b != 0: x = -c / b lines.append(f"Уравнение линейное: {b}x + {c} = 0") lines.append(f"x = {format_number(x)}") else: if c != 0: lines.append("Уравнение противоречиво: решений нет.") else: lines.append("Уравнение тождественно истинно: бесконечно много решений.") return "\n".join(lines)
def main(): input_str = input("Введите коэффициенты a b c через пробел: ") parts = input_str.strip().split() while len(parts) != 3: print("Нужно ввести ровно три числа: a b c") input_str = input("Введите коэффициенты a b c через пробел: ") parts = input_str.strip().split() a, b, c = map(float, parts) result = solve_quadratic(a, b, c) print("\nРешение:") print(result)
if name == "main": main()
Пояснения по коду (пошагово)
- format_number(x): берет число и форматирует его красиво для вывода.
- solve_quadratic(a, b, c):
- Если a != 0: формируем дискриминант D и разбираем три случая D > 0, D = 0, D < 0, выводим соответствующие корни.
- Если a == 0: переходим к линейному случаю bx + c = 0 и обрабатываем три варианта: есть единственный корень, нет решения, или бесконечно много решений (когда и b, и c равны нулю).
- main(): считывает три коэффициента от пользователя и печатает пошаговое решение.
Если хочешь, могу адаптировать код под другой язык программирования (JavaScript, Java и т. п.) или сделать версию с выводом комплексных корней, если дискриминант меньше нуля. Также могу сделать версию, которая принимает заранее заданные примеры и выводит пошаговое решение без ввода пользователя.
