Visual Basic程序設(shè)計(jì)簡(jiǎn)明教程(第二版)課件:數(shù)組_第1頁
Visual Basic程序設(shè)計(jì)簡(jiǎn)明教程(第二版)課件:數(shù)組_第2頁
Visual Basic程序設(shè)計(jì)簡(jiǎn)明教程(第二版)課件:數(shù)組_第3頁
Visual Basic程序設(shè)計(jì)簡(jiǎn)明教程(第二版)課件:數(shù)組_第4頁
Visual Basic程序設(shè)計(jì)簡(jiǎn)明教程(第二版)課件:數(shù)組_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2024/11/111數(shù)組本章內(nèi)容:

一維數(shù)組

二維數(shù)組

動(dòng)態(tài)數(shù)組

控件數(shù)組

自定義類型

字符串的處理

列表框

組合框

2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》26.1一維數(shù)組一維數(shù)組的定義方式:

Dim數(shù)組名([下界To]上界)As類型例如:

Dima(1To5)AsInteger

數(shù)組的元素在內(nèi)存中按順序存放,數(shù)組所占據(jù)的字節(jié)數(shù)是各元素所占字節(jié)數(shù)之和。

2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》3說明:(1)數(shù)組名應(yīng)該是一個(gè)合法的標(biāo)識(shí)符,數(shù)組中所有元素的數(shù)據(jù)類型都相同。(2)下界和上界均為整型常量表達(dá)式,它們規(guī)定了元素下標(biāo)的取值范圍。下界最小可以是-32768,上界最大可以是32767。應(yīng)該滿足下界≤上界,一維數(shù)組的長度即元素的個(gè)數(shù)為上界-下界+1。(3)對(duì)于沒有賦初值的數(shù)組元素,如果是數(shù)值型,系統(tǒng)都自動(dòng)賦以0;如果是字符型,系統(tǒng)都自動(dòng)賦以空串;如果是邏輯型,系統(tǒng)都自動(dòng)賦以False。(4)如果定義數(shù)組時(shí)省略了下界,則下界默認(rèn)是0。2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》4數(shù)組元素的引用元素引用的形式是:數(shù)組名(下標(biāo))例如:

a(4)=a(1)*a(3)+a(2)在引用數(shù)組的元素時(shí),應(yīng)注意下標(biāo)值不要超過數(shù)組的范圍。2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》5例6.1計(jì)算全班學(xué)生的VB平均成績(jī)ConstNAsInteger=30PrivateSubCommand1_Click()Dima(1ToN)AsInteger,iAsInteger,sumAsInteger,aver!Fori=1ToN'輸入學(xué)生成績(jī)

a(i)=Val(InputBox("請(qǐng)輸入第"&i&"位學(xué)生的成績(jī)"))Nextisum=0Fori=1ToN'累加學(xué)生成績(jī)

sum=sum+a(i)Nextiaver=sum/N'計(jì)算平均成績(jī)

Picture1.Print"平均成績(jī)是";averEndSub2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》6ConstNAsInteger=30PrivateSubCommand2_Click()Dima(1ToN)AsString,i%,j%,flagAsBoolean,name$Fori=1ToN'輸入學(xué)生姓名

a(i)=InputBox("請(qǐng)輸入第"&i&"位學(xué)生的姓名")NextiDoname=InputBox("請(qǐng)輸入要查詢的學(xué)生姓名")flag=FalseFori=1ToNIfa(i)=nameThenflag=True'找到,改變標(biāo)志

ExitForEndIfNextiIfflag=TrueThenPicture1.Print"找到姓名為";name;"的學(xué)生"ElsePicture1.Print"沒有找到姓名為";name;"的學(xué)生"EndIfj=MsgBox("還要繼續(xù)查詢嗎?",vbYesNo+vbquestin)LoopWhilej=6'如果按下“是”按鈕,則繼續(xù)循環(huán)

EndSub例6.2查詢學(xué)生2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》7ConstNAsInteger=30PrivateSubCommand3_Click()Dima(1ToN)AsInteger,iAsInteger,maxAsInteger,minAsIntegerFori=1ToN'輸入學(xué)生成績(jī)

a(i)=Val(InputBox("請(qǐng)輸入第"&i&"位學(xué)生的成績(jī)"))Nextimax=a(1)'假定第一位學(xué)生的成績(jī)是最高分min=a(1)'假定第一位學(xué)生的成績(jī)是最低分Fori=2ToNIfmax<a(i)Thenmax=a(i)'確保max是當(dāng)前最高分

EndIfIfmin>a(i)Thenmin=a(i)'確保min是當(dāng)前最低分

EndIfNextiPicture1.Print"最高分是";maxPicture1.Print"最低分是";minEndSub例6.3統(tǒng)計(jì)全班最高分和最低分返回2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》86.2二維數(shù)組二維數(shù)組的定義方式:Dim數(shù)組名([下界To]上界,[下界To]上界)As類型例如:Dima(1To2,1To2)AsIntegera(1,1)a(1,2)a(2,1)a(2,2)2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》9說明:(1)通常把二維數(shù)組的第一個(gè)下標(biāo)形象地稱為行下標(biāo),第二個(gè)下標(biāo)稱為列下標(biāo)。(2)二維數(shù)組的元素個(gè)數(shù)為行的長度×列的長度,行或者列的長度為各自的上界-下界+1。(3)類似地還可以定義多維數(shù)組。例如:

Dima(1To2,1To2,1To2)AsInteger’共有8個(gè)元素的三維數(shù)組2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》10例6.4

求兩個(gè)3×3矩陣的和。

PrivateSubCommand1_Click()ConstNAsInteger=3Dima(1ToN,1ToN)AsInteger,b(1ToN,1ToN)AsIntegerDimc(1ToN,1ToN)AsInteger,iAsInteger,jAsIntegerFori=1ToNForj=1ToNa(i,j)=Val(InputBox("輸入a("&i&","&j&")"))'輸入數(shù)據(jù)存入數(shù)組aNextjNextiMsgBox("矩陣A的數(shù)據(jù)輸入完畢!")Fori=1ToNForj=1ToNb(i,j)=Val(InputBox("輸入b("&i&","&j&")"))'輸入數(shù)據(jù)存入數(shù)組bNextjNextiMsgBox("矩陣B的數(shù)據(jù)輸入完畢!")2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》11Picture1.Print"開始輸出矩陣C的數(shù)據(jù)"Fori=1ToNForj=1ToNc(i,j)=a(i,j)+b(i,j)'矩陣求和

NextjNextiFori=1ToNForj=1ToNPicture1.PrintTab(j*4);c(i,j);'輸出數(shù)組cNextjPicture1.Print'輸出一行數(shù)據(jù),另換一行

NextiEndSub2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》12輸入輸出返回2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》136.3動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組在程序運(yùn)行過程中才被分配存儲(chǔ)空間,它的定義方式是:

Dim數(shù)組名()As類型例如:

Dima()AsInteger2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》14數(shù)組名賦值Dima(1To3)AsInteger,b()AsInteger,i%Fori=1To3'對(duì)靜態(tài)數(shù)組a的所有元素賦值

a(i)=iNextib=a'數(shù)組名賦值

ForEachxInb'輸出動(dòng)態(tài)數(shù)組b中所有元素的值

PrintxNextx2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》15兩個(gè)函數(shù)的格式是:

LBound(a[,n])UBound(a[,n])說明:(1)參數(shù)a是數(shù)組名。參數(shù)n表示數(shù)組a的第n維,如果省略,則默認(rèn)是1。(2)LBound函數(shù)返回?cái)?shù)組a第n維的下界,UBound函數(shù)返回?cái)?shù)組a第n維的上界。LBound和UBound函數(shù)2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》16Array函數(shù)

Dimb(),i%b=Array(1,2,3)Fori=0To2Printb(i)Nexti2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》17ReDim語句使用ReDim語句,確定動(dòng)態(tài)數(shù)組的維數(shù)以及元素下標(biāo)的下界和上界。其一般形式為:

ReDim[Preserve]數(shù)組名([下界To]上界[,下界To上界,…])[As類型]2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》18說明:(1)可以多次使用ReDim語句對(duì)某個(gè)動(dòng)態(tài)數(shù)組進(jìn)行設(shè)置。(2)數(shù)組的維數(shù)以及元素下標(biāo)的下界和上界都能夠改變,甚至下界和上界可以是有了確定值的變量,但是數(shù)組的類型不能改變。(3)每次執(zhí)行ReDim語句之后,數(shù)組中所有元素的值將會(huì)丟失。如果想保留數(shù)組元素的值,則可以使用關(guān)鍵字Preserve。2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》19例6.6

計(jì)算Fibonacci數(shù)列的前n項(xiàng)

PrivateSubCommand1_Click()Dima()AsLong,nAsInteger,iAsInteger,j%n=Val(Text1.Text)ReDima(1Ton)'設(shè)置動(dòng)態(tài)數(shù)組的長度

Fori=1TonIfi=1Ori=2Thena(i)=1'第一項(xiàng)和第二項(xiàng)都是1Elsea(i)=a(i-1)+a(i-2)'每一項(xiàng)是前兩項(xiàng)之和

EndIfNextij=0Fori=1TonPicture1.PrintTab(j*7);a(i);j=j+1IfiMod5=0ThenPicture1.Printj=0EndIfNextiEndSub返回2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》206.4控件數(shù)組控件數(shù)組的創(chuàng)建方法:(1)復(fù)制現(xiàn)有的控件,然后粘貼在窗體中。(2)為現(xiàn)有的同類控件取同一個(gè)對(duì)象名,一般是與第一個(gè)控件的名字一致。這時(shí)系統(tǒng)會(huì)提示是否創(chuàng)建控件數(shù)組,選擇“是”即可。

2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》21例6.7

用控件數(shù)組改寫例4.6

PrivateSubCommand1_Click()DimsAsString,iAsIntegerDimt1(3)AsString,t2(4)AsStringt1(0)="計(jì)算機(jī)":t1(1)="汽車"t1(2)="機(jī)械":t1(3)="管理"t2(0)="足球":t2(1)="圍棋"t2(2)="游泳":t2(3)="文學(xué)"t2(4)="上網(wǎng)"s=s+"姓名:"+Text1.Text+vbCrs=s+"年齡:"+Text2.Text+vbCrFori=0To3IfOption1(i).Value=TrueThens=s+t1(i)+"系"+vbCrExitForEndIfNextIs=s+"愛好:"Fori=0To4IfCheck1(i).Value=1Thens=s+t2(i)EndIfNextiMsgBox(s)EndSub返回2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》226.5自定義類型自定義的類型又稱為記錄類型,它由一些基本類型的成員所組成。定義記錄類型的關(guān)鍵字是Type,其一般形式為:

Type記錄類型名成員表列

EndType2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》23說明:(1)對(duì)成員表列中的所有成員都應(yīng)進(jìn)行類型聲明。成員聲明的形式為:成員名As類型(2)記錄類型只是刻畫了一個(gè)數(shù)據(jù)結(jié)構(gòu)的模型,并沒有定義實(shí)例,也不要求分配實(shí)際的內(nèi)存空間。在程序中使用記錄類型時(shí),必須定義記錄變量。2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》24Student類型

TypeStudentsnoAsLong'學(xué)號(hào)

nameAsString'姓名

sexAsString'性別

scoreAsInteger'成績(jī)

EndTypeDims1AsStudent,s2AsStudent引用記錄變量成員的形式為:記錄變量名.成員名例如:

s1.sno=2051226記錄變量2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》25記錄數(shù)組

Dims(1To10)AsStudent訪問記錄數(shù)組元素的成員:記錄數(shù)組名(下標(biāo)).成員名例如:

s(2).sno=2051227Text1.Text=s(6).name

返回2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》266.6字符串的處理——格式轉(zhuǎn)換

⑴Val函數(shù)

⑵Str函數(shù)

⑶Asc函數(shù)

⑷Chr函數(shù)

⑸UCase函數(shù)

⑹LCase函數(shù)2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》276.6字符串的處理——統(tǒng)計(jì)長度函數(shù)Len用于統(tǒng)計(jì)字符串的長度即所包含字符的個(gè)數(shù),其格式是:

Len(s)例如Len("VB6.0環(huán)境")得到的值是7。2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》286.6字符串的處理——?jiǎng)h除多余的空格LTrim(s)RTrim(s)Trim(s)函數(shù)LTrim刪除字符串中前面的空格,函數(shù)RTrim刪除字符串中后面的空格,函數(shù)Trim則刪除字符串中前后兩邊的空格。2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》296.6字符串的處理——生成字符串⑴String函數(shù)

String(m,s|n)⑵Space函數(shù)

Space(n)(1)InStr函數(shù)

InStr([n,]s1,s2)(2)Replace函數(shù)

Replace(s1,s2,s3[,m][,n][,…])6.6字符串的處理——查找和替換2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》306.6字符串的處理——截取子串⑴Left函數(shù)

Left(s,n)⑵Right函數(shù)

Right(s,n)⑶Mid函數(shù)

Mid(s,m[,n])⑷Split函數(shù)

Split(s[,d][,n][,…])2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》31PrivateSubCommand1_Click()Dima()AsString,i%,j%,flagAsBoolean,name$a=Split(Text1.Text)'輸入學(xué)生姓名

Doname=InputBox("請(qǐng)輸入要查詢的學(xué)生姓名")flag=FalseFori=LBound(a)ToUBound(a)Ifa(i)=nameThenflag=True'找到,改變標(biāo)志

ExitForEndIfNextiIfflag=TrueThenPicture1.Print"找到姓名為";name;"的學(xué)生"ElsePicture1.Print"沒有找到姓名為";name;"的學(xué)生"EndIfj=MsgBox("還要繼續(xù)查詢嗎?",vbYesNo+vbquestin)LoopWhilej=6EndSub例6.9

改寫例6.2

2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》32返回2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》336.7列表框列表框(ListBox)控件能夠顯示一個(gè)項(xiàng)目列表,用戶可以從中選擇一個(gè)或者多個(gè)項(xiàng)目。如果項(xiàng)目列表中的項(xiàng)目過多而無法一次全部顯示,則列表框?qū)⒆詣?dòng)出現(xiàn)滾動(dòng)條。在工具箱中圖示為:2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》34列表框的常用屬性屬性作用Name設(shè)置列表框的對(duì)象名Text確定用戶當(dāng)前所選的項(xiàng)目,該屬性不能在屬性窗口中設(shè)置,只能在程序中設(shè)置或引用List設(shè)置列表框所顯示的項(xiàng)目列表ListCount確定列表框中項(xiàng)目的總數(shù),該屬性只能在程序中設(shè)置或引用ListIndex確定當(dāng)前選中的項(xiàng)目在項(xiàng)目列表中的索引值,該屬性只能在程序中設(shè)置或引用Selected確定項(xiàng)目列表中某個(gè)項(xiàng)目是否被選中,該屬性只能在程序中設(shè)置或引用MultiSelect確定列表框是否允許多選Style設(shè)置列表框的外觀,默認(rèn)值是0,表示標(biāo)準(zhǔn)方式;如果是1,則項(xiàng)目的左邊有復(fù)選框2024/11/11《VisualBasic程序設(shè)計(jì)簡(jiǎn)明教程》35說明:(1)程序第一個(gè)列表框控件的默認(rèn)對(duì)象名是List1,依次類推。(2)List是列表框控件最重要的屬性之一,其屬性值是一個(gè)字符串?dāng)?shù)組,每一個(gè)元素存放項(xiàng)目列表其中的一個(gè)項(xiàng)目。(3)在程序中ListIndex和ListCount往往與List屬性配合使用。如果用戶未選擇任何項(xiàng)目,ListIndex的值是-1;如果用戶選中項(xiàng)目列表中的第一項(xiàng),ListIndex的值是0;如果用戶選中項(xiàng)目列表中的最后一項(xiàng),則ListIndex的值是List

溫馨提示

  • 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. 人人文庫網(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)論