【正文】
同學(xué)的編號和成績; Visual Basic程序設(shè)計(jì)教程 22 第二步,輸入 30位同學(xué)的編號和成績; 第三步,計(jì)算平均成績; 第四步,將每位同學(xué)的成績與平均成績比較,發(fā)現(xiàn)大于或等于平均成績的輸出編號和成績,并計(jì)數(shù); 第五步,輸出統(tǒng)計(jì)人數(shù)。換行 Next I 7.訪問數(shù)組 訪問數(shù)組中各元素一般采用循環(huán)。 Dim C, B As Integer, i As Integer 39。 計(jì)算機(jī)學(xué)院 For i=1 To 50 A(i) = i Next i Visual Basic程序設(shè)計(jì)教程 17 3.運(yùn)行時通過輸入賦值 通過文本框: S(5)= 通過輸入對話框?qū)σ慌鷶?shù)組元素賦值 For i=1 To 50 A(i) = Val(InputBox(請輸入數(shù)據(jù) )) Next I Visual Basic程序設(shè)計(jì)教程 18 4.使用 Array函數(shù)對數(shù)組所有元素賦初值 Array函數(shù)的使用格式是: Array(表達(dá)式表 ) 表達(dá)式表中各表達(dá)式用逗號間隔 Array函數(shù)返回含有數(shù)組的 Variant類型。 下標(biāo)應(yīng)為數(shù)值型的表達(dá)式,允許出現(xiàn)變量 下標(biāo)值應(yīng)在下界和上界之間,否則出錯。 Visual Basic程序設(shè)計(jì)教程 15 使用一維數(shù)組 使用數(shù)組包括:元素的引用、初始化及輸入輸出。 省略類型名,則表示為 Variant類型。 缺省下界值可用 Option Base語句重新設(shè)置,格式: Option Base 0|1 Option Base 1, 表示將 下界缺省值設(shè)置為 1。 它有兩種表示形式: 上界 下界 To 上界 下界和上界必須使用數(shù)值型常量表達(dá)式 下界和上界表示數(shù)組元素的下標(biāo)的范圍 Visual Basic程序設(shè)計(jì)教程 13 在缺省狀態(tài)下,起始下標(biāo)(下界值)為 0 Dim A(50),表示數(shù)組 A有 51個元素,即 A(0)、A(1)、 … 、 A(50)。格式: Dim 數(shù)組名 (下標(biāo)說明 ) [As類型名 ] [,數(shù)組名 (下標(biāo)說明 ) [As數(shù)據(jù)名 ]] … Visual Basic程序設(shè)計(jì)教程 12 說明: 數(shù)組名的命名方式與變量名一樣,但不能和簡單變量名重名。 使用 n( 1≤n≤16)個下標(biāo)的數(shù)組,稱為n維數(shù)組。 amp。 amp。同時交換姓名和成績 TempName = Name1(i): Name1(i) = Name1(j): Name1(j) = TempName TempScore = Score(i): Score(i) = Score(j): Score(j) = TempScore End If Next j Next i For i = 1 To N 39。 Score(i), 0 Next i Visual Basic程序設(shè)計(jì)教程 10 For i = 1 To N 1 39。 位運(yùn)動員成績 , 成績)) Name1(i) amp。 位運(yùn)動員姓名 , 姓名 ) Score(i) = Val(InputBox(請輸入第 amp。輸入姓名和成績 ,放入左列表框 Name1(i) = InputBox(請輸入第 amp?;Q Next j 然后再將 i從 1循環(huán)到 n1,就可構(gòu)成分類(排序)程序段。 在第 i至 n個元素中,選最小數(shù)并放入 a(i) 的程序是: For j = i + 1 To n 39。 重復(fù)以上步驟,直至在最后兩個數(shù)中選取最小數(shù),放在第 n1個數(shù)組元素中。 取第 2個數(shù),與后面 n2(即 3到 n)個數(shù)逐個比較。 若第 1個數(shù)大,則 a(1)與參與比較的元素中的值進(jìn)行互換 再將互換后的第 1個數(shù)與剩下的數(shù)據(jù)比較,直到最后。 對 n個數(shù) a(1)~ a(n),采用選擇分類法的算法是: 先在 n個數(shù)中選最小數(shù),放在第 1個數(shù)組元素中。 事件: 主要是 Command1的 Click事件 Visual Basic程序設(shè)計(jì)教程 6 排序又稱分類。對一批馬拉松運(yùn)動員按成績(單位:小時)排名次。 數(shù)組中包含了一個或多個元素 下標(biāo)給出了數(shù)組中元素的順序 數(shù)組和循環(huán)結(jié)構(gòu)配合,使數(shù)據(jù)處理變得容易。大學(xué)計(jì)算機(jī)基礎(chǔ)教程 TaiYuan University of Technology 第 7章 使用數(shù)組 Visual Basic 程序設(shè)計(jì)教程 Visual Basic程序設(shè)計(jì)教程 2 本章介紹: 構(gòu)造結(jié)構(gòu)類型 ——數(shù)組 列表框 組合框 一些典型算法 Visual Basic程序設(shè)計(jì)教程 3 數(shù)組( Arrary)是構(gòu)造的一種新的數(shù)據(jù)表達(dá)。 數(shù)組是一組具有 相同變量名和類型 的數(shù)據(jù)(叫做數(shù)組元素)的連續(xù)存儲單元。 Visual Basic程序設(shè)計(jì)教程 4 【 例 71】 設(shè)計(jì)程序,如圖。 控件: 2個標(biāo)簽 2個列表框 1個命令按鈕 Visual Basic程序設(shè)計(jì)教程 5 ―輸入數(shù)據(jù)并排名”按鈕作用: 輸入運(yùn)行員人數(shù) 輸入各運(yùn)動員的姓名和成績 左列表框放排序前的數(shù)據(jù) 右列表框放排序后的名次數(shù)據(jù)。有多種方法:選擇分類法、冒泡分類法等。 取第 1個數(shù),與后面 n1(即 2到 n)個數(shù)逐個比較。 Visual Basic程序設(shè)計(jì)教程 7 再在第 2至 n個元素中,選最小數(shù),放在第 2個數(shù)組元素中。 若第 2個數(shù)大,則與數(shù)組元素中的值進(jìn)行互換, … ,直到最后。 Visual Basic程序設(shè)計(jì)教程 8 最后第 n個元素已是最大數(shù)了。將 a(i)與 a(i+1)~ a(n)逐一比較 If a(i) a(j) Then Temp = a(i) : a(i) = a(j) : a(j) = Temp 39。 Visual Basic程序設(shè)計(jì)教程 9 Private Sub Command1_Click() Dim Name1() As String, Score() As Single ?動態(tài)數(shù)組聲明 Dim TempName As String, TempScore As Single Dim N As Integer, i As Integer, j As Integer N = Val(InputBox(―請輸入運(yùn)動員人數(shù)” , ―輸入” )) ReDim Name1(N), Score(N) ‘根據(jù)人數(shù)動態(tài)定義數(shù)組的大小 : ?清除兩個列表框中數(shù)據(jù) For i = 1 To N 39。 i amp。 i amp。 amp。開始按成績從小到大排序 For j = i + 1 To N If Score(i) Score(j) Then 39。將排序后數(shù)據(jù)及名次放入右列表框 i amp。 Name1(i) amp。 Score(i) Next i End Sub Visual Basic程序設(shè)計(jì)教程 11 如何聲明一維數(shù)組 只有一個下標(biāo)的數(shù)組,稱為一維數(shù)組。 數(shù)組在使用前必須先聲明。 下標(biāo)說明又稱維定義符,定義了這個維的大小。 Dim B(4 to 6),表示數(shù)組 B有 3個元素,即為 B(4)、B(5)和 B(6)。 Visual Basic程序設(shè)計(jì)教程 14 類型名與變量聲明時使用的一樣,表示被聲明的這個數(shù)組的每一個元素都具有這種類型。 例如,要聲明兩個包含 50個元素的數(shù)組,一個存放姓名,為字符串型,一個存放年齡,為整型,則聲明語句為: Dim Name1(50) As String, Age(50) As Integer 一般情況下,它們實(shí)際各包含元素 51個。 1.引用數(shù)組元素 引用格式為: 數(shù)組名 (下標(biāo) ) 數(shù)組名應(yīng)與聲明時的數(shù)組名相同 下標(biāo)必須用括號括起來,不能把 Score(1)寫成Score1。 如,可用: A(2)、 A(i)、 A(k*2)等訪問元素,只要下標(biāo)不越界 Visual Basic程序設(shè)計(jì)教程 16 2.給數(shù)組元素賦值 數(shù)組元素的用法,與簡單變量用法一樣 凡是可用簡單變量的地方,都可用同一類型的數(shù)組元素 A(k*2)=k*100 : S(i)=浙江大學(xué) amp。 使用 Array函數(shù)前,必須先將數(shù)組名定義為 Variant類型。相當(dāng)于 Dim C As Variant,... B = 100 C = Array(3, 4 + B, 5) For i = 0 To 2: Print C(i),: Next Array函數(shù)根據(jù)表達(dá)式個數(shù),確定數(shù)組的元素個數(shù) Visual Basic程序設(shè)計(jì)教程 19 5. UBound函數(shù)和 LBound函數(shù) 這兩個函數(shù)的作用是獲得數(shù)組上界和下界 對于一維數(shù)組,它們的基本格式為: UBound(數(shù)組名 ) 和 LBound(數(shù)組名 ) For i = LBound(C) To UBound(C): Print C(i),: Next Visual Basic程序設(shè)計(jì)教程 20 6.輸出一維數(shù)組 輸出個別元素,直接使用如 Print A(5)的句子 輸出一批數(shù)組元素,往往使用循環(huán): For i = 1 To 50 Print A(i), If i Mod 5 = 0 Then Print 39。 Visual Basic程序設(shè)計(jì)教程 21 【 例 72】 輸入 30位同學(xué)的編號和成績,求他們的平均成績,并輸出高于平均分的同學(xué)編號和成績,以及這些同學(xué)的人數(shù)。 Visual Basic程序設(shè)計(jì)教程 23 使用一維數(shù)組 【 例 72】 Private Sub Command1_Click() Dim ID(30) As Long, Score(30) As Integer, i As Integer Dim Average As Single, Count As Integer For i = 1 To 20 39。 i amp。 i amp。開始計(jì)算平均分 For i = 1 To 30 Average = Average + Score(i) Next i 輸入數(shù)據(jù)和計(jì)算平均分可同時進(jìn)行。 Visual Basic程序設(shè)計(jì)教程 24 Average = Average / 30 Print 平均分 = 。開始計(jì)數(shù),并輸出高于平均分的數(shù)據(jù) For i = 1 To 30 If Score(i) Average Then Print ID(i)。每行顯示 5人 End If Next i Print: Print 人數(shù) =。輸出人數(shù) End Sub Visual Basic程序設(shè)計(jì)教程 25 使用一維數(shù)組 【 例 73】 編程:按編號順序輸入