江蘇省二級VB第六章陣列

2022-12-05 07:57:03 字數 4545 閱讀 1759

第六章陣列

6.1陣列的概念(2個具體例子,8個模板例子)

6.2陣列的基本操作(4個具體例子,4個模板例子)

6.3 動態陣列(2個具體例子)

6.4 控制項陣列(1個具體例子,2個模板例子)

6.5示例程式(15個例子)共24 道題目

習題練習 [ 例題5-1 ]

6.1 陣列的概念

6.1.1 陣列命名與陣列元素

陣列元素由陣列名、下標、圓括號組成。一般形式如下:

陣列名(下標1[,下標2,…])下標可以是常量、變數或算數表示式。當下標為非整數時,會按cint方式將其轉為整數處理。如乙個只有單個下標的陣列a有五個元素,則它的元素可分別表示為a(0)、a(1)、a在乙個陣列中如果只需乙個下標就可以確定元素在陣列中的位置,則該陣列稱為一維陣列。

同理需n個下標確定位置則為n維陣列。n

6.1.2 陣列的定義

程式通過陣列元素名,即為通過陣列元素下標值來訪問其中的某個陣列單元。

vb中有兩種型別的陣列:固定大小陣列和動態陣列。

固定大小陣列:在定義時就確定了陣列大小,並在程式執行中不能改變其大小

動態陣列: 定義陣列時不指明陣列大小,僅僅定義乙個空陣列,在程式執行時根據需要才確定其大小,即在執行中可以改變其大小的陣列,稱為動態陣列。

1.陣列說明語句

形式如下:

publicprivatestatedim 《陣列名》([《維界定義》])[as 《資料型別》]

其中public 、private、 state、 dim 是關鍵字。在vb可利用這四個語句定義陣列,其作用域各司其職。

《維界定義》的格式如下:

[《下界1> to ]上界1[[,《下界2>to] 上界2……]

其中「下界」和關鍵字「to」可以省略。如果在程式中沒有特別宣告,即為程式沒有使用option basic 1語句,預設下界和關鍵字to時,則下標的取值是從0開始的,等價於「0 to 上界」。程式使用了option basic 1語句,下標取值從1開始,等價於「1 to 上界」。

格式中的下界1表示第一維的維下界,下界2表示第二維的維下界……

【例如】下列陣列說明語句出現在模組宣告段:

dim a(6)as integer

private name (1999 to 2002) as string *8

dim b (2, 1 to 2) as integer

『等價於dim a(0 to 6)as integer ,定義了乙個模組級一維整數型陣列

『即為name(1999)、name(2000)、name(2001)、name(2002)定義了乙個模組級、一維、陣列元素長度是8個位元組的字串陣列name。

『定義了乙個模組級的二維整型陣列b,元素分別為b(0,1)、b(0,2)、b(1,1)、b(1,2)、b(2,1)、b(2,2),共6個陣列元素。

《陣列名》([《維界定義》]) 是陣列說明符。在 dim a(6)as integer

中,a(6)是陣列說明符,雖然與陣列第七個陣列元素的名字 a(6)一樣,但含義不同,不可混淆。

2.陣列的上、下界

維界範圍不超過長整型(long)資料的資料範圍(-2147483648~2147483647)

下界小於等於上界。定義固定大小陣列,維的上下界說明必須是常數表示式,不可以是變數名。如果維界說明不是整數,vb會按其cint函式進行捨入處理。

dim m as integer

const n as integer = 5

dim a(n) as integer 『語句中用乙個已定義的符號常數說明a陣列的維上界

dim b(1 to 6.6) as integer

dim c(1to 2 * 3) as integer

dim d(0 to m ) as integer

『表示式有誤,m是乙個整型變數,不能說明陣列的維數。在陣列說明語句中若用符號常數說明陣列的維界,則該符號常說之前被定義過。

3.陣列的型別

陣列說明語句中的as《資料型別》用來宣告陣列的型別。陣列的型別有:integer、long、single、double、date、boolean、string(變長字串)、string*length(定長字串)、object、currency、variant和自定義型別。

若預設as短語,則表示該陣列是變體型別(variant)。

請看下面定義陣列的例子:

option base 1

dim score(4) , b(3,3) as integer

option base 1語句必須位於模組的通用部分,因此陣列定義了名為score的一維陣列,下界為一,具有四個元素,由於預設型別說明,所以score 陣列型別是variant。b(3,3)為二維整型陣列。

state語句定義靜態陣列。其特點是在呼叫過程中,它的各個元素會繼承上次退出該過程時元素的取值。例如,定義乙個一維整型靜態陣列starry:

static starry(3)as integer

4.陣列的大小

即為陣列包含元素的個數,又叫

陣列的長度=第一維大小第二維大小第n維大小

5.陣列的初始化

陣列說明語句不僅定義了陣列,分配了儲存空間,而且還將陣列初始化。

數值型的陣列初始值為0,變長字元型別的陣列元素初始值為空字串,定長字串型別陣列元素初始值為指定長度的空格,布林型陣列元素初始值為false

6.1.3 陣列的結構

分別討論一維、二維、三維陣列的結構。

1.一維陣列的結構

一維陣列只能表示線性順序,相當於乙個一維表。也可以用一維陣列表示數學中的向量。

dim stra(8) as integer

陣列stra的邏輯結構示意圖如下:

stra(8) = (stra(0),stra(1), stra(2), ,stra(7)stra(8))

2.二維陣列的結構

二維陣列的表現形式由行和列組成的二維表,元素需要兩個下標來標識,即要指明陣列元素行號和列號。通常二維陣列表示數學中的矩陣。

option base 1

dim table(3,4)as integer

上面的陣列說明語句定義了乙個二維陣列,第乙個為行數,第二個為列數

表明table共計3*4=12 個元素。邏輯結構示意圖如下:

table(3,4)=

第一列第二列第三列第四列

二維陣列在記憶體中是「按列存放」

3.三維陣列的結構

行、列、頁組成的三維表。可以理解為分為幾頁的二維表,三維陣列的元素由行號、列號、頁號來標識.

option base1

dim page(3,3,2) as integer 上面的乙個陣列定義了乙個三維陣列形式如下:

陣列page的第一頁陣列page的第二頁

三維陣列在記憶體中是按「逐頁逐列」存放的。

6.1.4 陣列函式及陣列語句

函式作用:返回陣列某維的維下界的值,返回值為long型。格式如下:

lbound (aname[,d]) 引數aname 為陣列名,d 為維數。若預設「維」引數,則函式返回陣列第一維的維下界的值或一位陣列的下界。

例如,執行下面的程式段:

private sub form_click()

dim a(5) as integer,b(3 to 8, 200 to 208)

print lbound(a), lbound(b,1),lbound(b,2)

end sub 『執行結果為 0 3 200

函式private sub form_click()

dim a(5) as integer,b(3 to 8, 200 to 208)

print ubound(a), ubound(b,1),ubound(b,2)

end sub 『執行結果為 5 200 208

語句功能是重新初始化固定大小陣列的元素,或者釋放動態陣列的儲存空間。

erase語句的格式如下:erase a1[,a2,…] 其中a1、a2是用逗號隔開的需要重新初始化的或者釋放儲存空間的陣列名。

例如,下面的程式段:

private sub form_click( )

dim a(3) as integer, b( ) as integer

a(1) = 1:a(2) = 2 : a(3) = 3

redim b(4)

print a(1) ,a(2), a(3)

erase a , b

print a(1) ,a(2), a(3)

end sub

在erase語句執行後,整數陣列a中所有元素將改變為0;分配給動態陣列b的8個位元組的儲存單元釋放給系統,b陣列又變成乙個沒有儲存單元的空陣列

4. for each-next結構語句

處理陣列元素時大多使用迴圈結構。與for-next語句類似,但其為專為陣列或物件中的每個元素重複執行一組語句而設定的。結構一般形式如下:

for each element in

[語句組

[exit for]

[語句組]

next [ element]

[語句組] :需要重複執行的迴圈體,迴圈體內可包含若干個exit for語句,執行該語句,將退出迴圈。

第六章陣列

6.1陣列的概念 陣列 同型別變數的乙個有序集合 6.1.1陣列命名與陣列元素 1 當下標的值為非整數時,會按cint函式的方式將其轉換為整數處理。2 通常把二維以上的陣列稱為多維陣列。vb規定陣列的維數不得超過60。6.1.2陣列定義 1 陣列說明語句 dim a as integer priva...

第六章 二節

第六章運輸安全技術基本要求 考查 交通運輸危險有害因素和事故防治技術 交通運輸安全技術措施。第一節運輸事故主要型別與預防技術 一 公路運輸事故主要型別與預防技術 一 公路運輸事故主要型別 碰撞 碾壓 刮擦 翻車 墜車 火災 撞固定物。二 公路事故預防技術1 人為因素控制2 車輛因素控制3 道路因素控...

肖國祥2019二級施工管理第六章

2012年二級建造師施工管理講義 第六章一 施工平行承發包的特點 1 費用控制的特點 發包以施工圖設計為基礎,投標人進行投標 較有依據 發包人可以通過招標選擇最好的施工單位承包,有利於降低工程造價 要到最後乙份合同簽訂後才知道整個工程的總造價,對投資的早期控制不利 2 進度控制的特點 開工日期提前,...