如何簡查陣列個位數相同號碼,有相同個位數號碼要秀出個拾二位數? |
答題得分者是:P.D.
|
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
已知下列陣列數 有19 18 01 37 36
假設 SA1 值是 個位數 7 IF EDT_11.TEXT='AA' THEN FOR I:=1 TO 5 DO Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A1[I] ' '; STTEMP:='1918013736'; for i:=1 to 5 do begin j:=i*2-1; NSno_A1[i]:=copy(STTEMP,j,2); IF SA1 = (NSno_A1[i]) Then ----------------->這二行的指令如何下 請教各位 Delphi 高手指導 SHOWMESSAGE(NSno_A1[i]); -----------------> end; |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
不是很清楚這程式的目的為何, 如果你只是很單純要 SA1值比對陣列值的個位數, 具有相同個位數的要顯示出, 有這個方法
SA1:= 7; for i:= 1 to 5 do begin if NSno_A1[i] mod 10 = SA1 then 顯示 end; 如果NSno_A1宣告的是字串型態, 可以把它轉換成整數後再用 MOD 計算 MOD 是取餘數的函式, 為何要除10, 因為這樣可以取得個位數的值 37/10 餘 7 當然這只是其中一種做法, 而其實你的做法也很接近了, 再試試看也可以成功的 ===================引 用 K1086 文 章=================== 已知下列陣列數 有19 18 01 37 36? 假設?SA1 值是 個位數 7 IF EDT_11.TEXT='AA' THEN ???????? FOR I:=1 TO 5 DO ???????? Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A1[I] '? '; ???????? STTEMP:='1918013736'; ???????? for i:=1 to 5 do ???????? begin ???????????? j:=i*2-1; ???????????? NSno_A1[i]:=copy(STTEMP,j,2);????? ????????? IF ?????????????? SA1 = (NSno_A1[i]) Then????????????? ----------------->這二行的指令如何下 請教各位 Delphi 高手指導? ?????????????? SHOWMESSAGE(NSno_A1[i]);??? -----------------> ???????? end; |
K1086
初階會員 發表:63 回覆:148 積分:42 註冊:2007-04-09 發送簡訊給我 |
===================引 用 P.D. 文 章=================== 不是很清楚這程式的目的為何, 如果你只是很單純要 SA1值比對陣列值的個位數, 具有相同個位數的要顯示出, 有這個方法 SA1:= 7; for i:= 1 to 5 do begin ?? if NSno_A1[i] mod 10 = SA1 then?顯示 end; 如果NSno_A1宣告的是字串型態, 可以把它轉換成整數後再用 MOD 計算 MOD 是取餘數的函式, 為何要除10, 因為這樣可以取得個位數的值 37/10 餘 7 當然這只是其中一種做法, 而其實你的做法也很接近了, 再試試看也可以成功的 謝謝 P D 版主指導 依照你的方式 已經解決比對陣列值的個位數,但是還有下列問題沒解決 例如:陣列數 有 19 18 01 37 57 36 56有雙7個位數 (37 57)及雙6個位數 (36 56) 再比對之後才秀出一個 如37 (57就無法秀出) 36秀出 (56就無法秀出) 小弟把片段執行程式 列出 請 P D 版主指導 IF EDT_11.TEXT='AA' THEN FOR I:=1 TO 7 DO Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A2[I] ' '; STTEMP:='19180137573656'; for i:=1 to 7 do begin j:=i*2-1; NSno_A2[i]:=copy(STTEMP,j,2); end; //以下是字串轉數字運算--------------- IF EDT_11.TEXT='AA' THEN for i:=1 to 7 do begin KSno_A1[i]:=STRTOINT(NSno_A2[i]); if KSno_A1[i] mod 10 = VA1 then ---->先比對 VA1 值 (假設 VA1:=7) Lab_N1.Caption :=(IntTostr(KSno_A1[i])); if KSno_A1[i] mod 10 = VA2 then ---->再比對 VA2 值 (假設 VA1:=6) Lab_N2.Caption :=(IntTostr(KSno_A1[i])); ----->問題就是在這只秀一個吻合值,第二個吻合值不秀 end; ===================引 用 K1086 文 章=================== 已知下列陣列數 有19 18 01 37 36? 假設?SA1 值是 個位數 7 IF EDT_11.TEXT='AA' THEN ???????? FOR I:=1 TO 5 DO ???????? Show_Lab0.CAPTION:=Show_Lab0.CAPTION NSno_A1[I] '? '; ???????? STTEMP:='1918013736'; ???????? for i:=1 to 5 do ???????? begin ???????????? j:=i*2-1; ???????????? NSno_A1[i]:=copy(STTEMP,j,2);????? ????????? IF ?????????????? SA1 = (NSno_A1[i]) Then????????????? ----------------->這二行的指令如何下 請教各位 Delphi 高手指導? ?????????????? SHOWMESSAGE(NSno_A1[i]);??? -----------------> ???????? end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |