返回列表 上一主題 發帖

[分享] 陣列排序方式

本帖最後由 Hsieh 於 2010-5-7 21:54 編輯

回復 5# PD961A


    淺顯易懂的文字敘述?
那各位版主就先來去修語文課程
把語言精煉後再來發文
開開玩笑啦!
陣列:
相信對一維陣列的話大家比較容易接受
就一堆資料規則的放入一排內就是一維陣列
以實物舉例
大家有上過學,學校有朝會或任何全校到操場集合的經驗吧!
當要各班整隊時
班長說排頭伍為準
這一伍的成員就是一維陣列的元素
我們把這排頭底下要對齊他的這些人
就是二維陣列的第二維的元素了
再把集合好的班級(二維陣列)
帶到操場時
操場上會分年級站好
每一個年級就會有好多班
這一個年級就是多個二維陣列的集合(三維陣列)
每個學校會有多個年級
那集合這麼多年級(三維陣列)就成了四維陣列
這樣對陣列的解釋不知是否比較實體化
比較容易了解呢?
  1. Sub nn()
  2. Dim Ar(3, 10, 10, 4) '定義Ar為4維陣列:每隊4排,每排10人,每年級有10班,共有3個年級(年級,班,人,排)
  3. k = 42048
  4. mystr = Chr(k)
  5. For y = 0 To 2
  6.    For x = 0 To 9
  7.        For i = 0 To 3
  8.          For j = 0 To 9
  9.          Do Until mystr <> "?"
  10.          k = k + 1
  11.          mystr = Chr(k)
  12.          Loop
  13.               Ar(y, x, j, i) = Chr(k): k = k + 1: mystr = Chr(k): Next: Next: Next: Next
  14. For y = 0 To 2
  15.    For x = 0 To 9
  16.        For i = 0 To 3
  17.          For j = 0 To 9
  18.              Cells(r + 1, 1) = y + 1 & "年" & x + 1 & "班第" & i + 1 & "排第" & j + 1 & "位同學姓:": _
  19.              Cells(r + 1, 2) = Ar(y, x, j, i): r = r + 1: _
  20.              Next: Next: Next: Next
  21. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 8# PD961A


    我所說的是多維陣列的概念大致就像排隊集合一樣
只是當你在寫成陣列與法時是用他的INDEX表示
如Dim Ar(0 to 10,0 to 20,0 to 10,0 to 30)
這樣就宣告了一個4維陣列
只訂出這陣列中第一個元素就寫成
Ar(0,0,0,0)
最後一個元素就是Ar(10,20,10,30)
第一維有11個元素
第二維有21個元素
第三維有11個元素
第四維有11個元素

Sub nn()
Dim Ar(11, 21, 11, 31)
For i = 0 To 10
   For j = 0 To 20
      For x = 0 To 10
         For y = 0 To 30
              Ar(i, j, x, y) = i + j + x + y: Next: Next: Next: Next
For i = 0 To 10
   For j = 0 To 20
      For x = 0 To 10
         For y = 0 To 30
              MsgBox "Ar(" & i & "," & j & "," & x & "," & y & ")=" & i & "+" & j & "+" & x & "+" & y & "=" & Ar(i, j, x, y): Next: Next: Next: Next
              
End Sub
學海無涯_不恥下問

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題