《VB的數(shù)組和結(jié)構(gòu)》課件_第1頁(yè)
《VB的數(shù)組和結(jié)構(gòu)》課件_第2頁(yè)
《VB的數(shù)組和結(jié)構(gòu)》課件_第3頁(yè)
《VB的數(shù)組和結(jié)構(gòu)》課件_第4頁(yè)
《VB的數(shù)組和結(jié)構(gòu)》課件_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)組和結(jié)構(gòu)第四章數(shù)組和結(jié)構(gòu)第四章回顧基本數(shù)據(jù)類型變量和常量變量和常量的作用域操作符和表達(dá)式流程控制語(yǔ)句2回顧基本數(shù)據(jù)類型2目標(biāo)在VisualBasic中定義和使用數(shù)組掌握控件數(shù)組的基本概念及使用在VisualBasic中創(chuàng)建和使用自定義的數(shù)據(jù)

類型使用隨機(jī)函數(shù)3目標(biāo)在VisualBasic中定義和使用數(shù)組3數(shù)組單獨(dú)的變量能夠存儲(chǔ)單個(gè)數(shù)據(jù)值數(shù)組是可以集中存儲(chǔ)一組具有相同數(shù)據(jù)類型的數(shù)據(jù)項(xiàng)的一種結(jié)構(gòu)使用數(shù)組的優(yōu)勢(shì):數(shù)組中的所有值都用單個(gè)名稱來(lái)存儲(chǔ),并可以使用位置索引分別進(jìn)行標(biāo)識(shí)4數(shù)組單獨(dú)的變量能夠存儲(chǔ)單個(gè)數(shù)據(jù)值4聲明數(shù)組和給數(shù)組賦值聲明數(shù)組:

例如,為存儲(chǔ)2到20之間的偶數(shù)聲明一個(gè)數(shù)組,

Dimeven_arr(9)AsInteger

給數(shù)組賦值:

例如,要給上面聲明的數(shù)組賦值,

even_arr(0)=2

even_arr(1)=4

even_arr(2)=6

………

even_arr(9)=20定義了一個(gè)共有10個(gè)元素的整型數(shù)組5聲明數(shù)組和給數(shù)組賦值聲明數(shù)組:

例如,為存儲(chǔ)2到20使用數(shù)組–示例PrivateSubForm_Click()

Dimnum(10)AsIntegerDimiAsIntegerFori=0To9num(i)=i+1Printnum(i)NextiEndSub(在VB環(huán)境中進(jìn)行演示)6使用數(shù)組–示例PrivateSubForm_Cli定義數(shù)組的下界數(shù)組的下界可以不為0在Dim語(yǔ)句中,可以顯式地指定所聲明的數(shù)組的下界示例DimMynames(1to5)asstring‘可以按如下所示對(duì)該數(shù)組賦值:Mynames(1)=“Tom”Mynames(2)=“Joe”Mynames(3)=“Jack”Mynames(4)=“Lisa”Mynames(5)=“Jeff”7定義數(shù)組的下界數(shù)組的下界可以不為0DimMynames多維數(shù)組在一些情形下可能希望存儲(chǔ)多維數(shù)據(jù)組成的序列聲明多維數(shù)組

例如,要聲明一個(gè)能夠存放5個(gè)學(xué)生的姓名和年齡的數(shù)組,

Dimstud_age(4,1)(0,0)(0,1)(1,0)(1,1)(2,0)(2,1)(3,0)(3,1)(4,0)(4,1)定義了一個(gè)5行2列的Variant類型的數(shù)組8多維數(shù)組在一些情形下可能希望存儲(chǔ)多維數(shù)據(jù)組成的序列(0,0)為多維數(shù)組賦值可用下面的語(yǔ)句為二維數(shù)組賦值Dimstud_age(4,1)stud_age(0,0)="Tom"stud_age(0,1)=25stud_age(1,0)="Joe"stud_age(1,1)=22stud_age(2,0)="Lucy"stud_age(2,1)=24stud_age(3,0)="Ted"stud_age(3,1)=25stud_age(4,0)="Harry"stud_age(4,1)=23Tom25Joe22Lucy24Ted25Harry239為多維數(shù)組賦值可用下面的語(yǔ)句為二維數(shù)組賦值Dimstud_使用數(shù)組元素要顯示上一張幻燈片創(chuàng)建的數(shù)組中所有元素的值Dimi,jAsIntegerFori=0To4Forj=0To1

Printstud_age(i,j)NextjNexti010Tom251Joe222Lucy243Ted254Harry2310使用數(shù)組元素要顯示上一張幻燈片創(chuàng)建的數(shù)組中所有元素的值Dim動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組與普通數(shù)組在概念上相類似動(dòng)態(tài)數(shù)組與普通數(shù)組的區(qū)別:動(dòng)態(tài)數(shù)組的大小在程序中是可變的聲明動(dòng)態(tài)數(shù)組不需要指定維數(shù)使用動(dòng)態(tài)數(shù)組可以丟棄不需要的數(shù)據(jù)并釋放

內(nèi)存11動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組與普通數(shù)組在概念上相類似11定義動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組的聲明與正常數(shù)組的聲明相似在聲明時(shí)不需要指定任何維數(shù)例如,

聲明數(shù)組時(shí)

Dimnum_arr()asLong

運(yùn)行時(shí)使用ReDim語(yǔ)句指定數(shù)組的維數(shù)和實(shí)際大小

ReDimnum_arr(10)

12定義動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組的聲明與正常數(shù)組的聲明相似12重定義動(dòng)態(tài)數(shù)組在重定義動(dòng)態(tài)數(shù)組時(shí),應(yīng)注意:ReDim語(yǔ)句與Dim語(yǔ)句不同,只能在函數(shù)和過(guò)程中出現(xiàn),后者可以在過(guò)程外出現(xiàn)ReDim語(yǔ)句無(wú)法更改與數(shù)組關(guān)聯(lián)的數(shù)據(jù)類型連續(xù)的ReDim語(yǔ)句可以更改數(shù)組的邊界,但無(wú)法更改數(shù)組的維數(shù)每執(zhí)行一次ReDim語(yǔ)句,當(dāng)前數(shù)組中的值將會(huì)丟失13重定義動(dòng)態(tài)數(shù)組在重定義動(dòng)態(tài)數(shù)組時(shí),應(yīng)注意:13動(dòng)態(tài)數(shù)組–示例PrivateSubForm_Click()Dimnum_arr()AsIntegerDimintNum,iAsIntegerintNum=InputBox("請(qǐng)輸入動(dòng)態(tài)數(shù)組中元素的個(gè)數(shù)")'重定義動(dòng)態(tài)數(shù)組

ReDimnum_arr(intNum)'給動(dòng)態(tài)數(shù)組賦值

Fori=0TointNumnum_arr(i)=i+10NextiMsgBox"數(shù)組中第一個(gè)元素的值為:"&num_arr(0)ReDimnum_arr(3)MsgBox"重定義后數(shù)組中第一個(gè)元素的值為:"&num_arr(0)EndSub(在VB環(huán)境中進(jìn)行演示)14動(dòng)態(tài)數(shù)組–示例PrivateSubForm_Clic控件數(shù)組2-1可以將相關(guān)的并且是相同類型的控件組合到一種稱為“控件數(shù)組”的結(jié)構(gòu)中示例:在VB環(huán)境中創(chuàng)建名為cmdArray的命令按鈕的控件數(shù)組15控件數(shù)組2-1可以將相關(guān)的并且是相同類型的控件組合到一種控件數(shù)組2-2控件數(shù)組中的控件共享公用的屬性、事件、名稱和類型控件數(shù)組中的每個(gè)控件稱為控件數(shù)組的一個(gè)元素控件數(shù)組中的控件可以在運(yùn)行時(shí)創(chuàng)建16控件數(shù)組2-2控件數(shù)組中的控件共享公用的屬性、事件、名稱Index屬性控件數(shù)組中的所有元素具有相同的名稱通過(guò)使用稱為Index屬性的屬性來(lái)分別標(biāo)識(shí)每個(gè)元素索引可以幫助將特定的值賦給與特定控件關(guān)聯(lián)的屬性17Index屬性控件數(shù)組中的所有元素具有相同的名稱17Index屬性–示例改變?cè)诨脽羝?5中創(chuàng)建的cmdArray命令按鈕數(shù)組中第0個(gè)和第1個(gè)按鈕的caption屬性

cmdArray(0).caption="退出"

cmdArray(1).caption="確定"18Index屬性–示例改變?cè)诨脽羝?5中創(chuàng)建的cmdA控件數(shù)組的事件編程對(duì)于與控件數(shù)組相關(guān)聯(lián)的特定事件,該控件數(shù)組中的所有元素共享相同的事件代碼根據(jù)與控件相關(guān)聯(lián)的索引來(lái)觸發(fā)控件的事件19控件數(shù)組的事件編程對(duì)于與控件數(shù)組相關(guān)聯(lián)的特定事件,該控件數(shù)組控件數(shù)組的事件編程–示例(在VB環(huán)境中進(jìn)行演示)20控件數(shù)組的事件編程–示例(在VB環(huán)境中進(jìn)行演示)20使用自定義數(shù)據(jù)類型可能會(huì)需要將與相同實(shí)體相關(guān)的不同數(shù)據(jù)類型的值存儲(chǔ)在一起,這種結(jié)構(gòu)稱為記錄。例如:要存儲(chǔ)學(xué)生的相關(guān)信息Student_idStudent_nameStudent_marksStudent_address104Parker78NewYork-35105Stevens82Texas-50107George76Florida-5621使用自定義數(shù)據(jù)類型可能會(huì)需要將與相同實(shí)體相關(guān)的不同數(shù)據(jù)類型的定義自定義數(shù)據(jù)類型使用Type語(yǔ)句創(chuàng)建的數(shù)據(jù)類型稱為用戶定義或自定義的數(shù)據(jù)類型Type語(yǔ)句的典型語(yǔ)法如下:

TypevarType

variable1asvarType

variable2asvarType

variable3asvarType

….

variablenasvarType

EndType22定義自定義數(shù)據(jù)類型使用Type語(yǔ)句創(chuàng)建的數(shù)據(jù)類型稱為用戶自定義數(shù)據(jù)類型–示例創(chuàng)建符合幻燈片21示例中關(guān)于學(xué)生信息要求的,稱為studTyp的自定義數(shù)據(jù)類型

TypestudType stud_idAsInteger stud_nameAsString stud_marksAsInteger stud_addressAsStringEndType23自定義數(shù)據(jù)類型–示例創(chuàng)建符合幻燈片21示例中關(guān)于學(xué)生信息創(chuàng)建自定義數(shù)據(jù)類型的變量可以使用下列語(yǔ)句,創(chuàng)建在上一張幻燈片中定義的自定義數(shù)據(jù)類型studType的變量:

Dimstudent1AsstudType

Dimstudent2AsstudType

24創(chuàng)建自定義數(shù)據(jù)類型的變量可以使用下列語(yǔ)句,創(chuàng)建在上一張幻燈片為自定義數(shù)據(jù)類型的變量賦值要為這些變量賦值,必須顯式地將值賦給組成此數(shù)據(jù)類型的各個(gè)成員數(shù)據(jù)類型的每個(gè)單獨(dú)的成員稱為字段使用變量名.字段名,為變量賦值或訪問(wèn)變量的各字段的值25為自定義數(shù)據(jù)類型的變量賦值要為這些變量賦值,必須顯式地將值賦使用自定義數(shù)據(jù)類型–示例為自定義數(shù)據(jù)類型的變量賦值

‘studType是在第23張幻燈片中創(chuàng)建的自定義數(shù)據(jù)類型student1.stud_idstudent1.stud_namestudent1.stud_marksstudent1.stud_address訪問(wèn)該類型變量的值Dimstudent1AsstudType

student1.stud_id=104student1.stud_name="Parker"student1.stud_marks=78student1.stud_address="NewYork-35“126使用自定義數(shù)據(jù)類型–示例為自定義數(shù)據(jù)類型的變量賦值st使用RND隨機(jī)數(shù)函數(shù)RND函數(shù)說(shuō)明:返回一個(gè)小于1但大于等于0的單精度數(shù)??捎脕?lái)生成某個(gè)范圍內(nèi)的隨機(jī)整數(shù):Int((上限–下限+1)*Rnd+下限)

示例:若要生成一個(gè)10-20內(nèi)的隨機(jī)整數(shù)Int((20–10+1)*Rnd+10)27使用RND隨機(jī)數(shù)函數(shù)RND函數(shù)說(shuō)明:示例:若要生成一個(gè)10-使用RND函數(shù)–示例DimintIndexAsLongDimsngArray(1To10)AsSingleForintIndex=1To10sngArray(intIndex)=100*Rnd+1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論