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

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


由 andrewtwxx 在 2011-12-21 09:40 發表:

連續上漲天數

Hi 版主 :


我寫了一段程式去算連續上漲的天數


***********************************
upc:0;
a:=0;
b:=0;
k:=0;

for i=0 to 10 do
begin
k:=i+1;
a:=ref(c,i);
b:=ref(c,k);
if a>b then upc:=upc+1 else break;
end;

******************************
其中這一行
{if a>b then upc:=upc+1 else break; }
編譯不能過
好像a, b 不能拿來比較
但如果我把 其中兩行拿掉
//a:=ref(c,i);
//b:=ref(c,k);
a b就變成單純的變數 又可以拿來比較
程式可以編譯

請幫忙解惑
為什麼 用a b 這兩個變數去存取 過去的 close 之後就不能比較 ?

那如何改
感謝
Andrew


由 cgjj 在 2011-12-21 10:08 發表:

回覆: 連續上漲天數

引用:
最初由 andrewtwxx 發表
Hi 版主 :


我寫了一段程式去算連續上漲的天數


***********************************
upc:0;
a:=0;
b:=0;
k:=0;

for i=0 to 10 do
begin
k:=i+1;
a:=ref(c,i);
b:=ref(c,k);
if a>b then upc:=upc+1 else break;
end;

******************************
其中這一行
{if a>b then upc:=upc+1 else break; }
編譯不能過
好像a, b 不能拿來比較
但如果我把 其中兩行拿掉
//a:=ref(c,i);
//b:=ref(c,k);
a b就變成單純的變數 又可以拿來比較
程式可以編譯

請幫忙解惑
為什麼 用a b 這兩個變數去存取 過去的 close 之後就不能比較 ?

那如何改
感謝
Andrew



求已經上漲幾天, 可用下行求得
barslast(c<=o);

===================================
if a>b then 不能用是因為 a 和 b 您導入的都是數列
if .... then 的條件式值, 必需為單值(不可為數列)
if(cond,a,b) 的條件式值, 則可為數列


由 cgjj 在 2011-12-21 10:19 發表:

一般來說
if .... then 大多會與迴圈一起搭配處理
例如:
CC:=C;OO:=O;KK:=C*0;
for i=1 to datacount do begin
if CC[i]>OO[i] then KK[i]:=1; //kk=1代表該根為漲
end;


由 andrewtwxx 在 2011-12-22 10:27 發表:

感謝!!


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


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

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