我定义了一个函数如下:目的是为了得到不同X值下的CP,X的范围是0~3727,可是我得到的数值并不是预期的。是不是这段代码出了问题。不能直接用多个if ..then 吗?请大家帮忙解决下 谢谢
FUNCTION CP(X:Real):Real;
begin
IF(X<=37)THEN
    A0:=1;
    CP:=A0*X;
IF(X<=97)THEN
    A0:=12;
    CP:=A0*X;
IF(X<=387)THEN
    A0:=123;
    CP:=A0*X   
IF(X<=1527)THEN
    A0:=1234;
    CP:=A)*X
IF(X<=3727)THEN
    A0:=12345;
    CP:=A0*X;
end;

解决方案 »

  1.   

    楼主是学C++出身的吧......
    浮点比较大小是不能这样操作的.....
    初步帮你改了一下,你自己看看吧.
    FUNCTION CP(X:Real):Real;begin
    IF(x>=0)and(X<=37)THEN begin
        A0:=1;
        CP:=A0*X;
    end;
    IF(x>37)and (X<=97)THEN begin
        A0:=12;
        CP:=A0*X;
    end;
    IF(x>97)and(X<=387)THEN begin
        A0:=123;
        CP:=A0*X  
    end; 
    IF(x>387)and(X<=1527)THEN begin
        A0:=1234;
        CP:=A)*X;
    end;
    IF(x>1527)and(X<=3727)THEN begin
        A0:=12345;
        CP:=A0*X;
    end;
    end;
      

  2.   

    这个不会觉得怪吗,当X<=37时,下面几种情况都符合条件了,应该要有一个范围吧,例如第二个要这样写吧if(X>37 and X<+97) then...不知道符合你意思没