摘 要:作為迄今為止Windows應用程序很受青睞的開發環境之一的Visual Basic,主要特點就是可視化編程。本文主要對靜、動數組進行概念介紹和VB程序中的功能使用,也向使用人群介紹了一些使用方法。
關鍵詞:數組 靜態數組 動態數組
中圖分類號:TP311.5 文獻標識碼:A 文章編號:1672-3791(2012)11(a)-0028-01
為了方便解決大批量的數據處理問題,Visual Basic中提供了數組(Array)變量。數組是一種重要的數據結構,結構相對簡單,靈活,使用方法容易掌握,不但在Visual Basic中,在其他的許多程序設計語言中,都要直接或間接地用到數組這種數據結構。
1 數組的概念
事實上幾乎所有的應用程序開發語言都引入了數組概念,VB(Visual Basic的簡稱)同樣也不例外,數組允許通過同一變量名和不同的下標訪問一系列變量。
在VB中,如果把一組有序的數或變量作為一個整體來處理,這樣的一組數或變量就是數組,而數組的每一個數或變量稱為數組元素,每一個數組給定一個名稱,叫做數組名,一個數組中各個元素之間的區別用數組名的下標來表示,放在數組名后的圓括號內。數組中的任意一個數組元素都可以存放一個數據,和使用簡單變量一樣參加各種運算。數組是用于存放一批性質相同的數據集合,其主要特點如下。
由若干個數組元素組成,數組元素的數據類型一致;各數組元素是有序存放的,下標代表它在數組中的位置;數組中各元素之間有內在聯系,在內存中占連續的一段存儲單元。
現在我們來舉個例子,可以用M來表示一個班30個同學的計算機成績,用M(1)表示1號同學的成績;M(2)表示2號同學的成績;M(3)表示3號同學的成績;……;M(30)表示第30號同學的成績。則M為數組名,M(1),M(2),M(3)等都稱為M數組的元素。
可以用N數組來表示某班全班同學語文、數學和英語三門課程的成績,則可以用N(1,1)表示1號同學的語文成績;N(1,2)表示1號同學的數學成績;N(1,3)表示1號同學的英語成績;N(2,1)表示2號同學的語文成績;N(2,2)表示2號同學的數學成績;N(2,3)表示2號同學的英語成績;……;N(30,3)表示第30號同學的英語成績。
根據數組的形態不同可分為靜態數組、動態數組、控件數組和自定義類型數組。本文重點來探討一下靜態數組和動態數組。
2 靜態數組
靜態數組又可分為全局數組、模塊數組、局部數組。
我們首先來介紹一下全局數組,程序中的任何模塊個礦體都可以對其進行訪問。全局數組不能在窗體中被定義,全局數組要用Global或Public模塊文件(﹒bas)中的聲明部分聲明。關鍵字在在代碼模塊中聲明部分用Global或Public語句定義,格式如下:Global 數組名([下界To]上界[,[下界To] 上界]…)As類型,……Public數組名([下界To]上界[,[下界To]上界]…)As類型,……所有的模塊和過程都可訪問用Global或Public定義的全局數組。注意:語句只能用在全局模塊中。例如:Global Arr 1(6,3) As Double。或Public Brr (10) As Double。
其次是模塊數組。在代碼模塊或窗體模塊的聲明部分用Dim或Private語句定義。格式同Global語言,只是將Global換為Dim或Private。這樣數組的作用范圍只在當前模塊中有效。例如:Dim Arr(8,3) As Integer。
最后是局部數組。在此過程內用Static 聲明局部數組,其使用范圍只限制在該過程內。如果該過程已被Static聲明為靜態過程,那么也可用Static或Dim來定義數組。格式與上述兩種一致。例如:Static Arr(20)As Double。VB默認數組的下標從0開始,若想改變數組的缺省下界,可在聲明部分之前增加一條Option語句。
對于靜態數組有以下幾方面。
(1)數組名的命名規則和變量命名規則相同,但是不能與一般變量同名。(2)凡是VB的數據類型,數組中均可說明和使用,當“As類型”省略時,為不定型。(3)VB中也可定義多維數組,數組的最大維數是60。(4)定義數組時的上下限可以是常量或已經賦給值的變量。
3 動態數組
下面我們來談一下建立動態數組的常用方式:在用 Global、Public、Dim、Private 或Static聲明數組,在定義數組時不要給出具體的維數,這樣聲明的數組就是動態數組。例如:Dim Arr()As Integer。需要確定該數組的實際大小時,在過程中用ReDim進行定義。與Dim語句、Static語句不同,ReDim 語句是一個執行語句,只能出現在過程中。
在過程中創建動態數組時,可以用 Static或Dim語句進行首次聲明,但這樣建立的數組的最大維數為8。如果需要更多的維數,則不用Dim進行首次聲明,而直接用 ReDim聲明即可。每次執行 ReDim 語句重新定義數組時,以前存在動態數組中的數據會全部丟失,相當于對其又進行了一次初始化。如果希望只改變數組的大小而不丟失原有的數據,可在ReDim語句中使用Preserve關鍵字,例如:ReDim Arr1(3,4)As Integer如將數組增加4個元素,又要保留原來內容,可用語句:ReDim Preserve Arr1(3,4+1)As Integer。使用 Preserve時,只有數組的最后一維的上界可以改變,也就是說,使用Preserve只能改變最后一維的大小,前面的幾維的大小不能改變。
對于動態數組的一般特性有以下幾點。
(1)數組名的命名規則和變量命名規則相同。
(2)Preserve的作用是保留原來數組內容。若其省略,則每次程序執行ReDim都會清除原來數組內容。
(3)數組數據的類型一經確定就不能再次改變,只能沿襲首次所指定的類型。
4 結語
使用計算機的人群,要對數組的概念進行深入理解,靜、動兩態數組要熟練使用方法,對一些技巧要能夠靈活運用,這樣可以在解決實際問題時提供很大方便,同時也會給你的程序錦上添花。本文介紹了很多數組的概念,不同的數組有不同的區別和特點,如果讀者進行仔細推敲,然后是這更多的去使用它,一定會輕松自如、游刃有余的運用。
參考文獻
[1]希望圖書創作室.Visual Basic 6.0教程[M].北京:北京希望電子出版社,2000.
[2]譚浩強.Visual Basic程序設計[M].北京:清華大學出版社,2002.
[3]王克己.Visual Basic程序設計[M].北京:人民郵電出版社,2005.