Вопрос задан 28.03.2025 в 08:06. Предмет Информатика. Спрашивает Скоморохов Владимир.

Даны действительные числа a, b, c. Найдите все решения квадратного уравнения ax2 + bx + c = 0. Формат входных данных Даны три действительных числа, a не равно 0. Формат выходных данных Выведите два действительных числа, если уравнение имеет два корня, одно действительное число – при наличии одного корня. При отсутствии действительных корней ничего выводить не нужно. помогите пожалуйста решить на С++

Перейти к ответам

Ответы на вопрос

Отвечает Домашкевич Антон.

Для решения данного задания на языке C++, нам нужно рассмотреть стандартную формулу для нахождения корней квадратного уравнения вида:

ax2+bx+c=0ax^2 + bx + c = 0

где aa, bb, и cc — это действительные числа, и a0a \neq 0.

Шаги решения:

  1. Вычисление дискриминанта: Дискриминант квадратного уравнения Δ\Delta вычисляется по формуле:

    Δ=b24ac\Delta = b^2 - 4ac
    • Если дискриминант Δ>0\Delta > 0, то уравнение имеет два различных действительных корня.
    • Если дискриминант Δ=0\Delta = 0, то уравнение имеет один действительный корень.
    • Если дискриминант Δ<0\Delta < 0, то уравнение не имеет действительных корней.
  2. Вычисление корней:

    • Для Δ>0\Delta > 0, корни вычисляются по формулам:
    x1=b+Δ2a,x2=bΔ2ax_1 = \frac{-b + \sqrt{\Delta}}{2a}, \quad x_2 = \frac{-b - \sqrt{\Delta}}{2a}
    • Для Δ=0\Delta = 0, корень:
    x=b2ax = \frac{-b}{2a}

Пример кода на C++:

cpp
#include #include using namespace std;

int main() { double a, b, c; cin >> a >> b >> c; // Ввод коэффициентов

// Вычисляем дискриминант double discriminant = b * b - 4 * a * c;

if (discriminant > 0) { // Два корня double x1 = (-b + sqrt(discriminant)) / (2 * a); double x2 = (-b - sqrt(discriminant)) / (2 * a); cout << x1 << " " << x2 << endl; // Выводим оба корня } else if (discriminant == 0) { // Один корень double x = -b / (2 * a); cout << x << endl; // Выводим единственный корень }

// Если дискриминант < 0, выводить ничего не нужно return 0; }

Пояснение к коду:

  1. В начале мы вводим три числа: коэффициенты aa, bb и cc.
  2. Затем вычисляем дискриминант Δ\Delta по формуле Δ=b24ac\Delta = b^2 - 4ac.
  3. Если Δ>0\Delta > 0, то уравнение имеет два действительных корня, и мы вычисляем их с помощью стандартной формулы для корней квадратного уравнения.
  4. Если Δ=0\Delta = 0, выводим один корень.
  5. Если Δ<0\Delta < 0, то действительных корней нет, и программа ничего не выводит.

Этот код решает задачу корректно и эффективно для всех случаев, заданных в условии.

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос