p1116.bak

来自「www.vijos.cn上一些习题的参考源码」· BAK 代码 · 共 39 行

BAK
39
字号
var
    a,b,c,d:double;
    x1,x2,xx:double;
    x:integer;

function power(x:double; y:word):double;
begin
    if x=0 then power:=0
    else if y=0 then power:=1
    else if x>0 then
        power:=exp(y*ln(x))
    else
        if odd(y) then power:=(-1)*exp(y*ln(abs(x)))
        else power:=exp(y*ln(abs(x)))
end;

function f(x:double):double;
begin
    f:=a*power(x,3)+b*power(x,2)+c*x+d;
end;

begin
    readln(a,b,c,d);
    for x:=-100 to 100 do begin
        x1:=x; x2:=x+1;
        if f(x1)=0 then write(x1:0:2,' ')
        else if(f(x1)*f(x2)<0) then begin
            while x2-x1>=0.001 do begin
                xx:=(x1+x2)/2;
                if f(x1)*f(x2)<=0 then
                    x2:=xx
                else
                    x1:=xx;
            end;
            write(x1:0:2,' ');
        end;
    end;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?