vb子程序和函數(shù)-課件_第1頁(yè)
vb子程序和函數(shù)-課件_第2頁(yè)
vb子程序和函數(shù)-課件_第3頁(yè)
vb子程序和函數(shù)-課件_第4頁(yè)
vb子程序和函數(shù)-課件_第5頁(yè)
已閱讀5頁(yè),還剩38頁(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ù)

8.1子程序概述

在VB5.0/6.0中,除了系統(tǒng)提供的內(nèi)部函數(shù)過(guò)程和事件過(guò)程外,用戶可自定義過(guò)程下列四種過(guò)程:▲“Sub”保留字開(kāi)始的為子過(guò)程▲“Function”保留字開(kāi)始的為函數(shù)過(guò)程“Property”保留字開(kāi)始的為屬性過(guò)程“Event”保留字開(kāi)始的事件過(guò)程vb子程序和函數(shù)ppt課件2021/3/261第八章子程序和函數(shù)8.1子程序概述vb子程序和函數(shù)在VB中,的Sub子過(guò)程分為:事件過(guò)程和通用過(guò)程8.2.1事件過(guò)程(1)窗體事件的語(yǔ)法PrivateSubForm_事件名(參數(shù)列表)<語(yǔ)句組>EndSub(2)控件事件的語(yǔ)法PrivateSub控件名_事件名(參數(shù)列表)<語(yǔ)句組>EndSub8.2Sub過(guò)程vb子程序和函數(shù)ppt課件2021/3/262在VB中,的Sub子過(guò)程分為:事件過(guò)程和通用過(guò)程8.子過(guò)程的定義形式如下:[Public|Private][Static]Sub子過(guò)程名([形參表])<局部變量或常數(shù)定義><語(yǔ)句組>[ExitSub]<語(yǔ)句組>EndSub

8.2.2通用過(guò)程(Sub過(guò)程)的定義說(shuō)明:(1)子過(guò)程名:命名規(guī)則與變量名規(guī)則相同。子過(guò)程名不返回值,而是通過(guò)形參與實(shí)參的傳遞得到結(jié)果,調(diào)用時(shí)可返回多個(gè)值。vb子程序和函數(shù)ppt課件2021/3/263子過(guò)程的定義形式如下:8.2.2通用過(guò)程(Sub過(guò)程)(2)形式參數(shù)列表:形式參數(shù)通常簡(jiǎn)稱“形參”,僅表示形參的類型、個(gè)數(shù)、位置,定義時(shí)是無(wú)值的,只有在過(guò)程被調(diào)用時(shí),虛實(shí)參結(jié)合后才獲得相應(yīng)的值。(3)過(guò)程可以無(wú)形式參數(shù),但括號(hào)不能省。(4)參數(shù)的定義形式:[ByVal|ByRef]變量名[()][As類型][,…],ByVal表示當(dāng)該過(guò)程被調(diào)用時(shí),參數(shù)是按值傳遞的;缺省或ByRef表示當(dāng)該過(guò)程被調(diào)用時(shí),參數(shù)是按地址傳遞的。例8.1編一個(gè)交換兩個(gè)整型變量值的子過(guò)程。PrivateSubSwap(XAsInteger,YAsInteger)DimtempAsIntegerTemp=X:X=Y:Y=TempEndSubvb子程序和函數(shù)ppt課件2021/3/264(2)形式參數(shù)列表:形式參數(shù)通常簡(jiǎn)稱“形參”,僅表示形參的類8.2.3子過(guò)程的建立通過(guò)“工具”菜單中的“添加過(guò)程”命令,出現(xiàn)“添加過(guò)程”對(duì)話框(見(jiàn)圖6.1),選擇過(guò)程類型(子過(guò)程、函數(shù)、屬性、事件)及作用范圍(公有的Public、私有的Private),單擊確定后得到一個(gè)過(guò)程或函數(shù)定義的結(jié)構(gòu)框架(模板),如:PublicSubSort()……EndSubvb子程序和函數(shù)ppt課件2021/3/2658.2.3子過(guò)程的建立通過(guò)“工具”菜單中的“添8.2.4過(guò)程的調(diào)用

1子過(guò)程的調(diào)用

子過(guò)程名[參數(shù)列表]或 Call子過(guò)程名(參數(shù)列表)2函數(shù)過(guò)程的調(diào)用

變量名=函數(shù)過(guò)程名([參數(shù)列表])說(shuō)明:(1)參數(shù)列表稱為實(shí)參或?qū)嵲仨毰c形參保持個(gè)數(shù)相同,位置與類型一一對(duì)應(yīng)。(2)調(diào)用時(shí)把實(shí)參值傳遞給對(duì)應(yīng)的形參。其中值傳遞(形參前有ByVal說(shuō)明)時(shí)實(shí)參的值不隨形參的值變化而改變。而地址傳遞時(shí)實(shí)參的值隨形參值的改變而改變。vb子程序和函數(shù)ppt課件2021/3/2668.2.4過(guò)程的調(diào)用vb子程序和函數(shù)ppt課件2021/(3)當(dāng)參數(shù)是數(shù)組時(shí),形參與實(shí)參在參數(shù)聲明時(shí)應(yīng)省略其維數(shù),但括號(hào)不能省。(4)調(diào)用子過(guò)程的形式有兩種,用Call關(guān)鍵字時(shí),實(shí)參必須加圓括號(hào)括起,反之則實(shí)參之間用“,”分隔。例:調(diào)用上面定義的Sawp子過(guò)程的形式:SCallS)vb子程序和函數(shù)ppt課件2021/3/267(3)當(dāng)參數(shù)是數(shù)組時(shí),形參與實(shí)參在參數(shù)聲明時(shí)應(yīng)PrivateSubCmdOK()……CallS)……SEndSubPrivateSubS)Dimtemp%Temp=XX=YY=TempEndSub過(guò)程調(diào)用的執(zhí)行過(guò)程:vb子程序和函數(shù)ppt課件2021/3/268PrivateSubCmdOK()PrivateSub8.3Function過(guò)程VisualBasic函數(shù)分為內(nèi)部函數(shù)和外部函數(shù),外部函數(shù)是用戶根據(jù)需要用Function關(guān)鍵字定義的函數(shù)過(guò)程,與子過(guò)程不同的是函數(shù)過(guò)程將返回一個(gè)值。8.3.1函數(shù)過(guò)程(Function過(guò)程)的定義[Public|Private][Static]Function函數(shù)名([<參數(shù)列表>])[As<類型>]<局部變量或常數(shù)定義><語(yǔ)句塊>函數(shù)體[函數(shù)名=返回值][ExitFunction]<語(yǔ)句塊>[函數(shù)名=返回值]EndFunction函數(shù)體vb子程序和函數(shù)ppt課件2021/3/2698.3Function過(guò)程VisualB說(shuō)明:(1)函數(shù)名:命名規(guī)則與變量名規(guī)則相同。但不能與系統(tǒng)的內(nèi)部函數(shù)或其它通用子過(guò)程同名,也不能與已定義的全局變量和本模塊中模塊級(jí)變量同名。(2)在函數(shù)體內(nèi),函數(shù)名可以當(dāng)變量使用,函數(shù)的返回值就是通過(guò)對(duì)函數(shù)名的賦值語(yǔ)句來(lái)實(shí)現(xiàn)的,在函數(shù)過(guò)程中至少要對(duì)函數(shù)名賦值一次。(3)AS類型:是指函數(shù)返回值的類型,若省略,則函數(shù)返回變體類型值(Variant)。(4)ExitFunction:表示退出函數(shù)過(guò)程,常常是與選擇結(jié)構(gòu)(If或SelectCase語(yǔ)句)聯(lián)用,即當(dāng)滿足一定條件時(shí),退出函數(shù)過(guò)程。(5)形參數(shù)列表:形參的定義與子過(guò)程完全相同。例6.2vb子程序和函數(shù)ppt課件2021/3/2610說(shuō)明:例6.2vb子程序和函數(shù)ppt課件2021/3/28.3.2函數(shù)的調(diào)用調(diào)用形式如下:

函數(shù)名(實(shí)參列表)說(shuō)明:在調(diào)用時(shí)實(shí)參和形參的數(shù)據(jù)類型、順序、個(gè)數(shù)必須匹配。函數(shù)調(diào)用只能出現(xiàn)在表達(dá)式中,其功能是求得函數(shù)的返回值。vb子程序和函數(shù)ppt課件2021/3/26118.3.2函數(shù)的調(diào)用調(diào)用形式如下:vb子程序和函數(shù)p8.4過(guò)程的作用域[Public|Private]Sub子過(guò)程名([形式參數(shù)列表])…..EndSub概念通用子過(guò)程和函數(shù)過(guò)程既可寫在窗體模塊中也可寫在標(biāo)準(zhǔn)模塊中,在定義時(shí)可選用關(guān)鍵字Private(局部)和Public(全局),來(lái)決定它們能被調(diào)用的范圍。vb子程序和函數(shù)ppt課件2021/3/26128.4過(guò)程的作用域[Public|Private]S1、窗體/模塊級(jí)過(guò)程:

加Private關(guān)鍵字的過(guò)程,只能被定義的窗體或模塊中的過(guò)程調(diào)用。2、全局級(jí)過(guò)程:

加Public關(guān)鍵字(或缺?。┑倪^(guò)程,可供該應(yīng)用程序的所有窗體和所有標(biāo)準(zhǔn)模塊中的過(guò)程調(diào)用。按過(guò)程的作用范圍來(lái)劃分,過(guò)程可分為:

模塊級(jí)過(guò)程

全局級(jí)過(guò)程用例7.1來(lái)說(shuō)明過(guò)程的作用域vb子程序和函數(shù)ppt課件2021/3/26131、窗體/模塊級(jí)過(guò)程:按過(guò)程的作用范圍來(lái)劃分,過(guò)程可分為:用總結(jié)歸納過(guò)程的定義及作用域如下表(教材Pg.163)vb子程序和函數(shù)ppt課件2021/3/2614總結(jié)歸納過(guò)程的定義及作用域如下表(教材Pg.163)vb子程8.5過(guò)程之間參數(shù)的傳遞VisualBasic中不同模塊(過(guò)程)之間數(shù)據(jù)的傳遞有兩種方式:通過(guò)過(guò)程調(diào)用實(shí)參與形參的結(jié)合實(shí)現(xiàn);使用全局變量來(lái)實(shí)現(xiàn)各過(guò)程中共享數(shù)據(jù)。8.5.1形式參數(shù)與實(shí)際參數(shù)1、形式參數(shù)是指在定義通用過(guò)程時(shí),出現(xiàn)在Sub或Function語(yǔ)句中的變量名后面園括號(hào)內(nèi)的數(shù),是用來(lái)接收傳送給子過(guò)程的數(shù)據(jù),形參表中的各個(gè)變量之間用逗號(hào)分隔。vb子程序和函數(shù)ppt課件2021/3/26158.5過(guò)程之間參數(shù)的傳遞VisualBasic中不同模塊2、實(shí)際參數(shù)實(shí)際參數(shù)是指在調(diào)用Sub或Function過(guò)程時(shí),寫入子過(guò)程名或函數(shù)名后括號(hào)內(nèi)的參數(shù),其作用是將它們的數(shù)據(jù)(數(shù)值或地址)傳送給Sub或Function過(guò)程與其對(duì)應(yīng)的形參變量。實(shí)參可由常量、表達(dá)式、有效的變量名、數(shù)組名(后加左、右括號(hào),如A())組成,實(shí)參表中各參數(shù)用逗號(hào)分隔。8.5.2參數(shù)傳遞(虛實(shí)結(jié)合)參數(shù)傳遞指主調(diào)過(guò)程的實(shí)參(調(diào)用時(shí)已有確定值和內(nèi)存地址的參數(shù))傳遞給被調(diào)過(guò)程的形參,參數(shù)的傳遞有兩種方式:按值傳遞、按地址傳遞。形參前加“ByVal”關(guān)鍵字的是按值傳遞,缺省或加“ByRef”關(guān)鍵字的為按地址傳遞。vb子程序和函數(shù)ppt課件2021/3/26162、實(shí)際參數(shù)8.5.2參數(shù)傳遞(虛實(shí)結(jié)合)傳址與傳值傳址:形參得到的是實(shí)參的地址,當(dāng)形參值的改變同時(shí)也改變實(shí)參的值。傳值:形參得到的是實(shí)參的值,形參值的改變不會(huì)影響實(shí)參的值。SubSwap2(x%,y%)DimTemp%Temp=x:x=y:y=TempEndSubSubSwap1(ByValx%,ByValy%)DimTemp%Temp=x:x=y:y=TempEndSub例8.4vb子程序和函數(shù)ppt課件2021/3/2617傳址與傳值SubSwap2(x%,y%)SubSwaPrivateSubCmdOK_Click()a%=10:b%=20:Swap1a,b‘傳值Print"A1=";a,"B1=";ba=10:b=20:Swap2a,b'傳地址Print"A2=";a,"B2=";bEndSub程序調(diào)用執(zhí)行過(guò)程:vb子程序和函數(shù)ppt課件2021/3/2618PrivateSubCmdOK_Click()程序調(diào)用執(zhí)值傳遞的執(zhí)行過(guò)程如下圖:通過(guò)地址傳遞數(shù)據(jù)的執(zhí)行過(guò)程vb子程序和函數(shù)ppt課件2021/3/2619值傳遞的執(zhí)行過(guò)程如下圖:通過(guò)地址傳遞數(shù)據(jù)的執(zhí)行過(guò)程vb子程數(shù)據(jù)傳遞的幾點(diǎn)說(shuō)明:1.參數(shù)的數(shù)據(jù)類型2.按值傳遞參數(shù) 形參是實(shí)參的一個(gè)副本3.按地址傳遞參數(shù) 形參實(shí)參公用內(nèi)存單元4.子過(guò)程執(zhí)行一系列操作,函數(shù)過(guò)程返回一個(gè)值注意:如果實(shí)參是常量(系統(tǒng)常量、符號(hào)常量)或者表達(dá)式,則無(wú)論定義時(shí)使用值傳遞還是地址傳遞,都是按值傳遞將常量或者表達(dá)式的計(jì)算值傳遞給形參。vb子程序和函數(shù)ppt課件2021/3/2620數(shù)據(jù)傳遞的幾點(diǎn)說(shuō)明:vb子程序和函數(shù)ppt課件2021/38.6高級(jí)用法(數(shù)組做為參數(shù))VisualBasic允許把數(shù)組作為實(shí)參傳送到過(guò)程中。數(shù)組作參數(shù)是通過(guò)傳地址方式傳送。在傳送數(shù)組時(shí),除遵守參數(shù)傳送的一般規(guī)則外,還應(yīng)注意以下幾點(diǎn):1.把一個(gè)數(shù)組的全部元素傳送給一個(gè)過(guò)程,應(yīng)將數(shù)組名分別寫入形參列表中,并略去數(shù)組的上下界,但括號(hào)不能省略。PrivateSubSort(a()Assingle)……EndSub其中形參“a()”即為數(shù)組。vb子程序和函數(shù)ppt課件2021/3/26218.6高級(jí)用法(數(shù)組做為參數(shù))VisualBas2.被調(diào)過(guò)程可通過(guò)Lbound和Ubound函數(shù)確定實(shí)參數(shù)組的上、下界。3.當(dāng)用數(shù)組作形參時(shí),對(duì)應(yīng)的實(shí)參必須也是數(shù)組,且類型一致。4.實(shí)參和形參結(jié)合是按地址傳遞,即形參數(shù)組和實(shí)參數(shù)組共用一段內(nèi)存單元。例如:定義了實(shí)參數(shù)組b(1to8),給它們賦了值,調(diào)用Sort()函數(shù)過(guò)程的形式如下:Sortb()或CallSort(b())實(shí)參數(shù)組后面的括號(hào)可以省略,但為便于閱讀,建議一般不要省略為好。vb子程序和函數(shù)ppt課件2021/3/26222.被調(diào)過(guò)程可通過(guò)Lbound和Ubound函數(shù)確定實(shí)參數(shù)組調(diào)用時(shí)形參數(shù)組a和實(shí)參數(shù)組b虛實(shí)結(jié)合,共用一段內(nèi)存單元,如下所示。因此在Sort()過(guò)程中改變數(shù)組a的各元素值,也就相當(dāng)于改變了實(shí)參數(shù)組b中對(duì)應(yīng)的元素的值,當(dāng)調(diào)用結(jié)束時(shí),形參數(shù)組a成為無(wú)定義。

b(1)b(2)b(3)b(4)b(5)b(6)b(7)b(8)a(1) a(2)a(3)a(4)a(5)a(6)a(7)a(8)參數(shù)為數(shù)組時(shí)虛實(shí)結(jié)合示意圖例6.7改寫上章例5.3的排序程序,分別將排序用子過(guò)程Sort(),產(chǎn)生N個(gè)隨機(jī)整數(shù)用子過(guò)程GetData(),輸入N個(gè)數(shù)組元素用PrData()子過(guò)程來(lái)完成。vb子程序和函數(shù)ppt課件2021/3/2623調(diào)用時(shí)形參數(shù)組a和實(shí)參數(shù)組b虛實(shí)結(jié)合,共用一段內(nèi)存單元,如下補(bǔ)充例題:編寫判斷一個(gè)整數(shù)是不是素?cái)?shù)寫函數(shù)過(guò)程。如果給定的整數(shù)是素?cái)?shù),則返回邏輯值True,否則返回False

PrivateFunctionPrime(nAsInteger)AsBooleanDimk%,YesAsBooleanYes=TrueFork=2ton\2IFnmodk=0thenYes=False:ExitForNextkPrime=Yes‘給函數(shù)名賦值,作為函的返回值EndFunction如何調(diào)用該函數(shù)呢?使用該函數(shù),編一驗(yàn)證哥德巴赫猜想。vb子程序和函數(shù)ppt課件2021/3/2624補(bǔ)充例題:編寫判斷一個(gè)整數(shù)是不是素?cái)?shù)寫函數(shù)過(guò)PrivateSubForm_Click()Dimn%,n1%,n2%n=Val(InputBox("輸入大于6的正整數(shù)"))Forn1=3ton\2step2'讓n1從3開(kāi)始分解n2=n-n1'求得n2‘如果n1和n2都是素?cái)?shù),則打印輸出Ifprime(n1)Andprime(n2)thenPrintn&"="&n1&"+"&n2ExitFor'結(jié)束循環(huán)EndifNextn1EndSubvb子程序和函數(shù)ppt課件2021/3/2625PrivateSubForm_Click()vb子程序和Fori=1Ton-1p=iForj=i+1TonIfa(p)>a(j)Thenp=jNextjtemp=a(i)a(i)=a(p)a(p)=tempNexti選擇法排序(升序)的VB程序:如何寫一個(gè)排序的VB過(guò)程?補(bǔ)充例題2:排序子過(guò)程vb子程序和函數(shù)ppt課件2021/3/2626Fori=1Ton-1選擇法排序(升序)的VBPrivateSubSort(a()Assingle)Dimi%,j%,p%,n%,temp!n=Ubound(a)Fori=1Ton-1p=iForj=i+1TonIfa(p)>a(j)Thenp=jNextjtemp=a(i)a(i)=a(p)a(p)=tempNextIEndSubvb子程序和函數(shù)ppt課件2021/3/2627PrivateSubSort(a()Assing8.7過(guò)程的嵌套和遞歸調(diào)用8.7.1過(guò)程的嵌套

在程序中調(diào)用一子過(guò)程,而在子過(guò)程中又調(diào)用另外的子過(guò)程,這種程序結(jié)構(gòu)稱為過(guò)程的嵌套。過(guò)程的嵌套調(diào)用執(zhí)行過(guò)程如下圖:vb子程序和函數(shù)ppt課件2021/3/26288.7過(guò)程的嵌套和遞歸調(diào)用8.7.1過(guò)程的嵌套8.7.2過(guò)程的遞歸調(diào)用用自身的結(jié)構(gòu)來(lái)描述自身,稱遞歸。例如,對(duì)階乘的定義:VisualBasic允許在一個(gè)Sub子過(guò)程和Function過(guò)程的定義內(nèi)部調(diào)用自己,即遞歸Sub子過(guò)程和遞歸Function函數(shù)。例8.8編求階乘fac(n)=n!的遞歸函數(shù)vb子程序和函數(shù)ppt課件2021/3/26298.7.2過(guò)程的遞歸調(diào)用用自身的結(jié)構(gòu)來(lái)描述自身,稱遞歸PrivateFunctionfac(nAsInteger)AsIntegerIfn=1Then fac=1Else fac=n*fac(n-1)EndIfEndFunctionPrivateSubForm_Click() Print“fac(4)=”;fac(4)EndSub程序的遞歸過(guò)程:vb子程序和函數(shù)ppt課件2021/3/2630PrivateFunctionfac(nAsInte說(shuō)明:遞歸處理一般用棧來(lái)實(shí)現(xiàn),分遞推和回歸兩個(gè)過(guò)程,如上圖所示。遞推過(guò)程:每調(diào)用一次自身,把當(dāng)前參數(shù)(形參、局部變量、返回地址等)壓入棧,直到遞歸結(jié)束條件成立?;貧w過(guò)程:然后從棧中彈出當(dāng)前參數(shù),直到???。遞歸算法設(shè)計(jì)簡(jiǎn)單,解決同一問(wèn)題,使用遞歸算法消耗的機(jī)時(shí)和占據(jù)的內(nèi)存空間要比使用非遞歸算法大。使用遞歸算法必須要滿足以下的遞歸條件:(1)存在遞歸結(jié)束條件及結(jié)束時(shí)的值;(2)能用遞歸形式表示,且遞歸向終止條件發(fā)展。vb子程序和函數(shù)ppt課件2021/3/2631說(shuō)明:vb子程序和函數(shù)ppt課件2021/3/26318.8應(yīng)用舉例8.8.1查找問(wèn)題例8.11使用順序查找法,在一組數(shù)中查找某給定的數(shù)x算法設(shè)計(jì):設(shè)一組數(shù)據(jù)存放在數(shù)組a(1)---a(n)中,待查找的數(shù)據(jù)放在x中,把x與a數(shù)組中的元素從頭到尾一一進(jìn)行比較查找。用變量p表示a數(shù)組元素下標(biāo),p初值為1,使x與a(p)比較,如果x不等于a(p),則使p=p+1,不斷重復(fù)這個(gè)過(guò)程;一旦x等于a(p)則退出循環(huán);另外,如果p大于數(shù)組長(zhǎng)度,循環(huán)也應(yīng)該停止,則可由以下語(yǔ)句來(lái)實(shí)現(xiàn)它。ForP=1tonIFa(p)=xthenExitForNextPvb子程序和函數(shù)ppt課件2021/3/26328.8應(yīng)用舉例8.8.1查找問(wèn)題例8.11使用順序下面編寫一查找函數(shù)Find(),若找到x則返回下標(biāo)值,找不到返回0PrivateFunctionFind(a()AsSingle,xAsSingle)AsIntegerDimn%,p%,m%m=Lbound(a)n=Ubound(a)ForP=mtonIFa(p)=xthenExitForNextPIfp>nthenp=0Find=pEndFunction

vb子程序和函數(shù)ppt課件2021/3/2633下面編寫一查找函數(shù)Find(),若找到x則返回下標(biāo)值,找不到例8.12使用折半查找法,在一批有序數(shù)列中查找給定的數(shù)x。分析:設(shè)n個(gè)有序數(shù)(從小到大)存放在數(shù)組a(1)----a(n)中,要查找的數(shù)為x。用變量bot、top、mid分別表示查找數(shù)據(jù)范圍的底部(數(shù)組下界)、頂部(數(shù)組的上界)和中間,mid=(top+bot)/2,折半查找的算法如下:(1)x=a(mid),則已找到退出循環(huán),否則進(jìn)行下面的判斷;(2)x<a(mid),x必定落在bot和mid-1的范圍之內(nèi),即top=mid-1;(3)x>a(mid),x必定落在mid+1和top的范圍之內(nèi),即bot=mid+1;(4)在確定了新的查找范圍后,重復(fù)進(jìn)行以上比較,直到找到或者bot<=top。vb子程序和函數(shù)ppt課件2021/3/2634例8.12分析:設(shè)n個(gè)有序數(shù)(從小到大)存放在數(shù)組a(1)8.8.2插入問(wèn)題例8.13把一個(gè)給定數(shù)插到有序數(shù)列中,插入后數(shù)列仍然有序分析:設(shè)n個(gè)有序數(shù)(從小到大)存放在數(shù)組a(1)—a(n)中,要插入的數(shù)x。首先確定x插在數(shù)組中的位置p;(可由以下語(yǔ)句實(shí)現(xiàn))ReDimPreservea(n+1)'讓數(shù)組長(zhǎng)度增加1,以便存放插入的數(shù)p=1dowhilex>a(p)andp<=np=p+1loopvb子程序和函數(shù)ppt課件2021/3/26358.8.2插入問(wèn)題例8.13把一個(gè)給定數(shù)插到有序數(shù)列中a(p)—a(n)元素向后順移一個(gè)位置以空出a(p)元素放入x.。(可由以下語(yǔ)句實(shí)現(xiàn))fori=ntopstep-1a(i+1)=a(i)nextia(p)=x將其寫成一插入函數(shù)(教材Pg.154)vb子程序和函數(shù)ppt課件2021/3/2636a(p)—a(n)元素向后順移一個(gè)位置以空出a(p)元素放入VB提供了上百種內(nèi)部函數(shù)(庫(kù)函數(shù)),要求掌握這些常用函數(shù)的功能及使用。調(diào)用方法:

函數(shù)名(參數(shù)列表)有參函數(shù)函數(shù)名無(wú)參函數(shù)說(shuō)明:

(1)使用庫(kù)函數(shù)要注意參數(shù)的個(gè)數(shù)及其參數(shù)的數(shù)據(jù)類型(2)要注意函數(shù)的定義域(自變量或參數(shù)的取值范圍)例如:sqr(x)要求:x>=0(3)要注意函數(shù)的值域。如:exp(23773)的值就超出實(shí)數(shù)在計(jì)算機(jī)中的表示范圍。8.9常用內(nèi)部函數(shù)vb子程序和函數(shù)ppt課件2021/3/2637VB提供了上百種內(nèi)部函數(shù)(庫(kù)函數(shù)),要求掌握這些常1.數(shù)學(xué)函數(shù)常用的數(shù)學(xué)函數(shù)見(jiàn)P121表8-1所示Abs(N)Cos(N)Sin(N)Exp(N)Log(N)Sqr(N)Rnd[(N)]Sgn(N)說(shuō)明:(1)在三角函數(shù)中的自變量是以弧度為單位。如:sin300sin(3.14159/180*30)(2)Rnd函數(shù)返回0~1(包括0和不包括1)之間的雙精度隨機(jī)數(shù)。若要產(chǎn)生1-100的隨機(jī)整數(shù):Int(Rnd*100)+1

提問(wèn):怎樣產(chǎn)生[N,M]區(qū)間的隨機(jī)數(shù)?

vb子程序和函數(shù)ppt課件2021/3/26381.數(shù)學(xué)函數(shù)vb子程序和函數(shù)ppt課件2021/2.轉(zhuǎn)換函數(shù)常用的轉(zhuǎn)換函數(shù)見(jiàn)p123表8-4所示說(shuō)明:(1)要區(qū)別兩個(gè)取整函數(shù)int()和fix()Fix(N)為截?cái)嗳≌?,即去掉小?shù)后的數(shù)。Int(N)不大于N的最大整數(shù)。N>0與int(N)相同,當(dāng)N<0時(shí),int(N)與fix(N)-1相等。例如:Fix(9.59)=9,Int(9.59)=9Fix(-9.59)=-9,Int(-9.59)=-10

思考:如何實(shí)現(xiàn)四舍五入取整?(2)Asc("Abcd")

值為:65(只取首字母的Ascii值)

(3)Val("abc123")值為:0,Val("1.2sa10")值為1.2注意:Val()函數(shù)只將最前面的數(shù)字字符轉(zhuǎn)換為數(shù)值。vb子程序和函數(shù)ppt課件2021/3/26392.轉(zhuǎn)換函數(shù)vb子程序和函數(shù)pp

溫馨提示

  • 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)論