pascal一元三次方程求解 2001年NOIP全国联赛提高组 求代码!Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 02:30:52
pascal一元三次方程求解 2001年NOIP全国联赛提高组 求代码!Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根

pascal一元三次方程求解 2001年NOIP全国联赛提高组 求代码!Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根
pascal一元三次方程求解 2001年NOIP全国联赛提高组 求代码!
Description
有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1.要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位.
提示:记方程f(x)=0,若存在2个数x1和x2,且x1

pascal一元三次方程求解 2001年NOIP全国联赛提高组 求代码!Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根
var
i,n,f:integer;
a,b,c,d,r1,r2:extended;
function func(x:extended):extended;
begin
func:=a*x*x*x+b*x*x+c*x+d;
end;
function ans(e1,e2:extended):extended;
var
e:extended;
l:integer;
begin
if func(e1)>0 then l:=1 elae l:=-1;
repeat
e:=(e1+e2)/2;
if func(e)*l>=0 then e1:+1 else e2:=e;
until abs(e1-e2)0 then f:=1 ealse f:=-1;
r2:=r1;
while func(r2)*f>=0 do inc(r2,0.9);
write(ans(r1,r2):0:2,' ');
r1:=r2;
f:=-f;
while func(r2)*f>=0 do inc(r2,0.9);
write(ans(r1,r2):0:2,' ');
r1:=r2;
f:=-f;
while func(r2)*f>=0 do inc(r2,0.9);
write(ans(r1,r2):0:2);
end.