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

再問:如何將展開的陣列填入另一個陣列

尚未結案
beta
一般會員


發表:7
回覆:11
積分:3
註冊:2003-01-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-11 12:08:06 IP:203.69.xxx.xxx 未訂閱
根據MIckey版主的Code     我想把他改成輸出成一個array of array of integer;    procedure TForm1.Button1Click(Sender: TObject); 原來的COde   procedure ArrayCom(const a1:array of integer;s:string;L:TStrings); 重新宣告 type AA:array of array of integer; Function ArrayCom(const a1:array of integer;s:string):AA;      var i,j,t : integer;       b1,Temp:array of integer;       s1:string;   begin     setlength(Temp,High(a1)+1);     for i:=Low(a1) to High(a1) do Temp[i] := a1[i];     for i:=Low(a1) to High(a1) do begin       t := temp[0];       temp[0] := temp[i];       temp[i] := t;       setlength(b1,High(a1));       for j := 0 to High(b1) do b1[j] := temp[j+1]; 問題在此       如何將填入aa< >< > s1 := inttostr(temp[0]) '',''; ArrayCom(b1, s s1, L); end; if High(a1)=0 then L.Add(s s1); end; var a:array of integer; i:integer; begin SetLength(a,5); //[11,10,6,321,22] a[0]:=11;a[1]:=10;a[2]:=6;a[3]:=321;a[4]:=22; Memo1.lines.clear; ArrayCom(a,Memo1.lines.text,Memo1.lines); Showmessage(inttostr(Memo1.Lines.count)); end; 現在最主要的問題是loop本身跑的順序跟我要填入array的index不知如何對起來 請各位前輩再度賜教
beta
一般會員


發表:7
回覆:11
積分:3
註冊:2003-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-11 15:07:50 IP:203.69.xxx.xxx 未訂閱
作法更正: 宣告 type resultarray:array of integer; var Myarray:array of resultarray; temparray :ResultArray; 再透過Mickey的COde將每一次跑出來的排列當成一個Array(TempArray) 再將TempArray assign 給Myarray[I] 還在試如何將值指定給TempArray
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-11 17:54:31 IP:203.218.xxx.xxx 未訂閱
我看過你的問題,又試驗過你的程式,原來是我在學生時代的數學,不過都忘了一大半,終於在 search engine 找到以下的網址,內裏有講解什麼 arrangement 、derangement 的數學問題,更有 Delphi 原程式碼,你可以慢慢研究。    http://www.delphiforfun.com/programs/math_topics/derangements.htm 那並不完全是你所要的答案,但你稍加更改原程式,應該可以做到你要的效果。
beta
一般會員


發表:7
回覆:11
積分:3
註冊:2003-01-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-11 23:45:44 IP:61.231.xxx.xxx 未訂閱
請教TATSU大大網址是否有誤,try了很久都進不去。
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-12 01:16:28 IP:203.218.xxx.xxx 未訂閱
網址沒有錯呀,我隨時都可以連上去,是否你的系統有問題?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-12 22:50:27 IP:218.32.xxx.xxx 未訂閱
beta 你好, 我又來的... 雖然不是很贊同用 class="code"> procedure TForm1.Button1Click(Sender: TObject); type Ta=array of integer; Taa=array of Ta; var a,s:Ta; aa:Taa; i,j:integer; ss : string; procedure ArrayCom(const a1:Ta; const s1:Ta; var L:Taa); var i,j,t : integer; b1,Temp,Temp1:Ta; begin setlength(Temp,High(a1) 1); for i:=Low(a1) to High(a1) do Temp[i] := a1[i]; for i:=Low(a1) to High(a1) do begin t := temp[0]; temp[0] := temp[i]; temp[i] := t; setlength(b1,High(a1)); for j := 0 to High(b1) do b1[j] := temp[j 1]; SetLength(Temp1,High(s1) 2); for j:=Low(s1) to High(s1) do Temp1[j] := s1[j]; Temp1[High(Temp1)] := Temp[0]; ArrayCom(b1, Temp1 , L); end; if High(a1)=-1 then begin SetLength(L,High(L) 2); L[High(L)] := s1; end; end; begin SetLength(a,5); //[11,10,6,321,22] SetLength(s,0); //[11,10,6,321,22] a[0]:=11;a[1]:=10;a[2]:=6;a[3]:=321;a[4]:=22; Memo1.lines.clear; ArrayCom(a,s,aa); for i := Low(aa) to High(aa) do begin ss := ''; for j := Low(a) to High(a) do ss := ss inttostr(aa[i][j]) ','; Memo1.lines.Add(ss); end; Showmessage(inttostr(Memo1.Lines.count)); end;
系統時間:2024-05-11 12:25:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!