pascal求一元二次方程(二次项系统不为0)ax2+bx+c=0(a≠0)的实数根

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:26:34

begin
readln(a,b,c);
if b*b<4*a*c then
writeln('No answer')
else
if b*b=4*a*c then
writeln(-b/(2*a):0:2)
else
begin
writeln((-b+sqrt(b*b-4*a*c))/(2*a):0:2);
writeln((-b-sqrt(b*b-4*a*c))/(2*a):0:2);
end;
end.

var a,b,c,x1,x2:real;

begin
readln(a,b,c);
x1:=(-1*b-sqrt(b*b-4*a*c))/(2*a);
x2:=(-1*b-sqrt(b*b-4*a*c))/(2*a);
writeln(x1:0:3);//保留三位小数,下同
writeln(x2:0:3);
end.

Y=ax²+bx+c
=a(x²+bx/a+c/a)
=a[x²+bx/a+(b/2a)²-(b/2a)²+c/a]
=a[(x+b/2a)²-b²/4a²+c/a]
=a(x+b/2a)²-b²/4a+4c/4a
=a(x+b/2a)²+(4ac-b²)/4a