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

奇狐社區論壇 (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=17477)


由 q45168 在 2013-01-29 14:57 發表:

請問寫法

請問寫法
請教個問題:如何將以下程式改寫為不用迴圈的寫法?
FO:=OPEN;
FH:=HIGH;
FL:=LOW;
FC:=CLOSE;
<%
vo=ffl.vardata("fo")
vh=ffl.vardata("fh")
vl=ffl.vardata("fl")
vc=ffl.vardata("fc")
last=ubound(vc)
vc(0)=(vh(0)+vl(0)+2*vc(0))/4
for i=1 to last
vo(i)=(vo(i-1)+vc(i-1))/2
if vo(i)>vh(i) then vh(i)=vo(i) else vh(i)=vh(i)
if vo(i)<vl(i) then vl(i)=vo(i) else vl(i)=vl(i)
vc(i)=(2*vc(i)+vh(i)+vl(i))/4
next
ffl.vardata("fo")=vo
ffl.vardata("fh")=vh
ffl.vardata("fl")=vl
ffl.vardata("fc")=vc
%>
KK:=IF(FC>=FO AND (FC>=REF(FC,1) OR REF(FC,1)>=REF(FO,1)),1,IF(FC<FO AND (FC<REF(FO,1) OR REF(FC,1)<REF(FO,1)),-1,0));
今日折:=ROUND(IF(KK=1,MIN(FC,FO),IF(KK=-1,MAX(FC,FO),IF(REF(KK,1)=1,MIN(FC,FO),IF(REF(KK,1)=-1,MAX(FC,FO),(FC+FO)/2)))));


由 cgjj 在 2013-01-29 21:57 發表:

回覆: 請問寫法

引用:
最初由 q45168 發表
請問寫法
請教個問題:如何將以下程式改寫為不用迴圈的寫法?
FO:=OPEN;
FH:=HIGH;
FL:=LOW;
FC:=CLOSE;
<%
vo=ffl.vardata("fo")
vh=ffl.vardata("fh")
vl=ffl.vardata("fl")
vc=ffl.vardata("fc")
last=ubound(vc)
vc(0)=(vh(0)+vl(0)+2*vc(0))/4
for i=1 to last
vo(i)=(vo(i-1)+vc(i-1))/2
if vo(i)>vh(i) then vh(i)=vo(i) else vh(i)=vh(i)
if vo(i)<vl(i) then vl(i)=vo(i) else vl(i)=vl(i)
vc(i)=(2*vc(i)+vh(i)+vl(i))/4
next
ffl.vardata("fo")=vo
ffl.vardata("fh")=vh
ffl.vardata("fl")=vl
ffl.vardata("fc")=vc
%>
KK:=IF(FC>=FO AND (FC>=REF(FC,1) OR REF(FC,1)>=REF(FO,1)),1,IF(FC<FO AND (FC<REF(FO,1) OR REF(FC,1)<REF(FO,1)),-1,0));
今日折:=ROUND(IF(KK=1,MIN(FC,FO),IF(KK=-1,MAX(FC,FO),IF(REF(KK,1)=1,MIN(FC,FO),IF(REF(KK,1)=-1,MAX(FC,FO),(FC+FO)/2)))));



為何不用迴圈呢?

這一段迴圈, 是 Call vbscript 寫的
其中的 vo , 其有用前一根的 vo 和 vc 值去做計算
故其必定要用迴圈來處理

就算改用奇狐本身的語法來寫, 也是需要動用迴圈的
原碼:

fo
:=ofh:=hfl:=lfc:=c;
fc[1]:=(2*fc[1]+fh[1]+fl[1])/4;
for 
i=2 to datacount do begin
  fo
[i]:=(fo[i-1]+fc[i-1])/2;
  if 
fo[i]>fh[ithen fh[i]:=fo[i];
  if 
fo[i]<fl[ithen fl[i]:=fo[i];
  
fc[i]:=(2*fc[i]+fh[i]+fl[i])/4;
end;


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


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

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