二次方程的实根我试图解决这个问题:计算以帕斯卡
(写一个程序来计算二次方程式(AX + BX + C = 0)的实根。 -/2A
和
X2 =(-b - SQRT(b
X1 =(4AC)-b + SQRT(b ):根可使用以下公式计算 - 4AC))/ 2A
我写了下面的代码,但其不正确:
program week7_lab2_a1;
var a,b,c,i:integer;
x,x1,x2:real;
begin
write('Enter the value of a :');
readln(a);
write('Enter the value of b :');
readln(b);
write('Enter the value of c :');
readln(c);
if (sqr(b)-4*a*c)>=0 then
begin
if ((a>0) and (b>0)) then
begin
x1:=(-1*b+sqrt(sqr(b)-4*a*c))/2*a;
x2:=(-1*b-sqrt(sqr(b)-4*a*c))/2*a;
writeln('x1=',x1:0:2);
writeln('x2=',x2:0:2);
end
else
if ((a=0) and (b=0)) then
write('The is no solution')
else
if ((a=0) and (b<>0)) then
begin
x:=-1*c/b;
write('The only root :',x:0:2);
end;
end
else
if (sqr(b)-4*a*c)<0 then
write('The is no real root');
readln;
end.
你知道为什么吗?
并取a = -6,b = 7,c = 8 ..你可以在写好pesudocode后进行检查吗?
感谢Tomas。我想排除(sqr(b)-4 * a * c)的负值。但是,即使在将2 * a修改为(2a)后,当我试图通过应用a = -6,b = 7,c = 8来运行程序时,也没有输出。你能检查它吗?再次感谢 – user1592356 2012-08-11 16:01:43
@ user1592356那部分是好的,我的意思是系数a,b,c。如果仔细查看代码并浏览它,则会发现它完全忽略了“a”的负值。 – Thomas 2012-08-11 16:03:36