Задача №911 Квадратне рівняння

Скласти програму для розв’язання квадратного рівняння ax2 + bx + c = 0 (a ≠ 0).

Вхідні дані

У єдиному рядку задано через пропуск 3 цілі числа - коефіцієнти квадратного рівняння відповідно a, b та c. Значення коефіцієнтів не перевищують по модулю 100.

Вихідні дані

У єдиному рядку вивести у випадку відсутності коренів повідомлення “No roots” (без лапок), у випадку, якщо розв’язок містить один корінь вивести спочатку повідомлення “One root:” (без лапок), а далі через пропуск сам корінь, у випадку наявності двох коренів вивести спочатку повідомлення “Two roots:” (без лапок), а далі через пропуск спочатку менший, а потім більший корінь. Гарантується, що у випадку наявності розв’язків всі корені цілочисельні.

Розв’язок

var a, b, c: integer;
    d, x1, x2: real;
begin
    readln(a, b, c);
    d := sqr(b) - 4 * a * c;
    if d < 0 then
        writeln("No roots")
    else if d = 0 then
    begin
        x1 := -b / (2 * a);
        writeln("One root: ", x1)
    end
    else
    begin
        x1 := (-b - sqrt(d)) / (2 * a);
        x2 := (-b + sqrt(d)) / (2 * a);
        if x1 < x2 then
            writeln("Two root: ", x1, " ", x2)
        else
            writeln("Two root: ", x2, " ", x1)
    end;
end.

Дивіться також: