VisualBasic第6章數(shù)組及其應(yīng)用_第1頁
VisualBasic第6章數(shù)組及其應(yīng)用_第2頁
VisualBasic第6章數(shù)組及其應(yīng)用_第3頁
VisualBasic第6章數(shù)組及其應(yīng)用_第4頁
VisualBasic第6章數(shù)組及其應(yīng)用_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 1第第6章章 數(shù)組及其應(yīng)用數(shù)組及其應(yīng)用 本章主要任務(wù):本章主要任務(wù): (1) 明確數(shù)組的用途,即什么問題應(yīng)該考慮應(yīng)明確數(shù)組的用途,即什么問題應(yīng)該考慮應(yīng)用數(shù)組進行求解。用數(shù)組進行求解。 (2) 掌握一維數(shù)組和二維數(shù)組的定義及引用方掌握一維數(shù)組和二維數(shù)組的定義及引用方法。法。 (3) 掌握動態(tài)數(shù)組的使用方法。掌握動態(tài)數(shù)組的使用方法。 (4) 掌握控件數(shù)組的建立與應(yīng)用方法。掌握控件數(shù)組的建立與應(yīng)用方法。 (5)掌握數(shù)組

2、的基本算法。)掌握數(shù)組的基本算法。 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 21數(shù)組不是一種數(shù)據(jù)類型數(shù)組不是一種數(shù)據(jù)類型數(shù)組有點類似于數(shù)學(xué)上數(shù)組有點類似于數(shù)學(xué)上“集合集合”的概念,其作用就是存放一的概念,其作用就是存放一批性質(zhì)相同的數(shù)據(jù)(稱之為批性質(zhì)相同的數(shù)據(jù)(稱之為數(shù)組元素數(shù)組元素)。)。 2數(shù)組是一組相同類型變量的有序集合數(shù)組是一組相同類型變量的有序集合VB通過通過下標(biāo)下標(biāo)來給數(shù)組元素編號,數(shù)組名代表內(nèi)存中的一組來給數(shù)組元素編號,數(shù)組名代表內(nèi)存中的

3、一組數(shù)據(jù),下標(biāo)與數(shù)組名相結(jié)合可以實現(xiàn)對具體元素的訪問數(shù)據(jù),下標(biāo)與數(shù)組名相結(jié)合可以實現(xiàn)對具體元素的訪問 3數(shù)組在內(nèi)存中的存放形式數(shù)組在內(nèi)存中的存放形式 從本質(zhì)上講,定義數(shù)組就是在內(nèi)存中分配一塊連續(xù)的存儲區(qū)從本質(zhì)上講,定義數(shù)組就是在內(nèi)存中分配一塊連續(xù)的存儲區(qū)域,數(shù)組元素按照一定次序在這塊區(qū)域中連續(xù)存放。域,數(shù)組元素按照一定次序在這塊區(qū)域中連續(xù)存放。數(shù)組存儲空間數(shù)組存儲空間=元素個數(shù)元素個數(shù)該類型數(shù)據(jù)占用字節(jié)數(shù)該類型數(shù)據(jù)占用字節(jié)數(shù) 6.1 6.1 數(shù)組的基本概念數(shù)組的基本概念 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net

4、目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 31 1定義:定義:Dim Dim 數(shù)組名數(shù)組名( (下標(biāo)下標(biāo))As )As 類型類型 說明:說明:(1)數(shù)組名的命名規(guī)則與變量的命名規(guī)則相同。)數(shù)組名的命名規(guī)則與變量的命名規(guī)則相同。(2)下標(biāo)的形式為:)下標(biāo)的形式為:下界下界 To 上界上界下界與上界必須為常量,不可以是表達式或變量。下界與上界必須為常量,不可以是表達式或變量。下界可以省略,其缺省值默認(rèn)為下界可以省略,其缺省值默認(rèn)為0 0,可在模塊的通用聲,可在模塊的通用聲明部分使用明部分使用Option Base 1Option Base 1語句,將默認(rèn)缺省值設(shè)置為語句,將默認(rèn)缺

5、省值設(shè)置為1 1。元素個數(shù)元素個數(shù)= =上界上界- -下界下界+1+1 (3 3)類型可以為)類型可以為VBVB標(biāo)準(zhǔn)數(shù)據(jù)類型,也可以為用戶自定義數(shù)標(biāo)準(zhǔn)數(shù)據(jù)類型,也可以為用戶自定義數(shù)據(jù)類型。據(jù)類型。 6.2 6.2 一維一維數(shù)組數(shù)組6.2.1一維數(shù)組的定義及引用一維數(shù)組的定義及引用 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 42引用:引用:數(shù)組名數(shù)組名(下標(biāo)下標(biāo)) 一維數(shù)組各元素在內(nèi)存中按照下標(biāo)遞增的順序連續(xù)存放一維數(shù)組各元素在內(nèi)存中按照下標(biāo)遞增的順序連續(xù)

6、存放 下標(biāo)可以為整型常量、變量或表達式。下標(biāo)可以為整型常量、變量或表達式。 引用時下標(biāo)取值不能超出范圍(下界引用時下標(biāo)取值不能超出范圍(下界下標(biāo)下標(biāo)上界),否則將出現(xiàn)上界),否則將出現(xiàn)“下標(biāo)越界下標(biāo)越界”錯誤。錯誤。 84108數(shù)組元素數(shù)組元素a(1) a(2) a(3) a(10)a3 3賦值賦值 與變量相同,數(shù)組定義完畢后,系統(tǒng)會自動為每個元素賦初值。在與變量相同,數(shù)組定義完畢后,系統(tǒng)會自動為每個元素賦初值。在程序中,可通過程序中,可通過循環(huán)循環(huán)給數(shù)組元素賦值,例如:給數(shù)組元素賦值,例如:For i=1 To 10 a(i)=Val(InputBox(“請輸入一個整數(shù)請輸入一個整數(shù)”)Ne

7、xt I6.2 一維數(shù)組一維數(shù)組浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 5例例6- 16- 1 統(tǒng)計某班(假設(shè)有統(tǒng)計某班(假設(shè)有3030人)程序設(shè)計課程考試的平均成績,人)程序設(shè)計課程考試的平均成績,并輸出高于平均分的成績。并輸出高于平均分的成績。Private Sub Form_Click() Const NUM = 30定義符號常量代表學(xué)生人數(shù)定義符號常量代表學(xué)生人數(shù) Dim a(1 To NUM) As Integer, sum%, ave!,

8、i%, n% sum = 0初始化求和變量初始化求和變量 For i = 1 To NUM輸入學(xué)生成績并計算總成績輸入學(xué)生成績并計算總成績 a(i) = Val(InputBox(請輸入第請輸入第 & i & 個學(xué)生的成績個學(xué)生的成績) sum = sum + a(i) Next i ave = sum / NUM求平均成績求平均成績 Print 平均成績:平均成績:; ave For i = 1 To NUM輸出高于平均分的成績輸出高于平均分的成績 If a(i) ave Then Print a(i); n = n + 1 If n Mod 5 = 0 Then Print End If

9、Next i End Sub 6.2 6.2 一維一維數(shù)組數(shù)組浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 6 例例6-26-2 隨機產(chǎn)生隨機產(chǎn)生N N個大寫字母,然后將第一個字母與最后一個個大寫字母,然后將第一個字母與最后一個字母交換位置、第二個字母與倒數(shù)第二個字母交換位置、依次類字母交換位置、第二個字母與倒數(shù)第二個字母交換位置、依次類推,輸出最后的結(jié)果。推,輸出最后的結(jié)果。分析分析:首先找出交換的規(guī)律,即首先找出交換的規(guī)律,即第第i i個和第個和第N-i

10、+1N-i+1個字母交換個字母交換。然后判斷交換的次數(shù)為然后判斷交換的次數(shù)為N2N2 a(1) a(2) a(3) a(N-2)a(N-1)a(N)6.2 6.2 一維一維數(shù)組數(shù)組浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 7Private Sub Form_Click() Const N = 10 Dim a(1 To N) As String * 1, i As Integer,t As Integer For i = 1 To N a(i) = Ch

11、r(Int(Rnd * 25) + Asc(A)隨機產(chǎn)生大寫字母隨機產(chǎn)生大寫字母 Print a(i); Next i For i = 1 To N 2對稱字母進行交換對稱字母進行交換 t = a(i): a(i) = a(N - i + 1): a(N - i + 1) = t Next i Print For i = 1 To N Print a(i); Next iEnd Sub 6.2 一維數(shù)組一維數(shù)組浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 8

12、6.3 6.3 二維二維數(shù)組數(shù)組6.3.1 二維數(shù)組的定義及引用二維數(shù)組的定義及引用 1 1定義定義 :Dim Dim 數(shù)組名數(shù)組名( (下標(biāo)下標(biāo)1 1, ,下標(biāo)下標(biāo)2 2) )As As 類型類型 二維數(shù)組的元素個數(shù)可以通過二維數(shù)組的元素個數(shù)可以通過(上界(上界1-1-下界下界1+11+1)(上界(上界2-2-下界下界2+12+1)計算。計算。 例如:例如: Dim x(1 To 2,1 To 3)As IntegerDim x(1 To 2,1 To 3)As Integer 定義了一個包含定義了一個包含6 6個元素的二維整型數(shù)組個元素的二維整型數(shù)組x x。 2引用:引用:數(shù)組名數(shù)組名(下

13、標(biāo)下標(biāo)1,下標(biāo)下標(biāo)2) 習(xí)慣上稱二維數(shù)組第一維下標(biāo)為習(xí)慣上稱二維數(shù)組第一維下標(biāo)為行下標(biāo)行下標(biāo),第二維下標(biāo)為,第二維下標(biāo)為列下標(biāo)列下標(biāo)。 可以把二維數(shù)組看作一張可以把二維數(shù)組看作一張二維表二維表,各元素在內(nèi)存中按照,各元素在內(nèi)存中按照“先行先行后列后列”的順序連續(xù)存放的順序連續(xù)存放 841082數(shù)組元素數(shù)組元素x(1,1) x(1,2) x(1,3)x8x(2,1) x(2,2) x(2,3)浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 9For i=1 To

14、 2輸出輸出For j=1 To 3Print x(i,j);Next jPrintNext I For i=1 To 2輸入輸入 For j=1 To 3x(i,j)=Int(Rnd*10) Next jNext i 3賦值賦值在程序中經(jīng)常使用在程序中經(jīng)常使用二重循環(huán)二重循環(huán)對二維數(shù)組中元素進行輸入和輸出對二維數(shù)組中元素進行輸入和輸出 一般而言,外循環(huán)控制行下標(biāo)的變化,內(nèi)循環(huán)控制列下標(biāo)的變一般而言,外循環(huán)控制行下標(biāo)的變化,內(nèi)循環(huán)控制列下標(biāo)的變化?;?例例6-36-3 編程輸出某班(假設(shè)有編程輸出某班(假設(shè)有3030人)期末考試(假設(shè)共有人)期末考試(假設(shè)共有5 5門課程門課程考試)總成績最

15、高的學(xué)生的各門課程成績??荚嚕┛偝煽冏罡叩膶W(xué)生的各門課程成績。分析分析:一共需要處理:一共需要處理30306 6個數(shù)據(jù)(包括一個總成績),可以個數(shù)據(jù)(包括一個總成績),可以定義一個二維數(shù)組用來存放這些數(shù)據(jù)。查找最高總成績時,先定義一個二維數(shù)組用來存放這些數(shù)據(jù)。查找最高總成績時,先假設(shè)第一個學(xué)生的總成績最高,然后再拿其他學(xué)生的成績依次假設(shè)第一個學(xué)生的總成績最高,然后再拿其他學(xué)生的成績依次比較,最終得到最高的總成績。比較,最終得到最高的總成績。 6.3 二維數(shù)組二維數(shù)組浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6

16、.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 106.3.2 多維數(shù)組的定義及引用多維數(shù)組的定義及引用 多維數(shù)組的定義形式多維數(shù)組的定義形式Dim 數(shù)組名數(shù)組名(下標(biāo)下標(biāo)1,下標(biāo)下標(biāo)2)As 類型類型多維數(shù)組的引用形式多維數(shù)組的引用形式數(shù)組名數(shù)組名(下標(biāo)下標(biāo)1,下標(biāo)下標(biāo)2)多維數(shù)組的使用方法多維數(shù)組的使用方法一般通過一般通過多重循環(huán)多重循環(huán)進行處理,其中每一重循環(huán)的循環(huán)變量進行處理,其中每一重循環(huán)的循環(huán)變量變化范圍對應(yīng)一個下標(biāo)的變化范圍。變化范圍對應(yīng)一個下標(biāo)的變化范圍。 6.3 6.3 二維二維數(shù)組數(shù)組浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.

17、Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 116.4 動態(tài)數(shù)組動態(tài)數(shù)組 6.4.1 動態(tài)數(shù)組的定義及引用動態(tài)數(shù)組的定義及引用 1 1定義定義 :Dim Dim 數(shù)組名數(shù)組名()As ()As 類型類型 動態(tài)數(shù)組在定義時并未確定數(shù)組大?。ㄊ÷粤讼聵?biāo)說明,動態(tài)數(shù)組在定義時并未確定數(shù)組大小(省略了下標(biāo)說明,但是但是括號并不能省略括號并不能省略 ) 2引用引用 在程序中使用動態(tài)數(shù)組之前,必須指明數(shù)組的大小在程序中使用動態(tài)數(shù)組之前,必須指明數(shù)組的大小 ReDim 數(shù)組名數(shù)組名(下標(biāo)下標(biāo)) 下標(biāo)說明可以是常量,也可以是下標(biāo)說明可以是常量,也可以是有

18、確定值的數(shù)值型變量有確定值的數(shù)值型變量。 可以多次使用可以多次使用ReDim語句來改變數(shù)組元素個數(shù)和維數(shù),語句來改變數(shù)組元素個數(shù)和維數(shù),但不能使用但不能使用ReDim語句改變數(shù)組的類型。語句改變數(shù)組的類型。 可通過可通過Preserve參數(shù)保留數(shù)組中原來的數(shù)據(jù),但使用參數(shù)保留數(shù)組中原來的數(shù)據(jù),但使用Preserve參數(shù)后就只能改變最后一維的大小,不能改變數(shù)參數(shù)后就只能改變最后一維的大小,不能改變數(shù)組的維數(shù)組的維數(shù) 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè)

19、 126.4 動態(tài)數(shù)組動態(tài)數(shù)組 例如:例如:Dim c() As Integer定義動態(tài)數(shù)組定義動態(tài)數(shù)組ReDim c(1 To 10)指明數(shù)組大小指明數(shù)組大小ReDim c(3, 4)改變數(shù)組元素個數(shù)和維數(shù)改變數(shù)組元素個數(shù)和維數(shù)ReDim Preserve c(3, 5)在保留原來數(shù)據(jù)的基礎(chǔ)上,增加一列在保留原來數(shù)據(jù)的基礎(chǔ)上,增加一列6.4.2 數(shù)組操作的相關(guān)函數(shù)數(shù)組操作的相關(guān)函數(shù) 1 1ArrayArray函數(shù)函數(shù) 功能:功能:給一個給一個VariantVariant類型動態(tài)數(shù)組賦值,同時確定數(shù)組大小類型動態(tài)數(shù)組賦值,同時確定數(shù)組大小 使用使用ArrayArray函數(shù)給動態(tài)數(shù)組賦值后,該數(shù)

20、組被確定為一維數(shù)組,函數(shù)給動態(tài)數(shù)組賦值后,該數(shù)組被確定為一維數(shù)組,其下標(biāo)下界由其下標(biāo)下界由Option BaseOption Base語句決定,下標(biāo)上界由參數(shù)個數(shù)決定語句決定,下標(biāo)上界由參數(shù)個數(shù)決定2 2LboundLbound函數(shù)和函數(shù)和UboundUbound函數(shù)函數(shù) 功能:功能:幫助用戶決定數(shù)組每一維下標(biāo)的變化范圍,幫助用戶決定數(shù)組每一維下標(biāo)的變化范圍,LboundLbound函數(shù)函數(shù)返回下界,返回下界,UboundUbound函數(shù)返回上界函數(shù)返回上界 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1

21、6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 136.4 動態(tài)數(shù)組動態(tài)數(shù)組 3 3SplitSplit函數(shù)和函數(shù)和JoinJoin函數(shù)函數(shù) 使用使用SplitSplit函數(shù)可以從一個字符串中,以指定字符為分隔符,函數(shù)可以從一個字符串中,以指定字符為分隔符,分離出若干個子字符串,并保存在一個下標(biāo)從分離出若干個子字符串,并保存在一個下標(biāo)從0 0開始的一維數(shù)開始的一維數(shù)組中組中 使用使用JoinJoin函數(shù)可以把一個函數(shù)可以把一個String類型或類型或Variant類型數(shù)組類型數(shù)組中的各個元素連接成為一個字符串中的各個元素連接成為一個字符串 例例6-56-5 通過輸入對話框輸入一批成績,把及格的

22、和不及格的通過輸入對話框輸入一批成績,把及格的和不及格的成績分別存放在數(shù)組成績分別存放在數(shù)組a a和和b b中,并以每行中,并以每行5 5 個數(shù)據(jù)的形式輸出數(shù)個數(shù)據(jù)的形式輸出數(shù)組組a a和和b b。 分析:分析:由于事先并不知道及格的和不及格的成績各有多少個,由于事先并不知道及格的和不及格的成績各有多少個,因此需要使用動態(tài)數(shù)組存放成績。因此需要使用動態(tài)數(shù)組存放成績。 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 146.36.3動態(tài)數(shù)組動態(tài)數(shù)組 Privat

23、e Sub Form_Click() Dim a() As Integer, b() As Integer Dim n%, pa%, pb%, i% n = Val(InputBox(請輸入一個成績,輸入請輸入一個成績,輸入-1結(jié)束結(jié)束) pa = 0: pb = 0分別表示數(shù)組分別表示數(shù)組a和和b中元素個數(shù)中元素個數(shù) Do Until n = -1 If n = 60 Then pa = pa + 1 ReDim Preserve a(1 To pa) a(pa) = n Else pb = pb + 1 ReDim Preserve b(1 To pb) b(pb) = n End If

24、n = Val(InputBox(請輸入一個成績,輸入請輸入一個成績,輸入-1結(jié)束結(jié)束) Loop 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 156.3 6.3 動態(tài)數(shù)組動態(tài)數(shù)組 Print Print 及格成績:及格成績: For i = LBound(a) To UBound(a) Print a(i); If i Mod 5 = 0 Then Print Next i Print 不及格成績:不及格成績: For i = LBound(b) To

25、UBound(b) Print b(i); If i Mod 5 = 0 Then Print Next iEnd Sub浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 166.5 6.5 控件數(shù)組控件數(shù)組 6.5.1 控件數(shù)組的概念控件數(shù)組的概念 VBVB允許將一組相同類型的控件構(gòu)成一個控件數(shù)組,它們允許將一組相同類型的控件構(gòu)成一個控件數(shù)組,它們共共用同一個控件名,共享同樣的事件過程用同一個控件名,共享同樣的事件過程。系統(tǒng)自動為控件數(shù)組中的每個控件分配一個唯

26、一的下標(biāo),系統(tǒng)自動為控件數(shù)組中的每個控件分配一個唯一的下標(biāo),即控件的即控件的IndexIndex屬性屬性,第一個元素的下標(biāo)為,第一個元素的下標(biāo)為0 0。 控件數(shù)組中的每個控件都有自己的屬性設(shè)置??丶?shù)組中的每個控件都有自己的屬性設(shè)置。6.5.2 控件數(shù)組的建立控件數(shù)組的建立 1 1在設(shè)計階段靜態(tài)創(chuàng)建在設(shè)計階段靜態(tài)創(chuàng)建 (1)在窗體上創(chuàng)建控件數(shù)組中的第一個控件,并設(shè)置好控)在窗體上創(chuàng)建控件數(shù)組中的第一個控件,并設(shè)置好控件名等相關(guān)屬性。件名等相關(guān)屬性。(2)選擇該控件,執(zhí)行)選擇該控件,執(zhí)行“編輯編輯”菜單中的菜單中的“復(fù)制復(fù)制”命令。命令。(3 3)根據(jù)需要執(zhí)行若干次)根據(jù)需要執(zhí)行若干次“編輯編

27、輯”菜單中的菜單中的“粘貼粘貼”命令。命令。 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 176.5 6.5 控件數(shù)組控件數(shù)組2在運行階段動態(tài)添加在運行階段動態(tài)添加 (1)在窗體上創(chuàng)建控件數(shù)組中的第一個控件,設(shè)置好控件名等)在窗體上創(chuàng)建控件數(shù)組中的第一個控件,設(shè)置好控件名等相關(guān)屬性后,設(shè)置其相關(guān)屬性后,設(shè)置其Index屬性值為屬性值為0,表示這是一個控件數(shù)組。,表示這是一個控件數(shù)組。 (2)在代碼中根據(jù)使用)在代碼中根據(jù)使用Load語句和語句和Unload

28、語句進行控件元素語句進行控件元素的添加和刪除,具體使用形式為:的添加和刪除,具體使用形式為: Load 控件數(shù)組名控件數(shù)組名(下標(biāo)下標(biāo)) Unload 控件數(shù)組名控件數(shù)組名(下標(biāo)下標(biāo)) (3 3)設(shè)置新添加控件的相關(guān)屬性,其中可通過)設(shè)置新添加控件的相關(guān)屬性,其中可通過LeftLeft屬性和屬性和TopTop屬性確定其位置,并將屬性確定其位置,并將VisibleVisible屬性設(shè)置為屬性設(shè)置為TrueTrue。.3控件數(shù)組的應(yīng)用控件數(shù)組的應(yīng)用 使用控件數(shù)組主要是利用其共享事件過程的特點來簡化編程。使用控件數(shù)組主要是利用其共享事件過程的特點來簡化編程。當(dāng)對一個建立好的控件數(shù)組編

29、寫事件過程時,為區(qū)別各個控件當(dāng)對一個建立好的控件數(shù)組編寫事件過程時,為區(qū)別各個控件,VB把控件的把控件的Index屬性作為過程參數(shù)屬性作為過程參數(shù)在過程中可以通過如下形式引用相關(guān)控件:在過程中可以通過如下形式引用相關(guān)控件: 控件數(shù)組名控件數(shù)組名(Index)(Index) 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 186.6 應(yīng)用舉例應(yīng)用舉例 6.6.1 統(tǒng)計問題統(tǒng)計問題例例6-76-7 輸入一批學(xué)生成績,分別統(tǒng)計輸入一批學(xué)生成績,分別統(tǒng)計09、1019

30、9099和和100分的學(xué)生人數(shù),界面如圖分的學(xué)生人數(shù),界面如圖7-5所示,要求如下:所示,要求如下:(1 1)通過文本框)通過文本框txtInputtxtInput輸入一批成績,以逗號分隔。除輸入一批成績,以逗號分隔。除數(shù)字符、小數(shù)點、逗號和回車符外,文本框不接受其它字符。數(shù)字符、小數(shù)點、逗號和回車符外,文本框不接受其它字符。(2 2)成績輸入完畢按回車鍵后,程序自動將文本框中的數(shù))成績輸入完畢按回車鍵后,程序自動將文本框中的數(shù)據(jù)以逗號為分隔符進行分離,統(tǒng)計并在圖形框據(jù)以逗號為分隔符進行分離,統(tǒng)計并在圖形框picOutputpicOutput中顯中顯示各分?jǐn)?shù)段學(xué)生人數(shù)。示各分?jǐn)?shù)段學(xué)生人數(shù)。 浙

31、江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 196.6 應(yīng)用舉例應(yīng)用舉例 分析分析: (1)程序中需要判斷用戶輸入的字符,因此應(yīng)考慮編寫)程序中需要判斷用戶輸入的字符,因此應(yīng)考慮編寫txtInput_KeyPress事件過程。事件過程。 (2)分離出來的數(shù)據(jù)存放在數(shù)組中,由于不確定數(shù)據(jù)個數(shù))分離出來的數(shù)據(jù)存放在數(shù)組中,由于不確定數(shù)據(jù)個數(shù),因此應(yīng)該使用動態(tài)數(shù)組。,因此應(yīng)該使用動態(tài)數(shù)組。 (3 3)需要)需要09、10199099和和100分十種條件進行分類分十

32、種條件進行分類統(tǒng)計,考慮定義一個有統(tǒng)計,考慮定義一個有1010個元素一維數(shù)組個元素一維數(shù)組b b作為計數(shù)器,作為計數(shù)器,b(0)b(0)記錄記錄09分的人數(shù),分的人數(shù),b(1)b(1)記錄記錄1 1019分的人數(shù),分的人數(shù),b(10)記錄記錄100分的人數(shù)。分的人數(shù)。 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 206.6 應(yīng)用舉例應(yīng)用舉例 6.6.2 排序問題排序問題 1選擇法排序(假設(shè)對選擇法排序(假設(shè)對n個數(shù)按升序排列)個數(shù)按升序排列)(1)從)從n

33、個數(shù)中選出最小的數(shù),與第個數(shù)中選出最小的數(shù),與第1個數(shù)交換位置。個數(shù)交換位置。(2)從除第)從除第1 個數(shù)外的剩余個數(shù)外的剩余n-1個數(shù)中選出最小的數(shù),與第個數(shù)中選出最小的數(shù),與第2個數(shù)個數(shù)交換位置。交換位置。(3)重復(fù)選擇)重復(fù)選擇n-1次后,最終得到遞增序列。次后,最終得到遞增序列。 例例6-8 對隨機產(chǎn)生的對隨機產(chǎn)生的5個兩位整數(shù),使用選擇法按遞增排序后輸出。個兩位整數(shù),使用選擇法按遞增排序后輸出。 分析:分析:每次選出的陰影表示的最小數(shù)總是和方框表示的選擇范圍內(nèi)的每次選出的陰影表示的最小數(shù)總是和方框表示的選擇范圍內(nèi)的第一個數(shù)交換位置。第一個數(shù)交換位置。 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)

34、網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 216.5應(yīng)用舉例應(yīng)用舉例 Private Sub Form_Click() Const N = 5 Dim a(1 To N) As Integer, i%, j%, k%, t% Randomize For i = 1 To N a(i) = Int(Rnd * 90) + 10隨機產(chǎn)生一個兩位整數(shù)隨機產(chǎn)生一個兩位整數(shù) Print a(i); Next i For i = 1 To N 1選擇選擇N-1次次 k = ik代表最小元素下標(biāo)代表

35、最小元素下標(biāo) For j = i + 1 To N比較的范圍比較的范圍 If a(j) a(j+1) Then t = a(j): a(j) = a(j+1): a(j+1) = tEnd If Next j Next i Print For i = 1 To N Print a(i); Next iEnd Sub浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 246.6 應(yīng)用舉例應(yīng)用舉例 6.6.3查找問題查找問題 1順序查找順序查找順序查找的基本思想是根據(jù)

36、查找的關(guān)鍵值與數(shù)組中的元順序查找的基本思想是根據(jù)查找的關(guān)鍵值與數(shù)組中的元素素一一比較一一比較,如果相同,則查找成功,返回該元素的下標(biāo);,如果相同,則查找成功,返回該元素的下標(biāo);如果均不相同,則返回如果均不相同,則返回-1表示查找失敗。表示查找失敗。例例6-106-10 編程實現(xiàn)順序查找。編程實現(xiàn)順序查找。 key = Val(InputBox(請輸入查找的關(guān)鍵值請輸入查找的關(guān)鍵值, 順序查找順序查找) For i = LBound(a) To UBound(a) If a(i) = key Then Print key & 為數(shù)組中第為數(shù)組中第 & i & 個元素個元素 Exit For En

37、d If Next i If i UBound(a) Then Print key & “不是數(shù)組中的元素不是數(shù)組中的元素” 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 256.6 應(yīng)用舉例應(yīng)用舉例 2 2二分查找二分查找 前提條件:所查找的數(shù)組必須已經(jīng)排好序前提條件:所查找的數(shù)組必須已經(jīng)排好序 算法描述(假設(shè)在一個升序排列的數(shù)組算法描述(假設(shè)在一個升序排列的數(shù)組a中查找關(guān)鍵值中查找關(guān)鍵值key)(1)確定查找范圍,下界)確定查找范圍,下界low=LBou

38、nd(a),上界,上界high=Ubound(a),計算,計算m=(low+high)2。(2)比較)比較a(m)與與key的大小關(guān)系:的大小關(guān)系:若若a(m)=key,則查找成功,返回,則查找成功,返回m,算法結(jié)束。,算法結(jié)束。若若a(m)key,則重新確定查找范圍,則重新確定查找范圍,low=m+1,high保保持不變,重新計算持不變,重新計算m=(low+high)2。(3)重復(fù)()重復(fù)(2)直到查找成功,或者)直到查找成功,或者lowhigh。若。若lowhigh則則說明數(shù)組不無此關(guān)鍵值。說明數(shù)組不無此關(guān)鍵值。 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站

39、:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 266.6 應(yīng)用舉例應(yīng)用舉例 方框表示查找范圍,加下劃線的數(shù)表示當(dāng)前進行比較的元方框表示查找范圍,加下劃線的數(shù)表示當(dāng)前進行比較的元素,二分查找每進行一次,查找范圍就縮小一半。素,二分查找每進行一次,查找范圍就縮小一半。 浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 276.6 應(yīng)用舉例應(yīng)用舉例 key = Val(InputBox(請輸入查找的關(guān)鍵值

40、請輸入查找的關(guān)鍵值, 二分查找二分查找) low = LBound(a) high = UBound(a) Do While low key Then high = m - 1 Else low = m + 1 End If Loop If low high Then Print key & 不在數(shù)組中不在數(shù)組中浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 286.6 應(yīng)用舉例應(yīng)用舉例 6.6.4插入和刪除問題插入和刪除問題 1插入插入假設(shè)要在一個具有假設(shè)要

41、在一個具有n個升序排列元素的一維數(shù)組中插入一個新個升序排列元素的一維數(shù)組中插入一個新的元素的元素k,算法描述如下:,算法描述如下:(1)從第)從第1個元素開始逐個與個元素開始逐個與k比較,一旦發(fā)現(xiàn)第比較,一旦發(fā)現(xiàn)第p個元素大于個元素大于k,則確定插入的位置為,則確定插入的位置為p,如果所有元素均小于,如果所有元素均小于k,則確定插,則確定插入的位置為入的位置為n+1。(2)重新定義數(shù)組大小,從第)重新定義數(shù)組大小,從第n個元素到第個元素到第p個元素逐一向后個元素逐一向后移動一個位置。移動一個位置。 (3 3)將)將k k賦值給第賦值給第p p個元素,完成插入操作。個元素,完成插入操作。 246108待插入元素待插入元素ka(1) a(2) a(3) a(4) a(5) a(6)7浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:浙江科技學(xué)院教信系計算機基礎(chǔ)教學(xué)網(wǎng)站:www.Goit.Netwww.Goit.Net目錄6.1 6.2 6.3 6.4 6.5 本章小結(jié) 作業(yè) 296.6 應(yīng)用舉例應(yīng)用舉例 例例6-6-12 編程實現(xiàn)插入算法。編程實現(xiàn)插入算法。 k = Val(InputBox(請輸入待插入的元素請輸入待插入的元素, 插入插入) For i = LBound(a) To UBound(a)確定插入位置確定插入位

溫馨提示

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

最新文檔

評論

0/150

提交評論