版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Q:如何定義1個(gè)學(xué)生的VB成績(jī)?Q:如何定義1個(gè)學(xué)生的6門課成績(jī)?Q:如何定義1個(gè)學(xué)生4學(xué)期5門課的成績(jī)?可不可以一次定義多個(gè)變量?引例數(shù)組概念的引出在科學(xué)計(jì)算和數(shù)據(jù)處理中,經(jīng)常要用到成批數(shù)據(jù),這些數(shù)據(jù)類型相同,且彼此間存在一定的順序關(guān)系。為處理方便,可考慮用數(shù)組進(jìn)行存儲(chǔ)。數(shù)組是一組相同類型的有序變量的集合。在程序中使用數(shù)組時(shí),用一個(gè)數(shù)組名代表邏輯上相關(guān)的一批數(shù)據(jù),用下標(biāo)區(qū)分該數(shù)組中的各個(gè)元素。一維數(shù)組A(0)A(1)A(2)A(3)A(4)A(5)數(shù)列(一個(gè)學(xué)生的6門課成績(jī))859083788977學(xué)期第一學(xué)期第二學(xué)期第三學(xué)期第四學(xué)期數(shù)學(xué)物理化學(xué)生物外語8565907080778089807890969275838078818681二維表(一個(gè)學(xué)生4學(xué)期5門課成績(jī))二維數(shù)組A(1,1)A(1,2)A(1,3)A(1,4)A(1,5)A(2,1)A(2,2)A(2,3)A(2,4)A(2,5)A(3,1)A(3,2)A(3,3)A(3,4)A(3,5)A(4,1)A(4,2)A(4,3)A(4,4)A(4,5)6.1數(shù)組的基本概念1、數(shù)組:是同類型變量的一個(gè)有序的集合。數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),它用1個(gè)統(tǒng)一的名字(數(shù)組名)代表邏輯上相關(guān)的一批數(shù)據(jù),每個(gè)元素用下標(biāo)變量來區(qū)分;下標(biāo)代表元素在數(shù)組中的位置。比如:學(xué)26樓401里面6個(gè)人,定義這六個(gè)人的年齡序列。
dimnl(5)asinteger
數(shù)組名注:數(shù)組名的命名規(guī)則和普通變量一樣。2、數(shù)組元素:即數(shù)組中的每一個(gè)成員。用下標(biāo)唯一識(shí)別數(shù)組元素。
表示方法:數(shù)組名(P1,P2,……)其中P1、P2表示數(shù)組元素的“下標(biāo)”,默認(rèn)情況下,下標(biāo)從0開始。即數(shù)組元素名由數(shù)組名、下標(biāo)和圓括號(hào)共同組成。例:
dimnl(5)asintegernl(0):宿舍老大的年齡
nl(1):宿舍老二的年齡
……n(5):宿舍老幺的年齡
特別注意:下標(biāo)可以是常量、變量或算術(shù)表達(dá)式。當(dāng)下標(biāo)的值為非整數(shù)時(shí),會(huì)按cint函數(shù)的方式將其轉(zhuǎn)換為整數(shù)處理。例:A(5),A(6.6),A(6.5)A(7)A(6)3、數(shù)組維數(shù):由數(shù)組元素中下標(biāo)的個(gè)數(shù)決定:1個(gè)下標(biāo)表示一維數(shù)組,2個(gè)下標(biāo)表示二維數(shù)組。
VB中有一維數(shù)組、二維數(shù)組、……最多60維數(shù)組。
例:
A(1),A(10)
一維數(shù)組
X(1,1),X(2,10)
二維數(shù)組
Y(0,0,0),Y(1,2,5)
三維數(shù)組6.1.2數(shù)組的定義(重點(diǎn))
數(shù)組必須先定義后使用。定義數(shù)組就是確定名稱、數(shù)組元素的數(shù)據(jù)類型、數(shù)組的維數(shù)和每一維的上、下界。定義數(shù)組的本質(zhì)是通知系統(tǒng)在內(nèi)存中分配一個(gè)連續(xù)的區(qū)域,用來存儲(chǔ)數(shù)組元素。1、固定大小數(shù)組的定義格式:Public|Private|Dim|Static數(shù)組名([下界1To]
上界1
[,[下界2To]上界2]…)[As數(shù)據(jù)類型關(guān)鍵字]
注意:下界和關(guān)鍵字to可以缺省。如果在程序中沒有特別聲明,缺省下界和關(guān)鍵字時(shí),則表示下標(biāo)的取值是從0開始的。例1:Dim
A(6)AsInteger
等同于
DimA(0to6)asinteger
表示定義了一個(gè)數(shù)組,名稱是A、數(shù)組元素的數(shù)據(jù)類型為整型、一維數(shù)組,共7個(gè)元素。分別是:
A(0),A(1),A(2),A(3),A(4),
A(5),A(6)。
例2:Dim
B(5)AsString*3
數(shù)組名B
、字符串型、一維數(shù)組、有6個(gè)元素,下標(biāo)的范圍是0~5,每個(gè)元素最多存放3個(gè)字符。例3:
Dim
C(2,1To2)As
Long
聲明了數(shù)組名是C、長(zhǎng)整型的二維數(shù)組,第一維下標(biāo)范圍為0~2,第二維下標(biāo)的范圍是1~2,共6個(gè)數(shù)組元素,分別是:
C(0,1),C(0,2),C(1,1),
C(1,2),C(2,1),C(2,2)。1、數(shù)組的維下界默認(rèn)從0開始。
可以使用OptionBase語句設(shè)定數(shù)組的維默認(rèn)下界的初始值,optionbase0或者optionbase1,在窗體的通用部分使用該語句。例:數(shù)組定義注意事項(xiàng)
下標(biāo)越界Optionbase1PrivateSubForm_Click()Dimscore(4)asinteger,B(3,3)asintegerscore(1)=1B(1,3)=10Printscore(1),B(1,3)EndSubPrintscore(0),B(0,3)2、數(shù)組的大?。杭磾?shù)組元素的個(gè)數(shù)。每一維的大小=上界-下界+1;數(shù)組的大小=每一維大小的乘積。課堂練習(xí)2:在VB中,設(shè)有聲明語句
OptionBase0DimB(-1to10,2to9,20)asinteger則數(shù)組B中全部元素的個(gè)數(shù)是()A、2016B、2310C、1800D、1848A缺省維下界為03、在dimA(6)asinteger中,A(6)
是數(shù)組說明符,而該數(shù)組的第7個(gè)元素的名字也是A(6)
,雖然書寫形式一樣,但含義不同,不要混淆,出現(xiàn)在數(shù)組定義語句中的A(6)是數(shù)組說明符,而出現(xiàn)在程序的其他地方的A(6)則是A數(shù)組中下標(biāo)為6的數(shù)組元素的名字。PrivateSubForm_Click()Dimnl(5)AsIntegernl(1)=21nl(2)=21nl(3)=21nl(4)=21
nl(5)=20Printn1(5)Endsub4、數(shù)組的上、下界某維的下界和上界分別表示該維的最小和最大的下標(biāo)值。維界的取值范圍不得超過長(zhǎng)整型的數(shù)據(jù)范圍,且下界小于等于上界,否則將產(chǎn)生錯(cuò)誤。例:dima(6to0)×
特別注意:在定義固定大小數(shù)組時(shí),維的上、下界必須是常數(shù)表達(dá)式(含常數(shù)、符號(hào)常量、數(shù)字字符串),不可以是變量名。而且在數(shù)組定義語句中若用符號(hào)常數(shù)說明數(shù)組的維界,那么該符號(hào)常數(shù)在這個(gè)說明語句之前必須被定義過。
課堂練習(xí):判斷下列數(shù)組定義語句是否正確dimmasintegerconstnasinteger=5dima(n)asintegerdimb(1to6.5)asintegerdimc(1to2*3)asintegerdimd(0tom)asinteger
×定義時(shí)下標(biāo)不能使用變量√等同于:dimb(1to6)asinteger√使用符號(hào)常量表達(dá)維界。等同于:dima(5)asinteger√等同于:dimb(1to6)asinteger
除了數(shù)組定義語句外,在其他地方出現(xiàn)的數(shù)組元素的下標(biāo)可以是變量。DimA(0To6)AsIntegerb=3A(b)=100PrintA(b)5、數(shù)組的數(shù)據(jù)類型數(shù)組的數(shù)據(jù)類型就是數(shù)組元素的數(shù)據(jù)類型。在As子句中給出,可以是Integer,long,single,double,date,boolean,string,string*length,object,currency,Variant和自定義類型。
6、數(shù)組的初值問題對(duì)于數(shù)值型數(shù)組,在定義后將各元素初始化初值為0;對(duì)于不定長(zhǎng)字符型數(shù)組,在定義后將各元素初始化為空字符;對(duì)于定長(zhǎng)字符型數(shù)組,在定義后將各元素初始化為指定個(gè)數(shù)的空格,邏輯型的初始值為false。7、用static關(guān)鍵字定義的固定大小數(shù)組叫靜態(tài)數(shù)組。
它的特點(diǎn)是:在調(diào)用過程時(shí),它的各個(gè)元素會(huì)繼承上次退出該過程時(shí)元素的取值。
Statica(3)asinteger例簡(jiǎn)單變量在內(nèi)存中是獨(dú)立存放的,彼此間沒有聯(lián)系。而數(shù)組元素在內(nèi)存中是連續(xù)存放的。...A1...A0A5...A3...A2...A4...普通變量:獨(dú)立存放數(shù)組元素變量:連續(xù)存放(帶下標(biāo)的變量)A(1)A(2)A(3)A(4)A(5)A(6)6.1.3數(shù)組的結(jié)構(gòu)一維數(shù)組的存儲(chǔ)方式按下標(biāo)由小到大的線性順序存放在一串連續(xù)的內(nèi)存單元中。Dimx(5)asIntegerX(0)X(1)X(2)X(3)X(4)X(5)在內(nèi)存中的存儲(chǔ)結(jié)構(gòu)A(0,0)A(1,0)A(0,1)A(1,1)A(0,2)A(1,2)二維數(shù)組的存儲(chǔ)方式二維數(shù)組的數(shù)組元素是“按列”的順序存放的。DimA(1,2)asSingleDimA(2,1)asSingleA(0,0)A(1,0)A(2,0)A(0,1)A(1,1)A(2,1)第1列第2列第3列第1列第2列6.1.4數(shù)組函數(shù)及數(shù)組語句(重點(diǎn))兩個(gè)函數(shù)和兩個(gè)語句LboundUboundEraseForeach---next6.1.4數(shù)組函數(shù)及數(shù)組語句Lbound函數(shù)求數(shù)組指定維數(shù)的下界;Ubound函數(shù)求數(shù)組指定維數(shù)的上界;語法格式:
Lbound(數(shù)組名
[,維])Ubound(數(shù)組名
[,維])若省略第2個(gè)參數(shù),則代表求第一維的上下界。比如Dima(5)asinteger,b(3to8,200to208)printlbound(a),lbound(b,1),lbound(b,2)printubound(a),ubound(b,1),ubound(b,2)
結(jié)果為:
0320058208思考下列代碼的輸出結(jié)果?Dima(5,5)asinteger,jsasintegerFori=1toubound(a,1)forj=1toubound(a,2)a(i,j)=i+jtext1.text=text1.text&str(a(i,j))js=js+1ifjsmod5=0thentext1.text=text1.text&vbcrlfendifnextjNextiErase語句功能:初始化固定大小數(shù)組或收回動(dòng)態(tài)數(shù)組的空間。語句格式:Erase數(shù)組名[,數(shù)組名]……說明:1)Erase語句初始化固定大小的數(shù)組
數(shù)值數(shù)組將每個(gè)元素設(shè)為0。變長(zhǎng)字符串?dāng)?shù)組將每個(gè)元素設(shè)為空字符串。定長(zhǎng)字符串?dāng)?shù)組將每個(gè)元素設(shè)為指定長(zhǎng)度的空格。布爾型數(shù)組將每個(gè)元素設(shè)為FALSE。例10.課本p89PrivateSubForm_Click() Dima(3)AsInteger,b()AsInteger a(1)=1:a(2)=2:a(3)=3
ReDimb(4)
Printa(1),a(2),a(3)
Erasea,b Printa(1),a(2),a(3)EndSub123000思考:下列代碼的執(zhí)行結(jié)果PrivateSubForm_Click()Diminta(2)AsString*2inta(0)=“aa”inta(1)=“bb”EraseintaPrintLen(inta(0))EndSub22)對(duì)于動(dòng)態(tài)數(shù)組:Erase語句將刪除整個(gè)動(dòng)態(tài)數(shù)組結(jié)構(gòu)并釋放該數(shù)組所占用的內(nèi)存,即動(dòng)態(tài)數(shù)組經(jīng)Erase操作后即不再存在。下次引用該動(dòng)態(tài)數(shù)組之前,程序必須使用ReDim語句來重新定義該數(shù)組變量的維數(shù)。
思考下列代碼的執(zhí)行結(jié)果PrivateSubForm_Click()Dima()AsIntegerReDima(3)a(1)=1Printa(1)EraseaPrinta(1)EndSub下標(biāo)越界Redima(2)ForEach……Next語句語句格式:為數(shù)組中的每個(gè)元素重復(fù)執(zhí)行一組語句。ForEach成員In數(shù)組循環(huán)體
[ExitFor]……Next[成員]說明:(1)格式中的“成員”是一個(gè)Variant型變量.“數(shù)組”是一個(gè)數(shù)組名,沒有括號(hào)和上下界。(2)ForEach……Next語句按數(shù)組元素在內(nèi)存中的排列順序依次處理每一個(gè)元素,執(zhí)行次數(shù)為數(shù)組元素的個(gè)數(shù).
Dimscore(1to5)asintegerForEachxInscorePrintx;Nextx例:編程實(shí)現(xiàn)142128354249566370778491
產(chǎn)生12個(gè)能被7整除的兩位數(shù),并使用foreach----next語句將這些數(shù)分成兩行輸出OptionBase1‘定義數(shù)組的默認(rèn)下標(biāo)為1PrivateSubCommand1_Click()Dima(12)AsInteger,iAsInteger,jsAsIntegerjs=14
Fori=1To12a(i)=jsjs=js+7Nextijs=0ForEachvinajs=js+1Printv;
IfjsMod6=0ThenPrintNextvEndSub用來給每個(gè)數(shù)組元素賦值用來定義被7整除的數(shù)身份變了:用來定義換行的用來將每個(gè)數(shù)組元素輸出用來定義滿足一行六個(gè)元素OptionBase1PrivateSubCommand1_Click()Dimexam(2,3)AsInteger,iAsInteger,jAsIntegerFori=1To2Forj=1To3
NextjNexti
ForEachvEndSub111213212223編程2:將此二維數(shù)組先用foreach-next語句輸出,觀察輸出結(jié)果;然后用for輸出,再對(duì)比輸出結(jié)果。exam(i,j)=i*10+jInexamPrintv;Nextv:Printexam(i,j)輸出結(jié)果是?112112221323輸出結(jié)果是?1112132122231、數(shù)組元素的賦值2、數(shù)組元素的輸出3、數(shù)組元素的引用6.2數(shù)組的基本操作1、數(shù)組元素的賦值逐一給數(shù)組元素賦值使用循環(huán)賦值用INPUTBOX函數(shù)用ARRAY函數(shù)數(shù)組賦值使用文本框賦值1)用賦值語句給數(shù)組元素賦值例1:求8個(gè)數(shù)的平均數(shù)。適用于元素個(gè)數(shù)較小的數(shù)組OptionBase1PrivateSubForm_Click()Dimnums(8)AsSingle,sAsSingle
nums(1)=12nums(2)=14nums(3)=50
nums(4)=12nums(5)=14‘nums(6)=50
nums(7)=12nums(8)=14s=nums(1)+nums(2)+nums(3)+…….
將8個(gè)元素的值加起來(限于篇幅,以省略號(hào)代替,實(shí)際程序不可這樣寫
s=s/8PrintsEndSub2)利用循環(huán)語句對(duì)數(shù)組元素進(jìn)行逐一地賦值。Privatesubform_click()dima(6)asinteger,iasintegerfori=1to6
a(i)=Inputbox(“給數(shù)組元素賦值”,“數(shù)組A賦值”)
printa(i);nextiendsub給數(shù)組a的5個(gè)元素賦值,a(i)代表數(shù)組元素使用inputbox函數(shù)結(jié)合循環(huán)給數(shù)組a的5個(gè)元素賦值,a(i)代表數(shù)組元素Privatesubform_click()dima(5)asinteger,iasinteger fori=1to5 A(i)=Int(100*rnd)+1 printa(i); nextiendsub
利用Array函數(shù)可以把一個(gè)數(shù)據(jù)集賦值給一個(gè)Variant變量或Variant類型的動(dòng)態(tài)數(shù)組。格式:<變體變量名>=Array([數(shù)據(jù)列表])逗號(hào)間隔.3)把一組數(shù)據(jù)賦給一個(gè)數(shù)組OptionBase1PrivateSubCommand1_Click()DimaAsVariant,IAsInteger,b()AsVarianta=Array(5,4,3,2,1)Printa(1);a(2);a(3);a(4);a(5)a=Array(1.5!,2.3!,3.6!,4.1!)Printa(1);a(2);a(3);a(4)b=Array(1,2,3,4,5,6)Fori=1To6Printb(i);NextEndSub4)數(shù)組賦值
將一個(gè)數(shù)組的整個(gè)內(nèi)容賦給另一個(gè)數(shù)組或者variant變量
PrivateSubCommand1_Click()DimaAsVariant,b()AsVariant,iAsIntegera=Array(1,2,3,4,5)
b=aForEachxInbPrintxNextxEndSub用數(shù)組給數(shù)組賦值時(shí),要遵循的規(guī)則是:(1)賦值符左邊的數(shù)組是動(dòng)態(tài)數(shù)組.(2)賦值符兩邊的數(shù)據(jù)類型必須相同。(3)數(shù)組賦值后,賦值符左邊的數(shù)組的維數(shù)、每一維的維下界和維上界都和賦值符右邊的數(shù)組相同。5)文本框賦值:inputbox函數(shù)每次只能輸入一個(gè)值,當(dāng)數(shù)組元素較多時(shí)不方便,使用文本框可以方便地給數(shù)組的多個(gè)元素賦值。S=text1Fori=1to3forj=1to3k=0Pos=pos+1Dowhilemid(s,pos,1)<>”“andpos<=len(s)Pos=pos+1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年1月江蘇揚(yáng)州市機(jī)關(guān)生活服務(wù)中心招聘廚師2人考試參考試題及答案解析
- 首都醫(yī)科大學(xué)附屬北京回龍觀醫(yī)院派遣人員招聘5人考試參考試題及答案解析
- 2026廣西柳州市融安縣招聘城鎮(zhèn)公益性崗位人員30人考試備考試題及答案解析
- 2026青海西寧市婦幼保健計(jì)劃生育服務(wù)中心招聘6人考試備考試題及答案解析
- 2026遼寧鞍山市海城市融媒體中心公益性崗位招聘2人考試參考試題及答案解析
- 2026山西忻州市五寨縣廉潔征兵考試參考題庫(kù)及答案解析
- 2026青海智特安全環(huán)境技術(shù)服務(wù)有限公司招聘技術(shù)員6人考試備考試題及答案解析
- 2026年黃山學(xué)院師資博士后招聘11名筆試模擬試題及答案解析
- 2026上海復(fù)旦大學(xué)附屬腫瘤醫(yī)院泌尿外科大學(xué)科團(tuán)隊(duì)招聘考試參考試題及答案解析
- 2026貴州畢節(jié)市財(cái)政局選聘監(jiān)管企業(yè)兼職外部董事考試參考試題及答案解析
- 安全技術(shù)與管理畢業(yè)論文
- 2025年新疆中考數(shù)學(xué)真題試卷及答案
- 溫嶺市恩力天金屬表面處理有限公司年處理10萬噸磷化金屬表面技改項(xiàng)目環(huán)評(píng)報(bào)告
- 職務(wù)侵占罪法律培訓(xùn)
- 【2025版】人教版(PEP)三年級(jí)下冊(cè)英語教學(xué)工作計(jì)劃(及進(jìn)度表)
- 勞動(dòng)仲裁申請(qǐng)書電子版模板
- JJF 1183-2025 溫度變送器校準(zhǔn)規(guī)范
- 2024“五史”全文課件
- 家用燃?xì)庠罱Y(jié)構(gòu)、工作原理、配件介紹、常見故障處理
- 人教版七年級(jí)數(shù)學(xué)上冊(cè)期末試題及參考答案(偏難)
- 關(guān)節(jié)攣縮的治療及預(yù)防
評(píng)論
0/150
提交評(píng)論