VB 第十七講.ppt_第1頁(yè)
VB 第十七講.ppt_第2頁(yè)
VB 第十七講.ppt_第3頁(yè)
VB 第十七講.ppt_第4頁(yè)
VB 第十七講.ppt_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第十七講 數(shù)組,Visual Basic 程序設(shè)計(jì)教程,內(nèi)蒙古科技大學(xué)工程訓(xùn)練中心 韓 艷,工程訓(xùn)練中心,2,本講主要內(nèi)容,數(shù)組的基本概念 一維數(shù)組的定義、性質(zhì)、應(yīng)用,工程訓(xùn)練中心,3,引入數(shù)組范例,Dim g1,g2,g3,g4,g5,g6,g7,g8,g9,g10, aver; g1=inputbox(“請(qǐng)輸入g1”) g2=inputbox(“請(qǐng)輸入g2”) g3=inputbox(“請(qǐng)輸入g3”) g4=inputbox(“請(qǐng)輸入g4”) g5=inputbox(“請(qǐng)輸入g5”) g6=inputbox(“請(qǐng)輸入g6”) g7=inputbox(“請(qǐng)輸入g7”) g8=inputbox

2、(“請(qǐng)輸入g8”) g9=inputbox(“請(qǐng)輸入g9”) g10=inputbox(“請(qǐng)輸入g10”) aver=(g1+g2+g3+g4+g5+g6+g7+g8+g9+g10)/10; if g1 t then print g1 if g2 t then print g2 if g3 t then print g3 if g4 t then print g4 if g5 t then print g5 if g6 t then print g6 if g7 t then print g7 if g8 t then print g8 if g9 t then print g9 if g10

3、 t then print g10,10個(gè)數(shù)學(xué)成績(jī),計(jì)算出平均成績(jī)并打印出低于平均成績(jī)的數(shù)值。,用數(shù)組解決: 同類型數(shù)據(jù)相同操作(批處理) Dim g(1 To 10) As Integer, aver!, sum% For i = 1 To 10 g(i) = InputBox(“請(qǐng)輸入第” Next,工程訓(xùn)練中心,4,一、數(shù)組的基本概念,1、數(shù)組的基本概念 數(shù)組:具有相同類型的數(shù)據(jù)的有序集合。具體地,數(shù)組是一組具有同一名字、不同下標(biāo)的下標(biāo)變量。在內(nèi)存中,數(shù)組占據(jù)一塊連續(xù)的存儲(chǔ)區(qū)域。 一般格式: s(n) 其中:s稱為數(shù)組名,n是下標(biāo) 數(shù)組中的每一項(xiàng)數(shù)據(jù)稱為一個(gè)數(shù)組元素,每個(gè)數(shù)組元素有一個(gè)唯

4、一的順序號(hào)下標(biāo),下標(biāo)用來(lái)指出某個(gè)數(shù)組元素在數(shù)組中的位置。如s(3)代表s數(shù)組中第4個(gè)元素。 數(shù)組應(yīng)先定義(聲明)后使用,數(shù)組的聲明包括明確數(shù)組名、類型、維數(shù)和數(shù)組的大小。 靜態(tài)(定長(zhǎng))數(shù)組:大小固定; 動(dòng)態(tài)(可變長(zhǎng))數(shù)組: 大小不確定,使用前重新定義;,工程訓(xùn)練中心,5,一、數(shù)組的基本概念,2、數(shù)組的定義 數(shù)組的定義方式; Dim:用在窗體模塊或標(biāo)準(zhǔn)模塊及過(guò)程中,定義窗體或標(biāo)準(zhǔn)模塊級(jí)數(shù)組; ReDim:用來(lái)重新定義動(dòng)態(tài)數(shù)組; 用Dim定義的靜態(tài)數(shù)組: 1、一維數(shù)組 一個(gè)數(shù)組若只有一個(gè)下標(biāo),則稱為一維數(shù)組; 定義形式: Dim 數(shù)組名(下標(biāo)下界 To 下標(biāo)上界 ) As 類型名稱 說(shuō)明:格式 中

5、部分為可選部分,若省略,則下標(biāo)下界默認(rèn)為0。 如:Dim a(1 to 10) as integer Dim b(10) as integer Dim c(-3 to 5) as string *3,工程訓(xùn)練中心,6,一、數(shù)組的基本概念,2、數(shù)組的定義 例:dim mark( 1 to 100) as integer 聲明了一個(gè)一維定長(zhǎng)數(shù)組,數(shù)組的名字為mark,類型為整型; 共有100個(gè)元素,下標(biāo)的取值范圍:1100。 mark的數(shù)組元素依次為mark(1)、mark(2)、mark(100); mark數(shù)組內(nèi)存分配示意圖:,mark(1),mark(2),mark(i),mark(99),

6、mark(100),每組數(shù)組元素有一個(gè)唯一的順序號(hào)下標(biāo)不能超出數(shù)組聲明時(shí)的上、下界范圍。 一個(gè)下標(biāo)表示一維數(shù)組;多個(gè)下標(biāo),表示多維數(shù)組。 下標(biāo)可以是整型的常數(shù)、變量、表達(dá)式; 一般情況下,數(shù)組中的各元素類型必須相同;但若數(shù)組類型為Variant時(shí),可包 含不同類型的數(shù)據(jù)。,工程訓(xùn)練中心,7,一、數(shù)組的基本概念,2、二維數(shù)組 由具有兩個(gè)或多個(gè)下標(biāo)變量所組成的數(shù)組稱為二維或多維數(shù)組。 定義形式: Dim 數(shù)組名(第一維下標(biāo)下界 To 第一維下標(biāo)上界, 第二維下標(biāo)下界 To 第二維下標(biāo)界 ) As 類型名稱 如:Dim a(1 to10,3 To 20 ) as String 說(shuō)明: 格式中的數(shù)組名

7、的命名與簡(jiǎn)單變量名相同,可以是任意合法的變量名 類型名稱可以是任何VB所定義的合法類型,包括基本類型和用戶自 定義類型; 格式 中部分為可選部分,若省略,則下標(biāo)下界默認(rèn)為0,或通過(guò)下 面方式定義下標(biāo)下界的默認(rèn)值:Option Base n 其中:n只能為0或1;Option只能出現(xiàn)在窗體層或模塊層,且該定 義必須在數(shù)組定義之前完成,若是多維數(shù)組則對(duì)每一維都有效。,工程訓(xùn)練中心,8,一、 數(shù)組的基本概念,Option Base 1 設(shè)置下標(biāo)默認(rèn)為1 Dim a(5) as integer a數(shù)組的各元素下標(biāo)取值為:15 Dim x(3,2) as single x數(shù)組的第一維下標(biāo)取值:13,第二

8、 維下標(biāo)取值:12 數(shù)組必須先定義后使用,未定義不能使用,下標(biāo)為整型常量; 當(dāng)用Dim語(yǔ)句定義數(shù)組時(shí),該語(yǔ)句把數(shù)組元素初始化為0或空字符串; 同一過(guò)程中,數(shù)組名不能與其他數(shù)組名或變量名相同; 數(shù)組聲明中的下標(biāo)不能是變量,只能是常量; 例:定義數(shù)組實(shí)例及相關(guān)概念釋義 Dim a(5) as integer 定義整型數(shù)組a,下標(biāo)上界為5 a(1)=1 :a(2)=2 對(duì)數(shù)組元素賦值 k=a(1)+a(2) 將數(shù)組元素相加再賦給變量k,a(0),a(1),a(2),a(3),a(4),a(5),工程訓(xùn)練中心,9,一、數(shù)組的基本概念,例:定義一個(gè)二維數(shù)組及概念釋義,Text,工程訓(xùn)練中心,10,一、數(shù)

9、組的基本概念,例:用循環(huán)方式對(duì)數(shù)組賦值。,工程訓(xùn)練中心,11,一、數(shù)組的基本概念,3、多維數(shù)組和數(shù)組下標(biāo)界值 如果在數(shù)組中需要通過(guò)兩個(gè)或兩個(gè)以上的下標(biāo)才能確定數(shù)組元素在數(shù)組中的位置稱為多維數(shù)組。 兩個(gè)下標(biāo)稱為二維數(shù)組,三個(gè)下標(biāo)稱為三維數(shù)組等等。 定義方法: Dim 數(shù)組名(第一維下標(biāo)下界 To 第一維下標(biāo)上界,第二維下標(biāo)下界 To 第二維下標(biāo)上界,第三維下標(biāo)下界 To 第三維下標(biāo)上界,) As 類型名稱 多維數(shù)組在內(nèi)存中所占的空間大小為(所占空間長(zhǎng)度應(yīng)小于64KB): 維數(shù)1維數(shù)2 維數(shù)3 維數(shù)n 類型字節(jié)數(shù)(長(zhǎng)度) 如:Dim x(4,3,2,5) As Integer 其所占內(nèi)存長(zhǎng)度=54

10、362=720(字節(jié)),工程訓(xùn)練中心,12,一、數(shù)組的基本概念,3、多維數(shù)組和數(shù)組下標(biāo)界值 確定數(shù)組某一維的上下界值的函數(shù): LBound(數(shù)組名,維) 返回?cái)?shù)組指定維的下界; UBound(數(shù)組名,維) 返回?cái)?shù)組指定維的上界; 如:Dim a(-3 to 4,1 to 2, 3 to 5, -1 to 6) as integer Lbound(a,1)=3 數(shù)組a的第一維下界為3; Ubound(a,3)=5 數(shù)組a的第3維上界為5; 如:Dim a(2,1,1) as integer 共有3個(gè)下標(biāo)值,即a為三維數(shù)組,該數(shù)組共有322=12 個(gè)元素; 排列順序如下: a(0,0,0) a(0

11、,0,1) a(0,1,0) a(0,1,1) a(1,0,0) a(1,0,1) a(1,1,0) a(1,1,1) a(2,0,0) a(2,0,1) a(2,1,0) a(2,1,1),工程訓(xùn)練中心,13,二、靜態(tài)數(shù)組與動(dòng)態(tài)數(shù)組,用Static定義的靜態(tài)數(shù)組: 例: Static與Dim定義的對(duì)比,Static a(4) As Integer Static定義的數(shù)組a Static start As Integer 定義靜態(tài)變量 Dim b(4) As Integer Dim定義的數(shù)組b Dim i As Integer If start = 0 Then Print “Static定義

12、的數(shù)組a:”, “ Dim定義的數(shù)組b: End If For i = 0 To 4 a(i) = a(i) + i 賦值給Static定義的數(shù)組a b(i) = b(i) + i 賦值給Dim定義的數(shù)組b Next For i = 0 To 4 Print a(i); Next Print , For i = 0 To 4 Print b(i); Next Print start = 1,用Static定義的數(shù)組運(yùn)行后,該數(shù)組所擁有的內(nèi)存空間不釋放,變量的值仍在內(nèi)存中,再次運(yùn)行時(shí),將上次運(yùn)行的結(jié)果作為該變量的初始值,只有當(dāng)整個(gè)應(yīng)用程序退出后,所占內(nèi)存才會(huì)被釋放。,工程訓(xùn)練中心,14,二、靜態(tài)

13、數(shù)組與動(dòng)態(tài)數(shù)組,3、動(dòng)態(tài)數(shù)組及其定義 動(dòng)態(tài)數(shù)組在定義時(shí)并不知道數(shù)組的大小,要在運(yùn)行期確定,并根據(jù)需要在運(yùn)行期可改變數(shù)組的大小。 動(dòng)態(tài)數(shù)組的定義步驟: 在窗體、標(biāo)準(zhǔn)模塊和過(guò)程中用Dim聲明一個(gè)沒有下標(biāo)的數(shù)組 (括號(hào)不能省略); 如:dim a( ) as integer 數(shù)組重定義。在過(guò)程中需要使用該數(shù)組前,用Redim語(yǔ)句定義數(shù)組的 大小(數(shù)組元素個(gè)數(shù)),下標(biāo)可為常量、變量或表達(dá)式,但變量或 表達(dá)式此時(shí)必須有值。 如:Redim a(4),工程訓(xùn)練中心,15,二、靜態(tài)數(shù)組與動(dòng)態(tài)數(shù)組,3、動(dòng)態(tài)數(shù)組及其定義 動(dòng)態(tài)數(shù)組定義格式: Dim 數(shù)組名( ) As 類型名 定義數(shù)組名 Redim Prese

14、rve 變量名 (下標(biāo)) 重定義數(shù)組大小 在重定義時(shí),按下標(biāo)說(shuō)明的上、下界重新分配內(nèi)存存儲(chǔ)單元。 使用動(dòng)態(tài)數(shù)組可多次重新定義數(shù)組的大小和維數(shù),但不能改變數(shù)組的類型: Dim a( ) as integer Redim a(4) Redim a(3,2) Redim a(6) a(1)=“Visual Basic” 此句有錯(cuò)誤,試圖改變數(shù)組的類型 Redim定義的是一個(gè)臨時(shí)數(shù)組,即在執(zhí)行數(shù)組所在的過(guò)程時(shí)為數(shù)組開辟一定的內(nèi)存空間,當(dāng)程序結(jié)束時(shí),這部分內(nèi)存被釋放。再次使用ReDim時(shí),當(dāng)前存儲(chǔ)在數(shù)組中的數(shù)據(jù)全部丟失,若想保留當(dāng)前值可在ReDim后使用Preserve關(guān)鍵字,但使用“Preserve”

15、只能改變最后一維的上界, 前面幾維的大小不能改變。,工程訓(xùn)練中心,16,三、數(shù)組的基本操作,1、數(shù)組元素的輸入、輸出和復(fù)制 1、數(shù)組元素的輸入 對(duì)于數(shù)組元素較少的數(shù)組,可通過(guò)單個(gè)賦值語(yǔ)句進(jìn)行輸入操作; 對(duì)于數(shù)組元素較多的數(shù)組,一般通過(guò)For語(yǔ)句和InputBox函數(shù)輸入。 Option Base 1 默認(rèn)下標(biāo)下界為1 dim b(2,3) as single for i=1 to 2 for i=1 to 3 b(i,j)=inputbox(“輸入b(” 以緊湊格式輸出數(shù)組元素 Next Print Next,工程訓(xùn)練中心,19,三、數(shù)組的基本操作,3、數(shù)組元素的復(fù)制 單個(gè)數(shù)組可以像簡(jiǎn)單變量一

16、樣,從一個(gè)數(shù)組復(fù)制到另一個(gè)數(shù)組。 Dim b(4,8),a(6,5) 數(shù)組定義 b(2,3)=a(3,2) 數(shù)組復(fù)制,工程訓(xùn)練中心,20,三、數(shù)組的基本操作,1、數(shù)組元素的輸入、輸出和復(fù)制 二維數(shù)組中的元素也可以復(fù)制給另一個(gè)二維數(shù)組中的某個(gè)元素,也可以復(fù)制給一個(gè)一維數(shù)組中的某個(gè)元素,并且反之亦然。 Dim a(8),b(3,2) a(3)=b(1,2): b(3,2)=a(7) 為了復(fù)制整個(gè)數(shù)組,仍要使用For循環(huán)語(yǔ)句。 option base 1 dim name1( ),name2( ) redim name1(10),name2(10) for i=1 to10 給name1的10個(gè)元素

17、賦值 name1(i)=inputbox(“請(qǐng)輸入姓名:”) next for i=1 to 10 利用For循環(huán)將name1的數(shù)據(jù)復(fù)制給name2 name2(i)=name1(i) next,工程訓(xùn)練中心,21,三、數(shù)組的基本操作,2、For EachNext語(yǔ)句 For EachNext語(yǔ)句專門針對(duì)一個(gè)數(shù)組或集中的每個(gè)元素執(zhí)行重復(fù)語(yǔ)句。 一般格式: For Each 成員 In 數(shù)組 循環(huán)語(yǔ)句序列 Exit For 循環(huán)語(yǔ)句序列 Next 成員 其中: 成員:相當(dāng)于一個(gè)循環(huán)變量,它表示數(shù)組中的每個(gè)元素; 數(shù)組:為一個(gè)數(shù)組名稱; For Each Next語(yǔ)句主要用來(lái)對(duì)數(shù)組元素進(jìn)行處理,包

18、括查詢、顯示或讀取。它執(zhí)行的次數(shù)由數(shù)組元素的個(gè)數(shù)決定。 Dim a(1 to 5) For Each x In a print x, Next,工程訓(xùn)練中心,22,三、數(shù)組的基本操作,2、For EachNext語(yǔ)句 例: For Each Next使用實(shí)例,For i = 1 To 20 arr(i) = Int(Rnd * 100) 為數(shù)組賦值 Next 顯示數(shù)組元素的值 For Each arr_elem In arr If arr_elem 50 Then Print arr_elem; Sum = Sum + arr_elem End If If arr_elem 95 Then Exit For Next Print Print Sum,工程訓(xùn)練中心,23,三、數(shù)組的基本操作,3、數(shù)組的初始化 數(shù)組的初始化就是給數(shù)組元素賦初值。 格式: 數(shù)組名Array(數(shù)組元素初始值) 說(shuō)明: 初始值與相應(yīng)數(shù)組元素一一對(duì)應(yīng),初始值相互之間用逗號(hào)隔開; 在初始化前對(duì)數(shù)組元素的定義不能是具體的數(shù)據(jù)類型,只能是 Variant型,或?yàn)槟J(rèn)類型; 對(duì)于該數(shù)組可以不定義而直接由Array函數(shù)來(lái)確定; 如:dArray(1,2,3,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論