1 / 64

HTML & ASP 完美的演繹

HTML & ASP 完美的演繹. 第 10 章 陣列. 10.1 前言. 10.2 陣列的宣告及使用. 在 VBScript 中使用陣列 (Array) 的時機是在當您需要處理多個資料的時候,以陣列中的陣列元素來取代多個變數。 陣列必須先經過宣告才能使用 ,由於陣列在宣告的同時,會在記憶體中按照所宣告陣列的種類保留連續空間給此陣列使用,所以陣列經過編譯後可知道陣列中到底含有多少個元素。. 10.2.1 陣列的宣告並設定初始值.

macy
Download Presentation

HTML & ASP 完美的演繹

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HTML & ASP 完美的演繹 第10章 陣列

  2. 10.1 前言

  3. 10.2 陣列的宣告及使用 • 在VBScript中使用陣列(Array)的時機是在當您需要處理多個資料的時候,以陣列中的陣列元素來取代多個變數。陣列必須先經過宣告才能使用,由於陣列在宣告的同時,會在記憶體中按照所宣告陣列的種類保留連續空間給此陣列使用,所以陣列經過編譯後可知道陣列中到底含有多少個元素。

  4. 10.2.1 陣列的宣告並設定初始值 • 陣列的宣告方式是以Dim敘述開頭,其後緊接陣列名稱,在陣列名稱後面加上一對小括號,小括號內的數值代表該陣列的大小。譬如下面敘述宣告myArray是一個含有11 個元素的陣列: • Dim myArray(10)

  5. 我們可以透過Array函式來建立陣列的初值。例如下列寫法是使用一個自由型別(Variant)的變數myArray,接著再使用Array(56, 45, 68, 32) 函式指定初值給myArray。 • myArray=Array(56, 45, 68, 32) • 結果myArray陣列元素內容如下: • myArray(0)=56 : myArray(1)=45 • myArray(2)=68 : myArray(3)=32

  6. 另一種寫法就是先宣告myArray為陣列元素個數為4的陣列,然後在一一的指定陣列元素初值。另一種寫法就是先宣告myArray為陣列元素個數為4的陣列,然後在一一的指定陣列元素初值。 • Dim myArray(3) • myArray(0) = 56 • myArray(1) = 45 • myArray(2) = 68 • myArray(3) = 32

  7. 因為VBScript中只有自由型別變數,因此陣列即是屬於自由型別陣列,所以在陣列內的陣列元素,允許夾雜不同資料型別的資料。譬如:下面敘述列是合法的宣告:因為VBScript中只有自由型別變數,因此陣列即是屬於自由型別陣列,所以在陣列內的陣列元素,允許夾雜不同資料型別的資料。譬如:下面敘述列是合法的宣告: • myArray = Array(1, "abc", 0, True, -2) • 不過陣列元素間的資料必須是相同的資料型別才允許做運算。在上面例子中由於myArray(0)和myArray(1)的資料型別分別為整數和字串,由於數值與字串不能直接加減會造成錯誤,是不合法的敘述: • myArray(0)+ myArray(1)

  8. 10.2.2 使用迴圈存取陣列的內容 • 由於陣列內的註標可以是常數、變數或是運算式。因此,存取陣列可以使用迴圈來控制輸入及輸出。

  9. 10.2.3 Split函式

  10. 上面範例中,若表單中需要很多個選項時就必須加入多個核取方塊,那麼在c10_2_4.asp中的第9-13行就必須插入多個If條件敘述,為了解決此問題,我們可以透過Split函式配合陣列來解決。所得的結果和上面範例是一樣的。可參考c10_2_5.htm與c10_2_5.asp範例。上面範例中,若表單中需要很多個選項時就必須加入多個核取方塊,那麼在c10_2_4.asp中的第9-13行就必須插入多個If條件敘述,為了解決此問題,我們可以透過Split函式配合陣列來解決。所得的結果和上面範例是一樣的。可參考c10_2_5.htm與c10_2_5.asp範例。

  11. 10.2.4 For Each…Next

  12. 10.3 多維陣列 • 前面所提到的陣列其註標(或稱索引)只有一個,我們稱為「一維陣列」(One-Dimensional Array),其維度為1。就如上節所述有如一列火車的車廂,欲存取陣列內的內容,只要指定註標便可以將資料輸入到陣列裡面,或將陣列內的資料取出。但是在某些情形,需要使用兩個註標的陣列來表示時,我們將此種陣列稱為「二維陣列」(Two-Di mensional Array),其維度為2。 • 若陣列的維度是二維以上我們就稱為「多維陣列」(Multi-Dimensional Array)。

  13. 10.3.1 陣列的維度

  14. 10.3.2 陣列的上限及下限

  15. 另外LBound函式可以取得該維度的最低註標值,由於VBScript的任何陣列都是由0開始,因此由LBound函式取得的結果都是0。LBound函式的語法與UBound函式相同,例如:另外LBound函式可以取得該維度的最低註標值,由於VBScript的任何陣列都是由0開始,因此由LBound函式取得的結果都是0。LBound函式的語法與UBound函式相同,例如: • LBound(myArray ,1)LBound(myArray,2)的結果都是0。

  16. 10.4 陣列的排序與搜尋 • 由於陣列可以幫我們處理較多筆的資料,而在這麼多的陣列資料中,如果要找到某一個陣列元素,那就需要有搜尋的功能。而在一大堆資料中要搜尋一筆資料,通常會先將這些資料按照某一個基準來排序過,排序和搜尋,也是使用陣列時常會用到的功能。

  17. 10.4.1 氣泡排序法(演算法如下)

  18. 10.4.2 循序搜尋法 • 排序除了是要在陣列中排出大小順序以外,另一個主要的目的是更有效的搜尋資料,搜尋的方法有很多種,循序搜尋法是最簡單的搜尋方法。它的做法是由第一筆資料一一往下找,一直到找到所要的資料為止,或是搜尋完全部資料為止。此種搜尋,資料可以不必事先經過排序。 • 若總共有N筆資料,則平均要執行N/2次的比較。此方法常用於少量資料的搜尋,或未經排序的資料的搜尋。

  19. 10.4.3 二分搜尋法 • 使用二分搜尋法來尋找陣列中的資料,該陣列必須先排序好才行。二分搜尋法的執行效率比循序搜尋法還要好,它平均會做Log2N+1次的比較。其演算法如下:

More Related