




已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)基礎(chǔ)(VB),主講人:孟永偉,Email:,第七章 數(shù)組和自定義數(shù)據(jù)類型,教學(xué)基本要求,掌握數(shù)組、控件數(shù)組的概念; 掌握數(shù)組應(yīng)用的一般方法; 了解自定義數(shù)據(jù)類型的應(yīng)用。,教學(xué)內(nèi)容,7.1 數(shù)組的概念 7.2 靜態(tài)數(shù)組聲明及應(yīng)用 7.3 動(dòng)態(tài)數(shù)組聲明及應(yīng)用 7.4 控件數(shù)組的概念及應(yīng)用 7.5 自定義數(shù)據(jù)類型 7.6 列表框和組合框控件,主要知識(shí)點(diǎn)與重點(diǎn),靜態(tài)數(shù)組聲明及應(yīng)用; 動(dòng)態(tài)數(shù)組聲明及應(yīng)用; 控件數(shù)組的建立及應(yīng)用。,7.1 數(shù)組的概念,引例 例:若要計(jì)算一個(gè)班100個(gè)學(xué)生的平均成績(jī),然后統(tǒng)計(jì)高于平均分的人數(shù)。,分析: 該問題可分三部分處理: 一 是輸入100個(gè)人的成績(jī); 二是求平均分; 三是把這100個(gè)分?jǐn)?shù)逐一和平均成績(jī)進(jìn)行比較,若高于平均成績(jī),則輸出。,7.1 數(shù)組的概念,在實(shí)際應(yīng)用中,常常需要處理同一類型的成批數(shù)據(jù)。 例如:為了處理100個(gè)學(xué)生某門課程的考試成績(jī),可以用mark1,mark2,mark3.,mark100來分別代表每個(gè)學(xué)生的分?jǐn)?shù),其中mark1代表第一個(gè)學(xué)生的分?jǐn)?shù),mark2代表第二個(gè)學(xué)生的分?jǐn)?shù).這里的mark1,mark2,.mark100是帶有下標(biāo)的變量,通常稱為下標(biāo)變量。顯然,用一批具有相同名字、不同下標(biāo)的下標(biāo)變量來表示同一屬性的一組數(shù)據(jù),能更清楚地表示它們之間的關(guān)系。,在VB中,把一組具有同一名字、不同下標(biāo)的下標(biāo)變量稱為數(shù)組。,例如:mark(8)中,mark稱為數(shù)組名,8是下標(biāo)。下標(biāo)用來指出某個(gè)數(shù)組元素在數(shù)組中的位置,mark(8)代表mark數(shù)組中的第九個(gè)元素。,在程序中使用數(shù)組的最大好處是用一個(gè)數(shù)組名代表邏輯上相關(guān)的一批數(shù)據(jù),用下標(biāo)表示該數(shù)組中的各個(gè)元素,和循環(huán)語句結(jié)合使用,使得程序書寫更為簡(jiǎn)潔。,7.1 數(shù)組的概念,數(shù)組必須先聲明后使用,要聲明數(shù)組名、類型、維數(shù)、數(shù)組大小。 在VB中,Variant類型數(shù)組的各元素可以是不同的數(shù)據(jù)類型,但建議不要使用。 數(shù)組聲明時(shí)下標(biāo)的個(gè)數(shù)分為一維數(shù)組和多維數(shù)組。 數(shù)組聲明時(shí)根據(jù)數(shù)組大小確定與否可分為靜態(tài)(固定大?。?shù)組和動(dòng)態(tài)數(shù)組(大小可變)。,注意,7.2.1 一維數(shù)組的聲明 Dim 數(shù)組名(下標(biāo))As 類型,說明: As類型:如果默認(rèn),是變體類型。 一維數(shù)組的大?。荷辖?下界+1。 下標(biāo):必須為常量,不可以為表達(dá)式或變量。 下標(biāo)形式:下界 To上界,下標(biāo)下界最小可為-32768,最大的上界為32767,通常可以省略下界,其默認(rèn)值為0。,例如: Dim a(10) As Integer 其中:a是數(shù)組名、整型、一維數(shù)組、有11個(gè)元素、下標(biāo)范圍010。 Dim St(-3 To 5) As String*3 其中:St是數(shù)組名、字符串類型、一維數(shù)組、有9個(gè)元素;下標(biāo)范圍-35,每個(gè)元素最多存放3個(gè)字符。,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,一維數(shù)組的引用,聲明數(shù)組,僅僅表示在內(nèi)存中分配了一個(gè)連續(xù)的區(qū)域。在以后的操作中,一般是針對(duì)數(shù)組中的某個(gè)元素進(jìn)行的。 數(shù)組元素引用的形式: 數(shù)組名(下標(biāo)) 說明: 下標(biāo)不能超出數(shù)組聲明時(shí)的上、下界范圍,否則會(huì)出現(xiàn)“下標(biāo)越界”的出錯(cuò)信息。 下標(biāo)可以是常量、變量、表達(dá)式,甚至又是一個(gè)數(shù)組元素。 例如: a(10)、a(3+4)、a(i),7.2.2 一維數(shù)組的應(yīng)用,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 一維數(shù)組的賦值A(chǔ)rray函數(shù),賦值A(chǔ)rray函數(shù)的形式如下: 變量名=Array(常數(shù)列表) 功能: 將常量列表的各項(xiàng)值分別賦值給一個(gè)一維數(shù)組的各元素。 說明: 變量名必須聲明為Variant變體類型,并作為數(shù)組使用。 常數(shù)列表以逗號(hào)分隔,數(shù)組的下界和上界通過LBound和UBound函數(shù)獲得。 Array函數(shù):直接給一維數(shù)組賦值 UBound(數(shù)組名): 數(shù)組的上屆值 LBoubd(數(shù)組名) :數(shù)組的下屆值 例如:下列程序段對(duì)數(shù)組a賦值,并顯示出來。 Dim a, i% a=Array(1,2,3,34) For i=LBound(a) To UBound(a) Print a(i) Next i,演示7.2.1,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 一維數(shù)組的輸入,一般通過循環(huán)語句及InputBox函數(shù)、文本框給數(shù)組輸入數(shù)據(jù)。,例如 : For i=1 to 10 A(i)=1 Next i,演示7.2.2,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 一維數(shù)組的輸出,數(shù)組的輸出一般用Print方法、標(biāo)簽或文本框?qū)崿F(xiàn)。,例如: 編寫程序,把輸入的10個(gè)整數(shù)按逆序輸出。,Private Sub Command1_Click() Dim a(10)As Integer,i% Print “輸入的數(shù)據(jù)為“ For i = 1 To 10 a(i)= InputBox(“請(qǐng)輸入一個(gè)整型數(shù)“) Print a(i); Next i Print Print “逆序輸出為“ For i = 10 To 1 step -1 Print a(i); Next i End Sub,演示7.2.5,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,分析: 求元素和很方便,只要通過循環(huán)將每個(gè)元素進(jìn)行累加即可。 在若干個(gè)數(shù)中求最小值,一般先假設(shè)一個(gè)較大的數(shù)為最小值的初值,若無法估計(jì),則取第一數(shù)為最小值的初值;然后依次將每一個(gè)數(shù)與最小值比較,若該數(shù)小于最小值,將該數(shù)替換為最小值。 最小值數(shù)組元素與第一個(gè)數(shù)組元素交換,這就要求在求最小值元素時(shí)還得保留最小元素的下標(biāo),最后再交換。, 求一維數(shù)組的和、最小值、位置及交換數(shù)組元素,例題: 求一維數(shù)組中各元素之和,最小數(shù)組元素及位置,并將最小數(shù)組元素與元素中的第一個(gè)元素交換。,演示7.2.4,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,分析: 該問題可分三部分處理: 一 是輸入10個(gè)人的成績(jī); 二是求平均分; 三是把這10個(gè)分?jǐn)?shù)逐一和平均成績(jī)進(jìn)行比較,若高于平均成績(jī),則輸出。, 統(tǒng)計(jì)問題,例題: 從鍵盤上輸入10人的考試成績(jī),輸出高于平均成績(jī)的分?jǐn)?shù)。,演示7.2.6,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,排序的方法很多,如選擇法、冒泡法等。這里介紹最容易理解的“冒泡法”。 設(shè)10個(gè)數(shù)存放在A數(shù)組中,分別為:A(1)、A(2)、A(3)、A(4)、A(5)、A(6)、A(7)、A(8)、A(9)、A(10)。 第1輪:先將A(1)與A(2)比較,若A(1)A(2),則將A(1)、A(2)的值互換,否則,不作交換;這樣處理后,A(1)一定是A(1)、A(2)中的較小者。 再將A(1)分別與A(3)、A(10)比較,并且依次作出同樣的處理。最后,10個(gè)數(shù)中的最小者放入了A(1)中。, 排序問題,例題: 從鍵盤上輸入10個(gè)整數(shù),把這些數(shù)按由小到大的順序排序輸出。,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,第2輪:將A(2)分別與A(3)、A(10)比較,并依次作出同第1輪一樣的處理。最后,第1輪余下的9個(gè)數(shù)中的最小者放入A(2)中,亦即A(2)是10個(gè)數(shù)中的第二小的數(shù)。 照此方法,繼續(xù)進(jìn)行第3輪 直到第9輪后,余下的A(10)是10個(gè)數(shù)中的最大者。 至此,10個(gè)數(shù)已從小到大順序存放在A(1)A(10)中.,為簡(jiǎn)單起見,我們以7,5,3三個(gè)數(shù)為例,再做說明: 第1輪目標(biāo):找出最小值3作為第一個(gè)數(shù)組元素 7 5 3 比較7和5,75,需要交換,交換后的序列為5 7 3; 5 7 3 比較5和3,53,需要交換,交換后的序列為3 7 5; 第2輪:找出剩下的元素中的最小值5作為第二個(gè)數(shù)組元素 3 7 5 比較7和5,75,需要交換,交換后的序列為3 5 7。 剩下的一個(gè)元素7為三個(gè)元素中的最大者,排序完成。,演示7.2.7,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 插入數(shù)據(jù),例題: 已知一組數(shù)據(jù)按遞增次序排列,插入一個(gè)數(shù),使這組數(shù)仍舊有序。,基本思想: 首先要查找待插入數(shù)據(jù)在數(shù)組中的位置k; 然后從最后一個(gè)元素開始往前直到下標(biāo)為k的元素依次往后移動(dòng)一個(gè)位置; 第k個(gè)元素的位置空出,將數(shù)據(jù)插入。,演示7.2.10,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 刪除數(shù)據(jù),例題: 從鍵盤上輸入10個(gè)整數(shù),把這些數(shù)按由小到大的順序排序輸出。,基本思想: 首先要查找欲刪除數(shù)據(jù)在數(shù)組中的位置k; 然后從k+1到第n個(gè)位置各向前移動(dòng)一位; 最后將數(shù)組元素個(gè)數(shù)減1。,演示7.2.9,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,假如有30個(gè)學(xué)生,每個(gè)學(xué)生有5門考試成績(jī),如何來表示這些數(shù)據(jù)呢?VB中可以用有兩個(gè)下標(biāo)的數(shù)組來表示,如第i個(gè)學(xué)生第j門課的成績(jī)可以用S(i,j)表示。其中i表示學(xué)生號(hào),稱為行下標(biāo)(i1,2,30);j表示課程號(hào),稱為列下標(biāo)(j1,2,3,4,5)。有兩個(gè)下標(biāo)的數(shù)組稱為二維數(shù)組。,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,7.2.3 多維數(shù)組的聲明 Dim 數(shù)組名(下標(biāo)1,下標(biāo)2,)As 類型,說明: 下標(biāo)個(gè)數(shù):決定了數(shù)組的維數(shù)。 數(shù)組大小:每一維的大小為上界-下界+1;數(shù)組的大小為各維大小的乘積。,例如: Dim a(5) As Integer Dim b(-2 To 3,3) As Integer,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,二維數(shù)組的聲明,Dim 數(shù)組名(下標(biāo)1,下標(biāo)2)As 類型 例如:Dim T(2,3)As Integer 定義了一個(gè)二維數(shù)組,名字為T,類型為Integer,該數(shù)組有3行(02)4列(03),占據(jù)12(34)個(gè)整型變量的空間,如下圖所示。,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 二維數(shù)組的引用,二維數(shù)組的引用和一維數(shù)組基本相同。 格式為: 數(shù)組名(下標(biāo)1,下標(biāo)2) 例如:T(2,3)、Sa(4,5),7.2.4 二維數(shù)組的應(yīng)用,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 二維數(shù)組的輸入,一般通過循環(huán)語句及InputBox函數(shù)、文本框給數(shù)組輸入數(shù)據(jù)。,例如 Dim S(3,4) As Single For i=0 to 3 For j=0 to 4 S(i,j)=val(InputBox(“輸入”& i & “,” & j &“元素的值”) Next j Next i,演示7.2.8,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 二維數(shù)組的輸出,演示7.2.3,數(shù)組的輸出一般用Print方法、標(biāo)簽或文本框?qū)崿F(xiàn)。,例如: 形成5*5的方陣,在3個(gè)Picture框中分別輸出方陣中各元素、上三角和下三角元素。,分析: 從產(chǎn)生的5*5方陣中可以看出規(guī)律:第一行的元素為04,以后每行是前一行對(duì)應(yīng)元素增加5;在顯示個(gè)元素時(shí)為了滿足各元素的對(duì)齊,每個(gè)元素占5列,可以利用Tab函數(shù)定位。 要顯示上三角,規(guī)律是每一行的起始列與行號(hào)相同,這只要控制內(nèi)循環(huán)的初值就可以實(shí)現(xiàn)。 要顯示下三角,規(guī)律是每一行的列數(shù)與行號(hào)相同,這只要控制內(nèi)循環(huán)的終止就可以實(shí)現(xiàn)。,7.2 靜態(tài)數(shù)組聲明及應(yīng)用, 求最大元素所在行和列, 計(jì)算兩個(gè)矩陣相乘,演示7.2.11,演示7.2.12,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,例: 打印4名同學(xué)的英語、數(shù)學(xué)、法律3門課的考試成績(jī),并計(jì)算出每個(gè)同學(xué)的平均成績(jī)。 分析:把4名同學(xué)的姓名及各科的考試分?jǐn)?shù)分別存入一個(gè)一維字符串?dāng)?shù)組xm(4)和一個(gè)二維數(shù)值數(shù)組a(4,3)中,然后對(duì)數(shù)組(主要是二維數(shù)組)進(jìn)行處理。,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,Private Sub Command1_Click() Dim a(4,3)As Single,xm(4)As String * 10,i%,j%,aver! Print Tab(25);“成績(jī)表“ Print Print “姓名“;Tab(15);“英語“;Tab(25);“數(shù)學(xué)“; Print Tab(35);“法律“;Tab(45);“平均分“ Print,程序如下:,7.2 靜態(tài)數(shù)組聲明及應(yīng)用,For i = 1 To 4 aver = 0 xm(i)= val(InputB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年乳制品市場(chǎng)分析:關(guān)稅變化下的產(chǎn)業(yè)格局與消費(fèi)趨勢(shì)
- 混凝土擠壓墻施工方案
- 《論語●孟子》閱讀練習(xí)
- 黑龍江省大慶市讓胡路區(qū)大慶中學(xué)2024-2025學(xué)年高二上學(xué)期期末數(shù)學(xué)試題(解析版)
- 安徽省馬鞍山市當(dāng)涂第一中學(xué)2024-2025學(xué)年高一上學(xué)期期末質(zhì)量檢測(cè)數(shù)學(xué)試題 (解析版)
- 辦公室管理-形考任務(wù)五(第六章~第七章)-國(guó)開-參考資料
- 2025年真實(shí)情景測(cè)試題及答案
- 混凝土攔水帶施工方案
- 6年級(jí)上冊(cè)英語書課文第2單元
- 5-羥基-1-甲基吡唑的合成
- 2025遼寧大連融金征信服務(wù)選聘8人筆試參考題庫(kù)附帶答案詳解
- 財(cái)務(wù)類業(yè)務(wù)知識(shí)培訓(xùn)課件
- 2025年浙江機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)含答案
- 2024年鞍山市臺(tái)安農(nóng)業(yè)發(fā)展集團(tuán)有限公司招聘考試真題
- 糖尿病合并胃輕癱護(hù)理查房
- 2025年遼寧冶金職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案(易錯(cuò)題)
- 2025年協(xié)議離婚夫妻模板
- 福建省龍巖市2024-2025學(xué)年九年級(jí)上學(xué)期期末語文試題(解析版)
- 人教版(2024新版)七年級(jí)下冊(cè)生物3.2.1 水的利用與散失 教案
- 教學(xué)課件-無線傳感器網(wǎng)絡(luò)技術(shù)及應(yīng)用(熊茂華)
- 2025-2030年中國(guó)高爾夫產(chǎn)業(yè)規(guī)模分析及投資前景規(guī)劃研究報(bào)告
評(píng)論
0/150
提交評(píng)論