Ладно, значит будет с комплексными.
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
d := Sqrt(d);
Println('x1 =', (-b - d) / 2 / a);
Println('x2 =', (-b + d) / 2 / a)
end
d := Sqrt(-d);
Println('x1 =', -b / 2 / a, '-', d / 2 / a, 'I');
Println('x2 =', -b / 2 / a, '+', d / 2 / a, 'I')
end.
#include <iostream>
#include <math.h> // for sqrt() function
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int a, b, c;
double D;
cout << "Введите a, b, c (ax^2 + bx + c = 0) : ";
cin >> a >> b >> c;
D = b*b - 4*a*c;
if(D < 0){
cout << "\nДискриминант меньше нуля, действительных корней нет!";
return 0;
}
else if(D == 0){
cout << "\nДискриминант равен нулю, x0 = " << -(b/2*a);
else if(D > 0){
cout << "Дискриминант больше нуля, x1 = " <<
(-b + sqrt(D))/(2*a) << ", x2 = " <<
(-b - sqrt(D))/(2*a);
Введите 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
Ладно, значит будет с комплексными.
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.15x1 = -2.56084694733339 x2 = 1.06084694733339 Введите через пробел a, b, c: 3 4 5x1 = -0.666666666666667 - 1.10554159678513 I x2 = -0.666666666666667 + 1.10554159678513 I#include <iostream>
#include <math.h> // for sqrt() function
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int a, b, c;
double D;
cout << "Введите a, b, c (ax^2 + bx + c = 0) : ";
cin >> a >> b >> c;
D = b*b - 4*a*c;
if(D < 0){
cout << "\nДискриминант меньше нуля, действительных корней нет!";
return 0;
}
else if(D == 0){
cout << "\nДискриминант равен нулю, x0 = " << -(b/2*a);
return 0;
}
else if(D > 0){
cout << "Дискриминант больше нуля, x1 = " <<
(-b + sqrt(D))/(2*a) << ", x2 = " <<
(-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