Напишите программу для вычисления и вывода ** экран корней квадратного уравнения ax² + bx...

0 голосов
41 просмотров

Напишите программу для вычисления и вывода на экран корней квадратного уравнения ax² + bx + c = 0. Значения коэффициентов уравнения вводите в диалоговом режиме.


Информатика (176 баллов) | 41 просмотров
0

По одному вводить или сразу три можно? И еще? при отрицательном дискриминанте считать, что решения нет или выдавать комплексные корни?

0

Понятно, автор вопроса - пофигист)

0

Вам не обязаны отвечать в ту же минуту, в которую Вы задали вопрос. Автор в инактиве с того момента, когда задал вопрос.

0

.. в которую Вы прокомментировали*

0

Любой, задавший вопрос и тут же ушедший в оффлайн - либо пофигист, либо крайне самоуверенный человек, что все равно ведет к пофигизму. Всегда могут быть нюансы, которые автор вопроса не учел.

0

Уж за двадцать с лишним минут можно было поинтересоваться судьбой вопроса.

Дано ответов: 2
0 голосов
Правильный ответ

Ладно, значит будет с комплексными.

PascalABC.NET 3.4.2, сборка 1843 от 24.10.2018

Внимание! Если программа не работает, обновите версию!

begin

 var (a, b, c) := ReadReal3('Введите через пробел a, b, c:');

 var d := b * b - 4 * a * c;

 if d = 0 then Println('х =', -b / a)

 else

 if d > 0 then

 begin

   d := Sqrt(d);

   Println('x1 =', (-b - d) / 2 / a);

   Println('x2 =', (-b + d) / 2 / a)

 end

   else

 begin

   d := Sqrt(-d);

   Println('x1 =', -b / 2 / a, '-', d / 2 / a, 'I');

   Println('x2 =', -b / 2 / a, '+', d / 2 / a, 'I')

 end

end.

Примеры

Введите через пробел a, b, c: 1 2 1

х = -2

Введите через пробел a, b, c: 3 4.5 -8.15

x1 = -2.56084694733339

x2 = 1.06084694733339

Введите через пробел a, b, c: 3 4 5

x1 = -0.666666666666667 - 1.10554159678513 I

x2 = -0.666666666666667 + 1.10554159678513 I

(654k баллов)
0 голосов

Код

#include

#include // for sqrt() function

using namespace std;

int main()

{

   setlocale(LC_ALL, "Russian");

   int a, b, c;

   double D;

   cout

   cin >> a >> b >> c;

   D = b*b - 4*a*c;

   if(D < 0){

       cout

       return 0;

   }

   else if(D == 0){

       cout

       return 0;

   }

   else if(D > 0){

       cout << "Дискриминант больше нуля, x1 = " <<  </p>

       (-b + sqrt(D))/(2*a)

       (-b - sqrt(D))/(2*a);

   }

   return 0;

}

Проверка

Введите a, b, c (ax^2 + bx + c = 0) : 2 4 7

Дискриминант меньше нуля, действительных корней нет!

Введите a, b, c (ax^2 + bx + c = 0) : 1 6 9

Дискриминант равен нулю, x0 = -3

Введите a, b, c (ax^2 + bx + c = 0) : 2 4 -7  

Дискриминант больше нуля, x1 = 1.12132, x2 = -3.12132

(5.6k баллов)