全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1461
推到 Plurk!
推到 Facebook!

如何循環運算並可以跳過指定的數值

答題得分者是:nickcai2002
mirood
一般會員


發表:10
回覆:27
積分:7
註冊:2007-02-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-31 13:20:55 IP:203.160.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { int i,j,k; Edit2->Text=k; for(i=0;i<9;i ) { if(i!=k) { j=i i 1; } Edit1->Text=j; } } </textarea>

請問各位大大,
為甚麼小弟Edit2預設3的數字,
但是迴圈運算之後,
卻會跳成7呢?
小弟是想寫一個簡單循環運算的程式,
但是Edit2可以輸入任意數字,
譬如輸入3的話,
運算會從0開始運算到8,
中間會跳過3的數值,
請問小弟的程式哪邊有問題呢?
謝謝大家~
編輯記錄
mirood 重新編輯於 2007-05-31 13:21:26, 註解 無‧
mirood
一般會員


發表:10
回覆:27
積分:7
註冊:2007-02-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-31 13:35:34 IP:203.160.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { int i,j,k; k=StrToInt(Edit2->Text); for(i=0;i<9;i ) { if(i!=k) j=i i 1; Edit1->Text=j; } } </textarea> 這樣就行了~哈哈
mirood
一般會員


發表:10
回覆:27
積分:7
註冊:2007-02-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-31 14:06:51 IP:203.160.xxx.xxx 訂閱
請問一下,
如何利用Memo輸入多個數值,
使循環運算跳過多個數值作計算呢?
例如:除了Memo內1 3 5的數值,其餘的數值都納入運算!
謝謝~
編輯記錄
mirood 重新編輯於 2007-05-31 14:25:31, 註解 無‧
nickcai2002
一般會員


發表:3
回覆:20
積分:24
註冊:2004-11-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-31 15:21:23 IP:59.125.xxx.xxx 訂閱
~"~ 想說第二個問題你也可以花15分鐘解出來.....
你的問題應該是在字串如何拆成一個陣列索引加入判斷,我偷懶用元件處理.你參考看看,

<textarea class="cpp" rows="10" cols="60" name="code">void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString paText; TStringList *pp=new TStringList; //用TStringList 當動態陣列用 //****拆解Memo1 文字 for (int i=0;iLines->Count;i ) { paText = Memo1->Lines->Strings[i].Trim(); while(paText.Trim()!="") { pp->Add(paText.SubString(1,paText.Pos(" ")-1)); //用 空白 當判斷位元 paText.Delete(1,paText.Pos(" ")); if (paText.Pos(" ")<1) { pp->Add(paText.Trim()); paText=""; } } } //*****拆解結束 //**累加數值開始 int j=0; for (int i=0;iText.ToIntDef(1);i ) { if (pp->IndexOf(i)==-1) j=j i; else Memo2->Lines->Add(i); //**額外顯示 沒加到的數值,chk用 } Label1->Caption=j; delete pp; } </textarea>
mirood
一般會員


發表:10
回覆:27
積分:7
註冊:2007-02-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-01 11:52:16 IP:203.160.xxx.xxx 訂閱
請問一下~
假使Memo1中數值出現重複的話~
怎麼辦呢?
謝謝
nickcai2002
一般會員


發表:3
回覆:20
積分:24
註冊:2004-11-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-01 16:55:08 IP:59.125.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString paText; AnsiString paStr; //接收暫存文字 TStringList *pp=new TStringList; //用TStringList 當動態陣列用 //****拆解Memo1 文字 for (int i=0;iLines->Count;i ) { paText = Memo1->Lines->Strings[i].Trim(); while(paText.Trim()!="") { paStr=paText.SubString(1,paText.Pos(" ")-1); if (pp->IndexOf(paStr)==-1) //~.~ 避免Index重覆 pp->Add(paStr); //用 空白 當判斷位元 paText.Delete(1,paText.Pos(" ")); if (paText.Pos(" ")<1) { if (pp->IndexOf(paText.Trim())==-1) //~.~ 避免Index重覆 pp->Add(paText.Trim()); paText=""; } } } //*****拆解結束 //**累加數值開始 int j=0; for (int i=0;iText.ToIntDef(1);i ) { if (pp->IndexOf(i)==-1) j=j i; else Memo2->Lines->Add(i); //**額外顯示 沒加到的數值,chk用 } Label1->Caption=j; delete pp; } </textarea>
mirood
一般會員


發表:10
回覆:27
積分:7
註冊:2007-02-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-06-04 08:39:03 IP:203.160.xxx.xxx 訂閱
感謝大大的指導~
一般在BCC中~
是否有甚麼函數可以判別奇偶數呢?
小弟想將運算數值可以選擇性"奇偶數"運算,
是否是從 //**累加數值開始
這邊開始判別?
小弟試了一些方法~
就是將數值除以二判別,
但是卻...,
不盡理想
編輯記錄
mirood 重新編輯於 2007-06-04 08:40:52, 註解 無‧
harpist
資深會員


發表:3
回覆:251
積分:430
註冊:2002-10-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-06-04 08:50:15 IP:211.74.xxx.xxx 未訂閱
你可以考慮使用%餘除運算子。

===================引 用 mirood 文 章===================
感謝大大的指導~
一般在BCC中~
是否有甚麼函數可以判別奇偶數呢?
小弟想將運算數值可以選擇性"奇偶數"運算,
是否是從 //**累加數值開始
這邊開始判別?
小弟試了一些方法~
就是將數值除以二判別,
但是卻...,
不盡理想
------
~§~迷時師渡,悟了自渡~§~
mirood
一般會員


發表:10
回覆:27
積分:7
註冊:2007-02-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-06-04 10:17:44 IP:203.160.xxx.xxx 訂閱
謝謝可以~
我了解了~
mirood
一般會員


發表:10
回覆:27
積分:7
註冊:2007-02-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-06-05 09:57:24 IP:203.160.xxx.xxx 訂閱
    <textarea class="cpp" rows="10" cols="60" name="code">void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString paText; AnsiString paStr; //接收暫存文字 TStringList *pp=new TStringList; //用TStringList 當動態陣列用 //****拆解Memo1 文字 for (int i=0;iLines->Count;i ) { paText = Memo1->Lines->Strings[i].Trim(); while(paText.Trim()!="") { paStr=paText.SubString(1,paText.Pos(" ")-1); if (pp->IndexOf(paStr)==-1) //~.~ 避免Index重覆 pp->Add(paStr); //用 空白 當判斷位元 paText.Delete(1,paText.Pos(" ")); if (paText.Pos(" ")<1) { if (pp->IndexOf(paText.Trim())==-1) //~.~ 避免Index重覆 pp->Add(paText.Trim()); paText=""; } } } //*****拆解結束 //**累加數值開始 int j=0; for (int i=0;iText.ToIntDef(1);i ) { if(i%2!=0)//**全部為奇數數值 { if (pp->IndexOf(i)==-1) j=j i; } } Label1->Caption=j; delete pp; } </textarea>
編輯記錄
mirood 重新編輯於 2007-06-05 09:58:10, 註解 無‧
系統時間:2024-04-26 17:04:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!