版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章數(shù)組和自定義類型
5.1數(shù)組的概念5.2數(shù)組的基本操作和排序5.3列表框和組合框控件5.4自定義類型及其數(shù)組5.5綜合應(yīng)用本章目錄1安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.1數(shù)組的概念1.引例例5.1
求100個(gè)學(xué)生的平均成績(jī),并統(tǒng)計(jì)高于平均分的人數(shù)。用簡(jiǎn)單變量和循環(huán),求平均成績(jī)程序段如下:
aver=0Fori=1To100mark=InputBox("輸入學(xué)生成績(jī)")aver=aver+markNextiaver=aver/100由于循環(huán)體內(nèi)變量mark只能放一個(gè)學(xué)生的成績(jī),無(wú)法統(tǒng)計(jì)高于平均分的人數(shù)。若用簡(jiǎn)單變量保存100個(gè)學(xué)生的成績(jī),則需定義100個(gè)變量和使用100句輸入語(yǔ)句。由此引入了數(shù)組。本章目錄2安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院用數(shù)組解決問(wèn)題的程序如下:
Dimmark(99)AsInteger'聲明數(shù)組markDimaver!,overn%,i%aver=0Fori=0To99'輸入成績(jī),求分?jǐn)?shù)和
mark(i)=InputBox("輸入學(xué)生的成績(jī)")aver=aver+mark(i)Nextiaver=aver/100'求100人的平均分
overn=0Fori=0To99'統(tǒng)計(jì)高于平均分的人數(shù)
Ifmark(i)>averThenovern=overn+1Nexti
MsgBox("平均分:"&aver&"高于平均分人數(shù):"&overn)
本章目錄3安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院數(shù)組不是一種數(shù)據(jù)類型,而是一組相同類型的變量的集合。程序中使用數(shù)組的最大好處是用一個(gè)數(shù)組名代表邏輯上相關(guān)的一批數(shù)據(jù),用下標(biāo)表示該數(shù)組中的各個(gè)元素,和循環(huán)語(yǔ)句結(jié)合使用,使得程序書(shū)寫(xiě)簡(jiǎn)潔。數(shù)組必須先聲明后使用本章目錄4安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院數(shù)組不是一種數(shù)據(jù)類型,而是一組相同類型的變量的集合。程序中使用數(shù)組的最大好處是用一個(gè)數(shù)組名代表邏輯上相關(guān)的一批數(shù)據(jù),用下標(biāo)表示該數(shù)組中的各個(gè)元素,和循環(huán)語(yǔ)句結(jié)合使用,使得程序書(shū)寫(xiě)簡(jiǎn)潔。數(shù)組必須先聲明后使用使用Dim語(yǔ)句聲明數(shù)組名、類型、維數(shù)、數(shù)組大小聲明時(shí)下標(biāo)的個(gè)數(shù)確定數(shù)組的維數(shù),數(shù)組聲明后在內(nèi)存可分配一塊連續(xù)的區(qū)域。本章目錄5安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.1.2數(shù)組聲明及初始化一維數(shù)組
Dim數(shù)組名(下標(biāo)上界)
[As類型]下標(biāo)上界為常數(shù)、已有值的表達(dá)式或變量。下標(biāo)下界為0。一維數(shù)組的大小為:下標(biāo)上界+1。本章目錄6安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院Dimmark(99)AsInteger
聲明了一維定長(zhǎng)整型數(shù)組mark,共有100個(gè)元素,下標(biāo)范圍為0To99;mark數(shù)組的各元素是mark(0),mark(1),…,mark(99);mark(i)表示由下標(biāo)i的值決定是哪一個(gè)元素。mark數(shù)組內(nèi)存分配如下:mark(99)mark(98)…mark(2)mark(1)mark(0)每個(gè)數(shù)組元素有一個(gè)唯一的順序號(hào),下標(biāo)不能超出數(shù)組聲明時(shí)的上、下界范圍,否則會(huì)產(chǎn)生“索引超出了數(shù)組界限”錯(cuò)誤
。數(shù)組元素的使用規(guī)則與同類型的簡(jiǎn)單變量相同本章目錄7安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院多維數(shù)組聲明
Dim數(shù)組名(下標(biāo)1,下標(biāo)2…)
[As類型]下標(biāo)數(shù)決定了數(shù)組的維數(shù),每一維的大小=上界+1;數(shù)組的大小為每一維大小的乘積。例Dimx(2,4)AsLong聲明了一個(gè)長(zhǎng)整型的二維數(shù)組
x;共占據(jù)3×5個(gè)長(zhǎng)整型變量的空間
x(1,4)x(1,3)x(1,2)x(1,1)x(1,0)x(2,4)x(2,3)x(2,2)x(2,1)x(2,0)x(0,4)x(0,3)x(0,2)x(0,1)x(0,0)本章目錄8安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.1.3動(dòng)態(tài)數(shù)組及聲明
建立動(dòng)態(tài)數(shù)組要分兩步:用Dim語(yǔ)句聲明數(shù)組,但不能指定數(shù)組大小Dim
數(shù)組名()As數(shù)據(jù)類型用ReDim語(yǔ)句動(dòng)態(tài)地分配元素個(gè)數(shù)ReDim
數(shù)組名
(下標(biāo)[,下標(biāo)2…])例:Dims()AsSingleSubForm_Load()
…
ReDims(4,8)
…
EndSub
本章目錄9安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院定義動(dòng)態(tài)數(shù)組大小注意:
Dim
是說(shuō)明語(yǔ)句,可出現(xiàn)在程序的任何地方,而ReDim
是執(zhí)行語(yǔ)句,只能在過(guò)程中在過(guò)程中可多次使用ReDim語(yǔ)句來(lái)改變數(shù)組的大小,但不能改變維數(shù)和類型可在ReDim
后加Preserve參數(shù)用來(lái)保留數(shù)組中的數(shù)據(jù),若使用Preserve參數(shù)后,只能改變最后一維的大小。例5.2編一個(gè)程序,顯示有n個(gè)數(shù)的非波那契數(shù)序列本章目錄10安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.2數(shù)組的基本操作數(shù)組的輸入
通過(guò)TextBox控件或InputBox函數(shù)輸入Dims(3,4)ASIntegerFori=0To3Forj=0To4
s(I,j)=
InputBox("輸入"&i&“,"&j&"元素")NextjNexti本章目錄11安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院數(shù)組的輸出例5.3
形成5×5的方陣,分別輸出方陣中各元素、上三角和下三角元素
本章目錄方陣規(guī)律:第一行的元素為0~4,以后每一行是前一行對(duì)應(yīng)元素增加5上三角規(guī)律:每一行的起始列與行號(hào)相同,只要控制內(nèi)循環(huán)的初值
用Tab函數(shù)或Space定位控制輸出的空格,12安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院求數(shù)組和、最值、位置例5.4
求一維數(shù)組中各元素之和、最小數(shù)組元素,并將最小值數(shù)組元素與數(shù)組中第一個(gè)元素交換求元素和通過(guò)循環(huán)將每個(gè)元素進(jìn)行累加求數(shù)組中最小元素假設(shè)第一個(gè)元素為最小,然后將該數(shù)與其他元素逐一比較,若發(fā)現(xiàn)小于最小值,就用新值替換最小值,同時(shí)記錄下標(biāo)值。求最大值的方法與求最小值相似本章目錄13安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院交換元素下標(biāo)0123456789初值26436187331937597669下標(biāo)0123456789初值19436187332637597669本章目錄14安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院數(shù)組排序排序是將一組數(shù)按遞增或遞減的次序排列,例如按學(xué)生的成績(jī)、球賽積分等排序。排序的算法有許多,常用的有選擇法、冒泡法、插入法、合并排序等。
選擇法排序基本思想:每次在若干個(gè)無(wú)序數(shù)中找最小(大)數(shù),并放在相應(yīng)的位置。本章目錄15安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院數(shù)組排序n個(gè)數(shù)的序列,用選擇法按遞增次序排序的步驟:1)從n個(gè)數(shù)中找出最小數(shù)的下標(biāo),出了內(nèi)循環(huán),最小數(shù)與第1個(gè)數(shù)交換位置;通過(guò)這一輪排序,第1個(gè)數(shù)已確定好。2)除已排序的數(shù)外,其余數(shù)再按步驟1)的方法選出最小的數(shù),與未排序數(shù)中的第1個(gè)數(shù)交換位置。3)重復(fù)步驟2),最后構(gòu)成遞增序列。選擇法演示本章目錄16安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院選擇法排序例5.5
對(duì)已知存放在數(shù)組中的6個(gè)數(shù),用選擇法按遞增順序排序。
原始數(shù)據(jù)869327a(1)a(2)a(3)a(4)a(5)a(6)第1輪比較269387
a(2)a(3)a(4)a(5)a(6)第2輪比較239687
a(3)a(4)a(5)a(6)第3輪比較236
987
a(4)a(5)a(6)第4輪比較236789
a(5)a(6)第5輪比較236789選擇法排序過(guò)程示意
本章目錄17安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院冒泡法排序基本思想是:從第一個(gè)元素開(kāi)始,對(duì)數(shù)組中兩兩相鄰的元素比較,將值較小的元素放在前面,值較大的元素放在后面,一輪比較比較完畢,一個(gè)最大的數(shù)沉底成為數(shù)組中的最后一個(gè)元素,一些較小的數(shù)如同氣泡一樣上浮一個(gè)位置。n個(gè)數(shù),經(jīng)過(guò)n-1輪比較后完成排序。冒泡法演示本章目錄18安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院冒泡法排序
原始數(shù)據(jù)869327a(1)a(2)a(3)a(4)a(5)a(6)第1輪比較683279a(1)a(2)a(3)a(4)a(5)
第2輪比較632789a(1)a(2)a(3)a(4)
第3輪比較326789a(1)a(2)a(3)
第4輪比較236789a(1)a(2)
第5輪比較236789例5.6用冒泡排序法實(shí)現(xiàn)例5.5的問(wèn)題。本章目錄19安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院插入數(shù)據(jù)
插入數(shù)據(jù)基本思想是:1)首先查找待插入數(shù)據(jù)在數(shù)組中的位置k;2)然后從最后一個(gè)元素開(kāi)始往前直到下標(biāo)為k的元素依次往后移動(dòng)一個(gè)位置;3)第k個(gè)元素的位置騰出,將數(shù)據(jù)插入。例5.7在有序數(shù)組a中插入數(shù)值x。
本章目錄數(shù)據(jù)插入演示20安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院刪除數(shù)據(jù)刪除操作首先也是要找到欲刪除的元素的位置k;然后從k+1到n個(gè)位置開(kāi)始向前移動(dòng);最后將數(shù)組元素減1。
例5.8要將值為13的元素刪除。
本章目錄數(shù)據(jù)刪除演示21安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.3列表框和組合框列表框可顯示多個(gè)選項(xiàng)供用戶選擇,不能直接修改其中的內(nèi)容。組合框組合了文本框和列表框的特性而形成的一種控件。組合框有3種式樣。本章目錄22安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院列表框和組合框重要屬性(1)
ListList是一個(gè)集合(2)ListIndex
選項(xiàng)的序號(hào)(從0開(kāi)始)(3)ListCount項(xiàng)目數(shù)量
(4)Sorted排序(5)Text被選定的文本內(nèi)容
本章目錄23安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院List1.ListIndex=2List1.ListCount=6List1.Sorted=FalseList1.Text為
"C/C++程序設(shè)計(jì)"
List1.List(List1.ListIndex)等于List1.Text本章目錄24安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院常用方法
AddItem方法把一個(gè)項(xiàng)目加入列表對(duì)象.AddItem
項(xiàng)目字符串[,索引值]索引值:決定新增項(xiàng)在列表中的位置,如果省略,則新增項(xiàng)目添加在最后。
RemoveItem方法刪除列表中指定項(xiàng)目對(duì)象.RemoveItem
索引值
Clear
清除列表中所有項(xiàng)目例如:List1.Clear 全部清除本章目錄25安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院重要事件列表框:Click、DblClick組合框:Click例5.9編寫(xiě)一個(gè)能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除的應(yīng)用程序。修改列表框,先選定項(xiàng)將選項(xiàng)顯示在文本框中,更改文本框中內(nèi)容后,再更新列表框
本章目錄26安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院應(yīng)用例5.10編寫(xiě)一個(gè)使用屏幕字體、字號(hào)的程序
例5.11使用列表框?qū)崿F(xiàn)排序、查找、刪除例5.12使用組合框?qū)κ『椭陛犑忻Q管理本章目錄27安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.4自定義類型及數(shù)組數(shù)組存放性質(zhì)相同的數(shù)據(jù)集合。若不同類型信息作為一個(gè)整體來(lái)描述,例如姓名、性別、出生年月等,通過(guò)Type語(yǔ)句來(lái)實(shí)現(xiàn)。
Type自定義類型名
元素名1As數(shù)據(jù)類型名
…
元素名nAs數(shù)據(jù)類型名
EndType本章目錄28安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院例如,定義一個(gè)有關(guān)學(xué)生信息的類型:TypeStudType
'StudType為自定義類型名
NameAs
String*5
'姓名
SexAs
String*1
'性別
TelephoneAs
Long
'電話
SchoolAs
String*10
'學(xué)校EndType自定義類型不能在過(guò)程內(nèi)定義,一般放在標(biāo)準(zhǔn)模塊文件,默認(rèn)為Public;若在窗體模塊的通用聲明段定義,必須加Private。
本章目錄29安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.4.2自定義類型變量的使用
定義了自定義類型,就可在變量的聲明時(shí)使用。Dim變量名As
自定義類型名例如,如下語(yǔ)句:
DimS1AsStudType,S2AsStudType
聲明S1、S2為兩個(gè)同種類型的變量本章目錄30安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院注意:不要混淆StudType
和S1,前者如同Integer等的類型名,后者根據(jù)該類型分配所需的內(nèi)存空間,存儲(chǔ)各成員數(shù)據(jù)。(2)類型變量和數(shù)組相同之處它們都是由若干個(gè)成員組成;不同之處,前者的成員代表不同性質(zhì)、不同類型的數(shù)據(jù),以各個(gè)不同的成員名表示;而數(shù)組一般存放的是同種性質(zhì)、同種類型的數(shù)據(jù),以下標(biāo)表示不同的元素。本章目錄31安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院自定義類型變量成員的引用
引用自定義類型變量中的某個(gè)成員,形式如下:
自定義類型變量名.成員名例如,S1.NameS1變量中的姓名
S1.Sex性別可利用With語(yǔ)句簡(jiǎn)化成員引用:With結(jié)構(gòu)變量對(duì)象名語(yǔ)句塊EndWithWithS1.Name="張華".Sex="男".School="同濟(jì)大學(xué)"EndWith本章目錄32安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院5.4.3自定義類型數(shù)組及應(yīng)用自定義類型數(shù)組就是數(shù)組中的每個(gè)元素是自定義類型
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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年度個(gè)人借款合同范本:合法借條編制與支付方式
- 2025年度農(nóng)業(yè)科技股權(quán)置換合同范本(修訂版)
- 2025年數(shù)字媒體廣告工程安裝與維護(hù)合同范本
- 2025年度影視制作合同變更補(bǔ)充協(xié)議
- 二零二五年度車(chē)輛抵押反擔(dān)保法律咨詢合同4篇
- 2025年度金融科技創(chuàng)新合作研究合同
- 二零二五年度廚具節(jié)能認(rèn)證與安裝服務(wù)合同范本3篇
- 2025年度供應(yīng)鏈金融解決方案與風(fēng)險(xiǎn)管理合同
- 2025年度廣告發(fā)布效果評(píng)估合同
- 2025年度插畫(huà)師兒童教育聘用合同兒童圖書(shū)出版社
- 城市基礎(chǔ)設(shè)施修繕工程的重點(diǎn)與應(yīng)對(duì)措施
- GB 12710-2024焦化安全規(guī)范
- 【??途W(wǎng)】2024秋季校園招聘白皮書(shū)
- 腫瘤中醫(yī)治療及調(diào)養(yǎng)
- 術(shù)后肺炎預(yù)防和控制專家共識(shí)解讀課件
- 中石化高級(jí)職稱英語(yǔ)考試
- 小學(xué)五年級(jí)英語(yǔ)閱讀理解(帶答案)
- 六年級(jí)上冊(cè)分?jǐn)?shù)乘除混合運(yùn)算400題及答案
- 醫(yī)療器械經(jīng)營(yíng)規(guī)范培訓(xùn)
- 行政處罰-行政處罰種類和設(shè)定(行政法課件)
- 柔性機(jī)械臂的振動(dòng)控制
評(píng)論
0/150
提交評(píng)論