?
?來源:程序化99網( m.kzuj.com.cn )
博易技術人員: 運行是沒有問題的,但可能跟你預想的不一樣。 就是運行有問題,但程序算法沒有問題的。為了比較直觀看到是循環語句的問題,我特意寫了上下兩段程序,上段是用循環方法,下段是直接計算法,求同一結果。程序如下,運行后結果如下圖:MSR:=(REF(C,1)-C);
KM:=1;
FORII:=2TO4DO
BEGIN
SR:=(REF(C,II)-C)/II;[b]{分別計算過去第II周期到當前周期的斜率}[/b]
MSR:=IF(SR>MSR,SR,MSR);
KM:=IF(SR>MSR,II,KM);
END
[b]{以上用循環語句的方法比較斜率SR,得到五周棋內斜率最大值MSR,同時記錄最大斜率所在周期KM}
{以下用直接法求最大斜率所在周期}[/b]
SR1:(REF(C,1)-C)/1;
SR2:(REF(C,2)-C)/2;
SR3:(REF(C,3)-C)/3;
SR4:(REF(C,4)-C)/4;
MSR2:=MAX(SR1,SR2,SR3,SR4);
KM2:=IF(MSR2=SR1,1,IF(MSR2=SR2,2,IF(MSR2=SR3,3,4)));
[b]{兩種方法的算法是等價的,比較兩種方法的結果,顯然,循環語句計算結果有問題,但程序算法沒問題的}
[/b]DRAWNUMBER(1,12,KM,0);[b]
{結果顯示全是1}[/b]
DRAWNUMBER(1,9,KM2,0);
[b][attach]5642[/attach][/b]