![]() |
在這個頁面顯示本主題全部的 5 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [求救] 請問如何改寫這個FOR迴圈? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=15632)
[求救] 請問如何改寫這個FOR迴圈?
請問可以不用到FOR迴圈改寫下面這組程式嗎?
ST:=lbound(C);
A:C;
FOR i=ST+1 to datacount DO begin
A[i]:=IF(條件成立[i], C[i], A[i-1] ); //若條件不成立 則沿用前值
end;
找到一個方法.....
版主 我找到下列的方法改寫上式
CK:=(條件成立=0 AND REF(條件成立,1)=1);
SP:=BARSLAST(CK)+1;
A:=IF(條件成立,C,REF(C,SP+1));
請問這個新程式比原先FOR迴圈的版本 在奇狐上執行會較快嗎?
回覆: [求救] 請問如何改寫這個FOR迴圈?
引用:
最初由 sattvakang 發表
請問可以不用到FOR迴圈改寫下面這組程式嗎?
ST:=lbound(C);
A:C;
FOR i=ST+1 to datacount DO begin
A[i]:=IF(條件成立[i], C[i], A[i-1] ); //若條件不成立 則沿用前值
end;
回覆: 找到一個方法.....
引用:
最初由 sattvakang 發表
版主 我找到下列的方法改寫上式
CK:=(條件成立=0 AND REF(條件成立,1)=1);
SP:=BARSLAST(CK)+1;
A:=IF(條件成立,C,REF(C,SP+1));
請問這個新程式比原先FOR迴圈的版本 在奇狐上執行會較快嗎?
在FOR 迴圈當中
不要用 IF(cond,A,B) 去存取計算 [單一元素]
改用 IF ..... THEN ..... ELSE .....
速度會提升許多
IF(cond,A,B) 是專為數列對數列計算設置的
若應用它來算 [單一元素] 會比較慢
全部時間均為台灣時間, 現在時間為13:26 | 在這個頁面顯示本主題全部的 5 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.