資源描述:
《《數(shù)組4學(xué)時(shí)》ppt課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第五章數(shù)組(4學(xué)時(shí))5.1數(shù)組的概念5.2靜態(tài)數(shù)組及聲明5.3動(dòng)態(tài)數(shù)組及聲明5.4數(shù)組的基本操作5.5控件數(shù)組5.6自定義數(shù)據(jù)類型5.7常用算法(二)5.8常見(jiàn)錯(cuò)誤一、數(shù)組的概念1.引例例5.1若我們要求一個(gè)班100個(gè)學(xué)生的平均成績(jī),然后統(tǒng)計(jì)高于平均分的人數(shù)。按以前簡(jiǎn)單變量的使用和循環(huán)結(jié)構(gòu)相結(jié)合,求平均成績(jī)程序段如下:aver=0Fori=1To100mark=InputBox("輸入"+i+"位學(xué)生的成績(jī)")aver=aver+markNextiaver=aver/100但若要統(tǒng)計(jì)高于平均分的人數(shù),則無(wú)法實(shí)現(xiàn)。mark是一個(gè)簡(jiǎn)單變量,存放的是最后一個(gè)學(xué)生
2、的成績(jī)。已有知識(shí)解決方法:再重復(fù)輸入成績(jī),帶來(lái)兩個(gè)問(wèn)題:(1)輸入數(shù)據(jù)的工作量成倍增加;(2)若本次輸入的成績(jī)與上次不同,則統(tǒng)計(jì)的結(jié)果不正確。解決此問(wèn)題的根本方法,引入數(shù)組,始終保持輸入的數(shù)據(jù),一次輸入,多次使用。二、數(shù)組的聲明數(shù)組并不是一種數(shù)據(jù)類型,而是一組相同類型的變量的集合。數(shù)組必須先聲明后使用。兩類數(shù)組:靜態(tài)(定長(zhǎng))數(shù)組、動(dòng)態(tài)(可變長(zhǎng))數(shù)組1.靜態(tài)數(shù)組及聲明形式:Dim數(shù)組名(下標(biāo)1[,下標(biāo)2…])[As類型]聲明了數(shù)組的名、維數(shù)、大小、類型維數(shù):幾個(gè)下標(biāo)為幾維數(shù)組,最多60維。下標(biāo):[下界To]上界省略下界為0,必須為常數(shù)。每一維大小:上界-下界
3、+1數(shù)組大小:每一維大小的乘積例:Dimmark(1to100)AsIntegerDimlArray(0To3,0To4)AsLong共有4×5個(gè)元素等價(jià)于:DimlArray(3,4)AsLong注意:(1)下界缺省為0,也可在重新定義數(shù)組的下界。例如:OptionBase1(2)錯(cuò)誤的聲明,下標(biāo)是變量n=Inputbox(“輸入n”)Dimx(n)AsSingle(3)在數(shù)組聲明中的下標(biāo)說(shuō)明了數(shù)組的整體,即每一維的大??;而在程序其他地方出現(xiàn)的下標(biāo)表示數(shù)組中的一個(gè)元素。兩者寫法形式相同,但意義不同。例如:Dimx(10)AsInteger'聲明了x數(shù)組有
4、11個(gè)元素x(10)=100'對(duì)x(10)這個(gè)數(shù)組元素賦值三、動(dòng)態(tài)數(shù)組及聲明動(dòng)態(tài)數(shù)組指在聲明數(shù)組時(shí)未給出數(shù)組的大小(省略括號(hào)中的下標(biāo)),當(dāng)要使用它時(shí)隨時(shí)用ReDim語(yǔ)句重新指出數(shù)組大小。形式如下:ReDim數(shù)組名(下標(biāo)[,下標(biāo)2…])[As類型]例:SubForm_Load()DimsArray()AsSingle…ReDimsArray(4,8)…EndSub說(shuō)明:(1)Dim、Private、Public變量聲明語(yǔ)句是說(shuō)明性語(yǔ)句,可出現(xiàn)在過(guò)程內(nèi)或通用聲明段ReDim語(yǔ)句是執(zhí)行語(yǔ)句,只能出現(xiàn)在過(guò)程內(nèi)。(2)在過(guò)程中可多次使用ReDim來(lái)改變數(shù)組的大小,也
5、可改變數(shù)組的維數(shù).(3)每次使用ReDim語(yǔ)句都會(huì)使原來(lái)數(shù)組中的值丟失,可以在ReDim語(yǔ)句后加Preserve參數(shù)用來(lái)保留數(shù)組中的數(shù)據(jù),但使用Preserve只能改變最后一維的大小,前面幾維大小不能改變。例5.2,求若干個(gè)學(xué)生的平均分。(4)ReDim中的下標(biāo)可以是常量,也可以是有了確定值的變量。四、數(shù)組的基本操作1.數(shù)組元素的賦初值(1)用循環(huán)Fori=1To10iA(i)=0Nexti(2)Array函數(shù)DimibAsVariantib=Array("abc","def","67")Fori=0ToUBound(ib)Picture1.Printib
6、(i);"";Nexti注意:(1)利用Array對(duì)數(shù)組各元素賦值,聲明的數(shù)組是可調(diào)數(shù)組或連圓括號(hào)都可省,并且其類型只能是Variant。(2)數(shù)組的下階為零,上界由Array函數(shù)括號(hào)內(nèi)的參數(shù)個(gè)數(shù)可決定,也可通過(guò)函數(shù)Ubound獲得。2.?dāng)?shù)組的賦值在VB6.0中,提供了數(shù)組直接對(duì)數(shù)組的賦值。例如:Dima()AsVariant,b()AsVariant,i%a=Array(1,2,3,4,5)ReDimb(UBound(a))b=a3.數(shù)組的輸出輸出方陣sC中的下三角元素Fori=0To4Forj=0Toisc(i,j)=i*5+jPrintsc(i,j)
7、;"";NextjPrint'換行NextIFori=0ToUBound(a)b(i)=a(i)Nexti注意:賦值號(hào)左邊的數(shù)組只能聲明為Variant的可調(diào)數(shù)組或簡(jiǎn)單變量。4.求數(shù)組中最大元素及所在下標(biāo)DimMaxAsInteger,iMaxAsIntegerMax=iA(1):iMax=1Fori=2To10IfiA(i)>MaxThenMax=iA(i)iMax=iEndIfNextI5.將數(shù)組中各元素交換Fori=1To102t=iA(i)iA(i)=iA(10-i+1)iA(10-i+1)=tNextI五.控件數(shù)組一組相同類型的控件組成。它們共
8、用一個(gè)控件名,具有相同的屬性,建立時(shí)系統(tǒng)給每個(gè)元素賦一個(gè)唯一的索引