MS13. Решение квадратных уравнений

Условие задачи:
Каждая четвёрка чисел входного потока представляет собой квадратное уравнение в такой форме $ax^2+bx+c=d.$ Выпишите через запятую решения этих уравнений (если это возможно).

Тесты:

Входной поток чисел Корни уравнений
1 -6 8 0 1 12 20 0 2, 4; -10, -2;
1 1 -6 -2 1 -2 10 0 -2.56155, 1.56155; нет корней;
2 -0.5 2.2 0 5 0 -25 0 нет корней; -2.23607, 2.23607;

Код на языке C++:

Код на языке Java:

Решение задачи:
Для решения этой задачи используется цикл, который выполняется до тех пор, пока в потоке подряд расположены четыре числа, четыре коэффициента, которые стоят перед неизвестными в квадратном уравнении классического вида: [latex]ax^{2}\pm bx\pm c=d[/latex]. Для самого нахождения корней использовалась известная формула [latex]x_{1,2}=\frac{-b-\sqrt{b^{2} \pm 4a(c-d)}}{2a}[/latex]. В коде, для удобства, она была разделена на две части: нахождение дискриминанта [latex]D[/latex] и нахождение самих корней, что возможно (на вещественной числовой оси) лишь при условии [latex]D>0[/latex].

Решение задачи на C++: Ideone
Решение задачи на Java: Ideone

Related Images:

А48

Задача:

Даны действительные числа [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] ([latex]a[/latex]≠0). Выяснить, имеет ли уравнение [latex]ax^2 + bx + c = 0[/latex]  действительные корни. Если корни имеются, то найти их. В противном случае ответом должно служить сообщение, что корней нет.

Тесты:

Ввод: Вывод: Результат
a b c
0 *ввод не доступен* *ввод не доступен* неверный ввод Нарушено первоначальное условие, дальнейший ввод не доступен
1 -3 2 уравнение имеет два действительных корня:x1=1.00×2=2.00 уравнение обладает двумя действительными корнями, которые были найдены
9 54 81 уравнение имеет один действительный корень:x0=-3.00 уравнение обладает единственным действительным корнем, который был найден
3 11 19 уравнение не имеет действительных корней корни уравнения отсутствуют
 4  21  24 уравнение имеет два действительных корня:x1=-6.73×2=-14.27 уравнение обладает двумя действительными корнями, которые были найдены
 -2 -3.7 5 уравнение имеет два действительных корня:x1=5.51×2=-1.81 уравнение обладает двумя действительными корнями, которые были найдены

Код программы:

 

Отчёт:

В случае, если параметр не равен нулю, программа позволяет ввести последующие параметр b и константу c. После этого программа ищет дискриминант D по формуле [latex]b^2-4ac[/latex]. Если дискриминант меньше нуля, то программа выдаст сообщение об отсутствии действительных корней в уравнении. Если же дискриминант равен нулю, тогда получим сообщение о наличии единственного корня  уравнения x0, который будет посчитан по формуле [latex]\frac{-b}{2a}[/latex]. В случае, когда дискриминант больше нуля, программа сообщит, что у уравнения есть два действительных корня, после чего будет посчитан корень от дискриминанта d для удобства нахождения первого корня x1: [latex]\frac{-b+d}{2a}[/latex], а затем второго x2: [latex]\frac{-b-d}{2a}[/latex]. Оба корня будут выведены на экран.

Ссылка на дубликат кода в Ideone: http://ideone.com/ZQv9AS

Related Images:

А49

Задача: Дано действительное число  [latex]h[/latex] , Выяснить, имеет ли уравнение  [latex]{ ax }^{ 2 }+bx+c=0[/latex]  действительные корни, если:

[latex]a=\sqrt{\frac{\left|\sin{8h}\right|+17}{{(1-\sin{4h}\cos({h}^{2}+18))}^{2}}}[/latex]  ,

[latex]b=1-\sqrt {\frac {3}{3+\left|\tan{a{h}^{2}}-\sin{ah}\right|}}[/latex],

[latex]c=a{ h }^{ 2 }\sin{bh}+b{ h }^{ 3 }\cos{ah}[/latex]  .

Если действительные корни существуют, то найти их. В противном случае ответом должно служить сообщение, что корней нет.

h Корни Комментарий
-10 (-11.8266, 11.7792) Пройден
-7.5 (-7.02349, 6.99523) Пройден
-2 (-1.36947, 1.36885) Пройден
-1 (-0.400785, 0.3912) Пройден
0 0 Пройден (1 корень)
1 корней нет Пройден
2 корней нет Пройден
7.5 корней нет Пройден
10 корней нет Пройден

 

Задача простая. Алгоритм решения такой-же, как и при решении квадратного уравнения.

 

Проверить программу на ideone

Вывод: В тестах взял стандартный набор значений. Программа работает. Интересно заметить, что при любом положительном значении [latex]h[/latex] корней нет.

Related Images: