Другие языки программирования и технологии

Дайте мне любое квадратное уравнение

Дайте мне какое-нибудь кв. уравнение и ответ, я дам его моей программе и проверю её.
vi
vipzajac
1 674
С комплексными корнями подойдёт? )
x^2+2*x+3=0
Корни:
x1=-1+i*корень (2)
x2=-1-i*корень (2)
Лазарев Дмитрий
Лазарев Дмитрий
17 969
Лучший ответ
vipzajac Не знаю, что такое "комплексные корни" (или не помню ☺), но программа говорит:
"Корня нет, дискриминант равен -8"
Верно?
// У меня есть своя программа, а уравнений нет (
#include <iostream>
using namespace std;
int main() {
locale::global(locale(""));
double a, b, c;
cout << " Введите a: "; cin >> a;
cout << " Введите b: "; cin >> b;
cout << " Введите c: "; cin >> c;
if (!a) cout << "\n Уравнение не имеет корней! " << endl;
else {
double D = pow(b, 2) - 4 * a * c;
if (D < 0) cout << "\n Уравнение не имеет действительных корней! " << endl;
else if (!D) {
double x = -b / (2 / a);
if (!b && !c) x = 0;
cout << "\n Уравнение имеет один корень: x = " << x << endl;
} else {
double x1 = (-b - sqrt(D)) / (2 * a);
double x2 = (-b + sqrt(D)) / (2 * a);
cout << "\n Уравнение имеет два корня: "
<< endl << " x1 = " << x1
<< endl << " x2 = " << x2
<< endl;
}
}
cin.sync();
cin.get();
return 0;
}
И у меня тоже, только на Pascal:

program sqroot;
var a,b,c,d,x1,x2,e,f:real;
begin
write('a b c ? '); readln(a,b,c);
if a=0 then
if b<>0 then writeln('x=',c/b:10:5)
else writeln ('No solution')
else
begin d:=b*b-4*a*c;
if d<0 then
begin
WriteLn('No real solution');
e:=-b/(2*a); f:=sqrt(abs(d))/(2*a);
WriteLn('x1=',e:10:5,' +',f:10:5,' i');
WriteLn('x2=',e:10:5,' -',f:10:5,' i');
end
else
begin
d:=sqrt(d);
x1:=(-b+d)/(2*a); x2:=(-b-d)/(2*a);
if abs(x1)>abs(x2) then x2:=c/a/x1 else x1:=c/a/x2;
WriteLn('x1=',x1:10:5);
WriteLn('x2=',x2:10:5);
end;
end;
ReadLn
end.