Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 31 августа 2025 06:35

Дай код

Ответ нейросети

31 августа 2025 06:35

Ниже готовый готовый шаблон кода на Python для пошагового решения типичных задач средней школы. Он включает решения по:

  • линейному уравнению вида a*x + b = c (с пошаговым объяснением),
  • квадратному уравнению вида ax^2 + bx + c = 0 (с дискриминантом и корнями),
  • системе двух линейных уравнений вида a1x + b1y = c1 и a2x + b2y = c2 (через правило Крамера).

Пример кода написан так, чтобы можно было вставлять его в файл и запускать. Также есть примеры использования в конце.

Code (Python):

import math
from typing import List, Tuple, Union

def solve_linear_steps(a: float, b: float, c: float) -> Tuple[str, Union[float, str]]:
    """
    Решает линейное уравнение a*x + b = c и возвращает:
    - подробные шаги как строку
    - решение x или описание случая (нет решений / бесконечно много решений)
    """
    steps = []
    steps.append(f"Дано линейное уравнение: {a}*x + {b} = {c}")
    if a != 0:
        steps.append(f"1) Вычитаем b из обеих частей: {a}*x = {c} - {b} = {c - b}")
        steps.append(f"2) Делим обе части на a: x = ({c} - {b}) / {a} = { (c - b) / a }")
        x = (c - b) / a
        return "\n".join(steps), x
    else:
        # a == 0 -> простое сокращение: b = c
        steps.append("0) Так как коэффициент при x равен 0, переобозначим: 0*x + b = c -> b = c.")
        if b == c:
            steps.append("Равенство верно независимо от x: бесконечно много решений.")
            return "\n".join(steps), "infinitely many solutions"
        else:
            steps.append("Равенство неверно: нет решений.")
            return "\n".join(steps), "no solution"

def solve_quadratic_steps(a: float, b: float, c: float) -> Tuple[str, Union[List[float], str]]:
    """
    Решает квадратное уравнение a*x^2 + b*x + c = 0 и возвращает:
    - подробные шаги как строку
    - список корней (могут быть вещественные или комплексные) или сообщение об отсутствии вещественных корней
    """
    steps = []
    steps.append(f"Дано квадратное уравнение: {a}*x^2 + {b}*x + {c} = 0")
    if a == 0:
        # Приводим к линейному виду b*x + c = 0
        if b != 0:
            x = -c / b
            steps.append(f"Так как a = 0, уравнение становится линейным: {b}*x + {c} = 0")
            steps.append(f"x = -c / b = {-c} / {b} = {x}")
            return "\n".join(steps), [x]
        else:
            if c == 0:
                steps.append("Уравнение 0 = 0: бесконечно много решений.")
                return "\n".join(steps), "infinitely many solutions"
            else:
                steps.append("Уравнение противоречиво: нет решений.")
                return "\n".join(steps), []
    # Дискриминант
    D = b*b - 4*a*c
    steps.append(f"Вычислим дискриминант: D = b^2 - 4*a*c = {b}^2 - 4*{a}*{c} = {D}")
    if D < 0:
        steps.append("D < 0: вещественных корней нет. Есть комплексные корни.")
        sqrtD = complex(0, math.sqrt(-D))
        x1 = (-b - sqrtD) / (2*a)
        x2 = (-b + sqrtD) / (2*a)
        return "\n".join(steps), [x1, x2]
    elif D == 0:
        x = -b / (2*a)
        steps.append(f"D = 0: единственный корень x = -b / (2a) = {-b} / (2*{a}) = {x}")
        return "\n".join(steps), [x]
    else:
        sqrtD = math.sqrt(D)
        x1 = (-b - sqrtD) / (2*a)
        x2 = (-b + sqrtD) / (2*a)
        steps.append(f"D > 0: два корня x1 = (-b - sqrt(D)) / (2a) = {x1}, x2 = (-b + sqrt(D)) / (2a) = {x2}")
        return "\n".join(steps), [x1, x2]

def solve_system_steps(a1: float, b1: float, c1: float, a2: float, b2: float, c2: float) -> Tuple[str, Union[Tuple[float, float], str]]:
    """
    Решает систему: a1*x + b1*y = c1 ; a2*x + b2*y = c2
    Возвращает шаги и решение (x,y) или сообщение об отсутствии/единственности решения.
    """
    steps = []
    steps.append("Даны две линейные зависимости:")
    steps.append(f"a1*x + b1*y = c1  ->  {a1}*x + {b1}*y = {c1}")
    steps.append(f"a2*x + b2*y = c2  ->  {a2}*x + {b2}*y = {c2}")
    D = a1*b2 - a2*b1
    steps.append(f"Определитель D = a1*b2 - a2*b1 = {D}")
    if D == 0:
        # Система несовместна или не имеет единственного решения
        Dx = c1*b2 - c2*b1
        Dy = a1*c2 - a2*c1
        if Dx == 0 and Dy == 0:
            steps.append("Система совместна и имеет бесконечно много решений (зависимая).")
            return "\n".join(steps), "infinitely many solutions"
        else:
            steps.append("Система несовместна: решений нет.")
            return "\n".join(steps), "no solution"
    else:
        Dx = c1*b2 - c2*b1
        Dy = a1*c2 - a2*c1
        x = Dx / D
        y = Dy / D
        steps.append(f"По кр Problem: x = Dx/D, y = Dy/D, где Dx = {Dx}, Dy = {Dy}")
        steps.append(f"Итого: x = {Dx}/{D} = {x}, y = {Dy}/{D} = {y}")
        return "\n".join(steps), (x, y)

# Примеры использования
if __name__ == "__main__":
    # Пример 1: линейное уравнение 2x + 3 = 7
    steps_str, solution = solve_linear_steps(2, 3, 7)
    print("Линейное уравнение 2x + 3 = 7")
    print(steps_str)
    print("Решение:", solution)
    print("-" * 40)

    # Пример 2: квадратное уравнение x^2 - 3x + 2 = 0
    steps_q, roots = solve_quadratic_steps(1, -3, 2)
    print("Квадратное уравнение x^2 - 3x + 2 = 0")
    print(steps_q)
    print("Корни:", roots)
    print("-" * 40)

    # Пример 3: система 2x + 3y = 5; 4x + y = 6
    steps_s, sol = solve_system_steps(2, 3, 5, 4, 1, 6)
    print("Система: 2x + 3y = 5; 4x + y = 6")
    print(steps_s)
    print("Решение:", sol)

Как пользоваться

  • Изменяйте значения в вызовах функций в секции под if name == "main": чтобы подставлять свои коэффициенты.
  • Функции возвращают кортеж: (строка с шагами, решение).
    • Для линейного: решение x или особые случаи (нет решений / бесконечно много решений).
    • Для квадратного: список корней (вещественные или комплексные) или сообщение, что корней нет.
    • Для системы: пара значений (x, y) или сообщение об отсутствии/бесконечном количестве решений.

Как адаптировать под вашу задачу

  • Если у вас задача с конкретным текстом, можно передать коэффициенты в функции solve_linear_steps или solve_quadratic_steps. Например, для задачи "ax + b = c" подставляете a, b, c.
  • Если задача формулирована по-другому (например, система с другими коэффициентами или условиями), можно использовать соответствующую функцию: solve_system_steps(a1,b1,c1,a2,b2,c2).

Если предоставите конкретное задание (через текст или изображение), дам точный код под эту задачу вместе с пошаговым разбором.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Дай код
Ниже готовый готовый шаблон кода на Python для пошагового решения типичных задач средней школы. Он включает решения по: - линейному уравнению вида a*x + b = c (с пошаговым объяснением), - квадратному уравнению вида a*x^2 + b*x + c = 0 (с дискриминантом и корнями), - системе двух линейных уравнений вида a1*x + b1*y = c1 и a2*x + b2*y = c2 (через правило Крамера). Пример кода написан так, чтобы можно было вставлять его в файл и запускать. Также есть примеры использования в конце. Code (Python): ```python import math from typing import List, Tuple, Union def solve_linear_steps(a: float, b: float, c: float) -> Tuple[str, Union[float, str]]: """ Решает линейное уравнение a*x + b = c и возвращает: - подробные шаги как строку - решение x или описание случая (нет решений / бесконечно много решений) """ steps = [] steps.append(f"Дано линейное уравнение: {a}*x + {b} = {c}") if a != 0: steps.append(f"1) Вычитаем b из обеих частей: {a}*x = {c} - {b} = {c - b}") steps.append(f"2) Делим обе части на a: x = ({c} - {b}) / {a} = { (c - b) / a }") x = (c - b) / a return "\n".join(steps), x else: # a == 0 -> простое сокращение: b = c steps.append("0) Так как коэффициент при x равен 0, переобозначим: 0*x + b = c -> b = c.") if b == c: steps.append("Равенство верно независимо от x: бесконечно много решений.") return "\n".join(steps), "infinitely many solutions" else: steps.append("Равенство неверно: нет решений.") return "\n".join(steps), "no solution" def solve_quadratic_steps(a: float, b: float, c: float) -> Tuple[str, Union[List[float], str]]: """ Решает квадратное уравнение a*x^2 + b*x + c = 0 и возвращает: - подробные шаги как строку - список корней (могут быть вещественные или комплексные) или сообщение об отсутствии вещественных корней """ steps = [] steps.append(f"Дано квадратное уравнение: {a}*x^2 + {b}*x + {c} = 0") if a == 0: # Приводим к линейному виду b*x + c = 0 if b != 0: x = -c / b steps.append(f"Так как a = 0, уравнение становится линейным: {b}*x + {c} = 0") steps.append(f"x = -c / b = {-c} / {b} = {x}") return "\n".join(steps), [x] else: if c == 0: steps.append("Уравнение 0 = 0: бесконечно много решений.") return "\n".join(steps), "infinitely many solutions" else: steps.append("Уравнение противоречиво: нет решений.") return "\n".join(steps), [] # Дискриминант D = b*b - 4*a*c steps.append(f"Вычислим дискриминант: D = b^2 - 4*a*c = {b}^2 - 4*{a}*{c} = {D}") if D < 0: steps.append("D < 0: вещественных корней нет. Есть комплексные корни.") sqrtD = complex(0, math.sqrt(-D)) x1 = (-b - sqrtD) / (2*a) x2 = (-b + sqrtD) / (2*a) return "\n".join(steps), [x1, x2] elif D == 0: x = -b / (2*a) steps.append(f"D = 0: единственный корень x = -b / (2a) = {-b} / (2*{a}) = {x}") return "\n".join(steps), [x] else: sqrtD = math.sqrt(D) x1 = (-b - sqrtD) / (2*a) x2 = (-b + sqrtD) / (2*a) steps.append(f"D > 0: два корня x1 = (-b - sqrt(D)) / (2a) = {x1}, x2 = (-b + sqrt(D)) / (2a) = {x2}") return "\n".join(steps), [x1, x2] def solve_system_steps(a1: float, b1: float, c1: float, a2: float, b2: float, c2: float) -> Tuple[str, Union[Tuple[float, float], str]]: """ Решает систему: a1*x + b1*y = c1 ; a2*x + b2*y = c2 Возвращает шаги и решение (x,y) или сообщение об отсутствии/единственности решения. """ steps = [] steps.append("Даны две линейные зависимости:") steps.append(f"a1*x + b1*y = c1 -> {a1}*x + {b1}*y = {c1}") steps.append(f"a2*x + b2*y = c2 -> {a2}*x + {b2}*y = {c2}") D = a1*b2 - a2*b1 steps.append(f"Определитель D = a1*b2 - a2*b1 = {D}") if D == 0: # Система несовместна или не имеет единственного решения Dx = c1*b2 - c2*b1 Dy = a1*c2 - a2*c1 if Dx == 0 and Dy == 0: steps.append("Система совместна и имеет бесконечно много решений (зависимая).") return "\n".join(steps), "infinitely many solutions" else: steps.append("Система несовместна: решений нет.") return "\n".join(steps), "no solution" else: Dx = c1*b2 - c2*b1 Dy = a1*c2 - a2*c1 x = Dx / D y = Dy / D steps.append(f"По кр Problem: x = Dx/D, y = Dy/D, где Dx = {Dx}, Dy = {Dy}") steps.append(f"Итого: x = {Dx}/{D} = {x}, y = {Dy}/{D} = {y}") return "\n".join(steps), (x, y) # Примеры использования if __name__ == "__main__": # Пример 1: линейное уравнение 2x + 3 = 7 steps_str, solution = solve_linear_steps(2, 3, 7) print("Линейное уравнение 2x + 3 = 7") print(steps_str) print("Решение:", solution) print("-" * 40) # Пример 2: квадратное уравнение x^2 - 3x + 2 = 0 steps_q, roots = solve_quadratic_steps(1, -3, 2) print("Квадратное уравнение x^2 - 3x + 2 = 0") print(steps_q) print("Корни:", roots) print("-" * 40) # Пример 3: система 2x + 3y = 5; 4x + y = 6 steps_s, sol = solve_system_steps(2, 3, 5, 4, 1, 6) print("Система: 2x + 3y = 5; 4x + y = 6") print(steps_s) print("Решение:", sol) ``` Как пользоваться - Изменяйте значения в вызовах функций в секции под if __name__ == "__main__": чтобы подставлять свои коэффициенты. - Функции возвращают кортеж: (строка с шагами, решение). - Для линейного: решение x или особые случаи (нет решений / бесконечно много решений). - Для квадратного: список корней (вещественные или комплексные) или сообщение, что корней нет. - Для системы: пара значений (x, y) или сообщение об отсутствии/бесконечном количестве решений. Как адаптировать под вашу задачу - Если у вас задача с конкретным текстом, можно передать коэффициенты в функции solve_linear_steps или solve_quadratic_steps. Например, для задачи "ax + b = c" подставляете a, b, c. - Если задача формулирована по-другому (например, система с другими коэффициентами или условиями), можно использовать соответствующую функцию: solve_system_steps(a1,b1,c1,a2,b2,c2). Если предоставите конкретное задание (через текст или изображение), дам точный код под эту задачу вместе с пошаговым разбором.