大一課程2012第5章_第1頁
大一課程2012第5章_第2頁
大一課程2012第5章_第3頁
大一課程2012第5章_第4頁
大一課程2012第5章_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1第5章數(shù)組與過程數(shù)組是一組具有有序下標的元素集合。在VB中,數(shù)組的一般形式為:A(n),其中A代表數(shù)組名,n是下標變量.數(shù)組的下標個數(shù)稱為數(shù)組的維數(shù),多維數(shù)組的多個下標之間用逗號間隔。當有較多的同類型數(shù)據(jù)需要處理時,可以將其存放在一個數(shù)組中。由于這些數(shù)據(jù)都同名而有序,可以很方便的對它進行存取操作。5.1數(shù)組25.1數(shù)組【例如】為了處理50名學生的計算機課程考試成績,可以用A1,A2,…,A50來分別代表每位學生的分數(shù)在使用數(shù)組前要先定義。定義數(shù)組(也稱聲明數(shù)組)是為了確定數(shù)組的類型并給數(shù)組分配所需的存儲空間。

35.1數(shù)組

數(shù)組的定義(默認:數(shù)組下標從0開始)

一維數(shù)組:

DIM<數(shù)組名>(維數(shù)定義)[AS<數(shù)據(jù)類型>]

例如:DIMS(3)asinteger

有4個元素:S(0)S(1)S(2)s(3)DIMc(1to10)

二維數(shù)組:先行后列

DIM<數(shù)組名>(維數(shù)定義)[AS<數(shù)據(jù)類型>]

例如:

DIMM(2,3)

DIMf(1to3,2to5)asstring

M(0,0)M(0,1)M(0,2)M(0,3)M(1,0)M(1,1)M(1,2)M(1,3)M(2,0)M(2,1)M(2,2)M(2,3)45.1數(shù)組數(shù)組的上下界

如果使用語句optionbase0|1,指定默認的下界是0或1

該語句放在通用模塊中也可以在定義時指定上下界例如:

DIMA(1TO7)

55.1數(shù)組

數(shù)組的操作1、數(shù)組元素的輸入◎使用賦值語句給數(shù)組元素賦值◎使用For循環(huán)給有規(guī)律的數(shù)組元素賦值2、數(shù)組元素的輸出◎print輸出◎輸出到控件中

6舉例:將10個1到10的隨機數(shù)存放在數(shù)組中,并輸出OptionBase1PrivateSubForm_Click()DimA(10)asintegerRandomizeFori=1To10

A(i)=Int(Rnd*10)NextFori=1To10

PrintA(i)NextEndSub5.1數(shù)組(輸入和輸出舉例)例5-1對6個無序的數(shù)從小到大排序(方法二)PrivateSubCommand1_Click()Dima(6)AsIntegerDimiAsInteger,jAsInteger,pAsInteger,tempAsIntegerFori=1To6a(i)=Val(InputBox("請輸入第"&i&"個數(shù)",,1))NextiFori=1To5Forj=1To6-iIfa(j)>a(j+1)Thentemp=a(j)a(j)=a(j+1)a(j+1)=tempEndIfNextNextFori=1To6Printa(i);NextEndSub7

5.1.5控件數(shù)組控件數(shù)組是由一組相同類型的控件組成,它們擁有相同的控件名稱,具有相同的屬性設置,只有一個屬性不同,即index屬性的值不同。Index屬性設置數(shù)組中的每一個控件的下標??丶?shù)組的最大特點是:控件數(shù)組各元素共享同樣的事件過程。當有若干控件都需要執(zhí)行相同的操作時,即觸發(fā)相同的事件過程時,使用控件數(shù)組就會提高效率。

5.1.5控件數(shù)組控件數(shù)組的建立方法1:修改控件的名字Name屬性方法2:使用控件復制的方法:選定控件;CTRL+C;CTRL+V方法3:一般控件的index屬性為null,如果通過修改第一個控件控件的索引值Index的值為0,則表示以后將建立相同控件類型的控件數(shù)組。例5-7105.2過程VB應用程序通常是由一些具有獨立功能的小程序組成,這些小程序稱為過程。把程序分割為較小的過程,一來便于程序的管理,進行分工編寫和調(diào)試,簡化程序設計過程;二來有利于程序的共享,對一個具有公共性,經(jīng)常被執(zhí)行的任務,將其編寫為過程,供若干程序調(diào)用,省去了重復書寫的繁瑣,提高了編程效率。115.2過程的類型

一、不返回值的過程事件過程(Event過程)子程序過程(Sub過程)二、返回值的過程函數(shù)過程(Function過程)屬性過程(Property過程)

事件過程(event)是指附加在窗體和控件上的過程。當vb中的對象對一個事件的發(fā)生做出認定時,自動用對應于該對象和事件的名字調(diào)用該事件過程。子程序(sub)又稱為通用過程,是完成特定功能的子過程,必須由應用程序來調(diào)用。建立子程序的原因可能是幾個不同的事件過程也許要執(zhí)行相同的操作,或者一段程序具有相對獨立的功能,則用子程序來完成對這一操作和功能的描述,并由事件過程來調(diào)用。子程序的好處在于不必重復編寫代碼,便于共享。將調(diào)用其他過程的過程稱為主調(diào)過程,把被調(diào)用的過程稱為被調(diào)過程函數(shù)過程(function)是被調(diào)用后要返回值的過程。函數(shù)和子過程一樣,也是具有獨立功能的過程,因主調(diào)過程的調(diào)用而被執(zhí)行,也能傳遞參數(shù),執(zhí)行一系列過程中的語句,執(zhí)行完畢后返回主調(diào)過程。函數(shù)與子過程的本質(zhì)不同在于被調(diào)用后能否向主調(diào)過程返回一個值。屬性過程(property):用于設置和返回對象屬性的值,還可以設置對屬性的引用,可創(chuàng)建和引用用戶自定義的屬性。145.2Sub過程子程序過程的定義通用Sub過程的結(jié)構(gòu)與事件過程的結(jié)構(gòu)類似。其格式為:

[Static][Private][Public]Sub<過程名>[(形參表)]<語句序列>[ExitSub]<語句序列>EndSub

按照缺省規(guī)定,所有模塊中的子過程為Public(公有的),這樣在應用程序中可隨處調(diào)用它們。如果選用Private,則只有該過程所在模塊中的程序才能調(diào)用該過程。155.2Sub過程創(chuàng)建過程的方法在“工程”菜單中“添加模塊”,再在“工具”菜單中“添加過程”過程調(diào)用格式1:call過程名(實參表)格式2:過程名實參表說明:Call調(diào)用,必須加(),參數(shù)以逗號分隔。不用Call,不能加(),參數(shù)以逗號分167.2Sub過程【例】計算矩形面積(用子過程實現(xiàn))

SubjxArea(x,y)DimAreaArea=x*yMsgBox"矩形面積為:"&AreaEndSubPrivateSubForm_click()DimI,dI=Val(InputBox("請輸入矩形長:"))d=Val(InputBox("請輸入矩形寬:"))calljxArea(l,d)EndSub175.2Sub過程使用說明

Sub和EndSub必須配套ExitSub中途退出過程默認的過程是Public,在應用程序中隨處可以調(diào)用不能嵌套定義過程,但是可以嵌套調(diào)用185.2.3函數(shù)過程FunctionVB允許用戶按一定規(guī)則自行設計一個專用的函數(shù),這就是函數(shù)過程(Function過程)。

Function過程與Sub過程主要區(qū)別僅在于Function過程必須返回一個值(通常出現(xiàn)在表達式中),而Sub過程卻無此限制。

195.2.3Function過程FUNCTION函數(shù)定義

[Static][Private][Public]Function<過程名>[(參數(shù)表)][AS類型]<語句序列>[ExitFunction]<語句序列>

[<函數(shù)名>]=<表達式>]Endfuction注釋:定義函數(shù)返回值的賦值語句格式如下:[<函數(shù)名>]=<表達式>],表示函數(shù)返回的結(jié)果一旦結(jié)束調(diào)用,函數(shù)將該表達式的值作為返回值返回到主調(diào)過程中的函數(shù)調(diào)用點。因此,該賦值語句是函數(shù)中必不可少的語句,缺少此語句,就反映不出函數(shù)具有返回值的這個特性205.2.3Function過程FUNCTION函數(shù)調(diào)用把它作為一個數(shù)據(jù),即直接放在賦值號右端可直接作為參數(shù)出現(xiàn)在調(diào)用過程或函數(shù)中與子程序過程的區(qū)別:調(diào)用子程序過程時,不管用call語句調(diào)用還是直接調(diào)用,都獨立成一個語句而獨占一行。而由于函數(shù)能夠返回值,使得函數(shù)的調(diào)用點往往出現(xiàn)在一個語句或者一個表達式中,在該語句或表達式中引用函數(shù)的返回值。

例:設計一個絕對值函數(shù)過程PrivateSubCommand1_Click()a=Val(Text1.Text)b=jdz(a)MsgBox"絕對值為"&Str(b)EndSubPublicFunctionjdz(x)Ifx>0Theny=xElsey=-xjdz=yEndFunction思考:設計三個數(shù)的求和函數(shù)過程、求最大值函數(shù)過程、求最小值函數(shù)過程、求平均值函數(shù)過程例:設計一個絕對值函數(shù)過程方法二:設計子程序過程PrivateSubCommand1_Click()a=Val(Text1.Text)Calljdz(a)EndSubPublicsubjdz(x)Ifx>0Theny=xElsey=-xMsgBox"絕對值為"&Str(y)Endsub方法一:PrivateSubCommand1_Click()a=Val(Text1.Text)b=jdz(a)MsgBox"絕對值為"&Str(b)EndSubPublicFunctionjdz(x)Ifx>0Theny=xElsey=-xjdz=yEndFunction例:定義一個名為area的函數(shù),根據(jù)半徑計算圓的面積PrivateSubCommand1_Click()DimsAsSingleDimaAsSinglea=3s=area(1)PrintsPrintarea(2)Ifarea(a)>20ThenPrint"area>20"EndIfEndSubPublicFunctionarea(rAsSingle)area=3.14*r*rEndFunction24例:判斷是否是素數(shù)Functionprime(nAsInteger)Fori=2Ton-1IfnModi=0ThenExitFunctionNextIfi=nThenprime=1Elseprime=0EndFunctionPrivateSubForm_Click()DimaAsIntegera=Val(InputBox("n=","input"))b=prime(a)Ifb=1ThenPrint"素數(shù)"ElsePrint"合數(shù)"EndSub5.2.3Function過程255.2.4過程參數(shù)的傳遞在調(diào)用過程時,一般主調(diào)過程與被調(diào)過程之間有數(shù)據(jù)傳遞,即主調(diào)過程的實參傳遞給被調(diào)過程的形參,完成實參與形參的結(jié)合,然后執(zhí)行被調(diào)過程體。形式參數(shù)和實際參數(shù)形參,全稱為“形式參數(shù)”。定義過程的參數(shù),沒有具體的值實參,全稱為“實際參數(shù)”。調(diào)用過程的參數(shù),有具體的值實際參數(shù)是指在調(diào)用sub或function過程時,傳送給sub或function過程的常量、變量、表達式或數(shù)組名。其作用是將它們的數(shù)據(jù)(數(shù)值或地址)傳送給sub或function過程與其對應的形參。26在傳遞參數(shù)時,形參表與實參表中對應參數(shù)的名字不必相同,但要求形參表與實參表中參數(shù)的個數(shù)、類型、位置順序必須一一對應。形參表中的參數(shù)可以是:除固定長度字符串之外的合法變量名,后面帶一對圓括號的數(shù)組名。實參表中的參數(shù)可以是:常量、變量、表達式、后面帶一對圓括號的數(shù)組名。實參和形參是一一對應的

值傳遞和地址傳遞按值傳遞(byval):如果在聲明過程時,形參使用關鍵字byval聲明,則規(guī)定了在調(diào)用此過程時,該參數(shù)將按值傳遞。實參的值不隨形參的改變而改變。按地址傳遞(byref):實參的值隨形參的改變而改變。傳值:形式參數(shù)和實際參數(shù)是不同的內(nèi)存空間。傳地址:形式參數(shù)和實際參數(shù)是相同的內(nèi)存空間默認:傳地址28SubfRef(xAsInteger,yAsInteger)x=x+2y=y+2form1.Print"x=";x,"y=";y

EndSubPrivateSubForm_Click()DimaAsInteger,bAsIntegera=10b=12fRefa,bPrint"a=";a,"b=";bEndSubSubfVal(ByValxAsInteger,ByValyAsInteger)x=x+2y=y+2form1.Print"x=";x,"y

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論