奇狐社區論壇
在這個頁面顯示本主題全部的 8 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 要賦單值 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=16398)


由 peter109 在 2012-01-29 21:04 發表:

要賦單值

XOpen:C*0,LINETHICK0;

FOR i=LB TO DATACOUNT DO BEGIN
XOpen:=REF(OO[i],X03[i]);

END;

這樣可以通過

XOpen:C*0,LINETHICK0;

FOR i=LB TO DATACOUNT DO BEGIN
XOpen[i]:=REF(OO[i],X03[i]);

END;
這樣卻出現 要賦單值

找不出錯誤在哪 煩請指正 謝

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 cgjj 在 2012-01-30 09:21 發表:

回覆: 要賦單值

引用:
最初由 peter109 發表
XOpen:C*0,LINETHICK0;

FOR i=LB TO DATACOUNT DO BEGIN
XOpen:=REF(OO[i],X03[i]);

END;

這樣可以通過

XOpen:C*0,LINETHICK0;

FOR i=LB TO DATACOUNT DO BEGIN
XOpen[i]:=REF(OO[i],X03[i]);

END;
這樣卻出現 要賦單值

找不出錯誤在哪 煩請指正 謝



REF 一般不會應用在迴圈之中, 因為其是針對整個數列做偏移存取
在迴圈中只需用 X[i-n] 就可 替代 ref(X,n) 了

故 XOpen[i]:=REF(OO[i],X03[i]);
要改為 XOpen[i]:=OO[i-X03[i]];

請留意 i-X03[i] 是否會小於 lbound(OO)
若會, 則會存取超過數列有效範圍, 會引發錯誤


由 peter109 在 2012-01-30 10:04 發表:

學習了 謝先
盤後再來處理

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 peter109 在 2012-01-30 11:49 發表:

請問 如果將
XOpen[i]:=REF(OO[i],X03[i]);
變更為下式 該如何處理?
XOpen[i]:=REF(REFX(HHV(OO[i],N),N-1),X03[i]);

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 cgjj 在 2012-01-30 13:30 發表:

引用:
最初由 peter109 發表
請問 如果將
XOpen[i]:=REF(OO[i],X03[i]);
變更為下式 該如何處理?
XOpen[i]:=REF(REFX(HHV(OO[i],N),N-1),X03[i]);



若迴圈內不會去變更 OO 和 N 的值
那麼 REFX(HHV(OO[i],N),N-1) 這一段, 就沒必要置入迴圈中算

若連 X03 迴圈內也都不會變更
那麼整段 REF(REFX(HHV(OO[i],N),N-1),X03[i]) 都不需置入迴圈中算


由 peter109 在 2012-01-30 13:54 發表:

一切都只是為了學習迴圈中的一些寫法

源頭起因於想避免計算所有的K棒 減輕運算負擔
因此 才會想 如果計算有限K棒 那迴圈中的的一些計算方式會做什麼藥的改變

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 cgjj 在 2012-01-30 14:08 發表:

引用:
最初由 peter109 發表
一切都只是為了學習迴圈中的一些寫法

源頭起因於想避免計算所有的K棒 減輕運算負擔
因此 才會想 如果計算有限K棒 那迴圈中的的一些計算方式會做什麼藥的改變



要轉化 HHV 在迴圈中 <=== HHV(OO,N)
需再動用一層迴圈來處理, 範例:
MaxOO[i]:=OO[i];
for j=1 to N-1 do begin
if OO[i-j]>MaxOO[i] then MaxOO[i]:=OO[i-j];
end;


減輕運算負擔
可運用SETLBOUND, 以程式控制計算多少根, 請參考此例
http://www.chiefox.com.tw/bbs/showt...?s=&postid=8101


由 peter109 在 2012-01-30 16:19 發表:

再謝

__________________
至誠能勝天下至偽
至拙能勝天下至巧


全部時間均為台灣時間, 現在時間為13:37
在這個頁面顯示本主題全部的 8 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.