版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
在VisualBasic中,通常所說的過程一般分為三種:子過程(Sub過程)、函數(shù)過程(Function過程)和屬性過程(Property過程)。其中,前兩種是最常用的過程,過程是一個VisualBasic語句塊,包含在語句(如Sub、Function等)和匹配的End之間VisualBasic中的所有可執(zhí)行語句均必須位于某個過程內(nèi)其中,Sub過程執(zhí)行操作但并不將值返回給調(diào)用代碼,而Function過程將值返回給調(diào)Sub過程和Function掌握Sub掌握Function5子過程子任務(wù)分別完成一部分功能完成子任務(wù)的那個部分就是過程。過程就是當某個發(fā)Sub[Public|Private][Static]Sub過程名[(參數(shù)列表[ExitSub][Public|Private][Static]Sub過程名[(參數(shù)列表[ExitSub]EndPrivate該子過程為私有過程只能被本模塊(或所屬對象)的其他過程所引ExitSub參數(shù)列表的格式為:[ByVal|ByRef]變量名[()][As數(shù)據(jù)類型],ByVal是指參遞變量的給Sub過程,然后Sub過程通過去返回變量。系統(tǒng)默認參數(shù)是Sub過程的方法,即在窗體模塊中創(chuàng)建Sub過程。5.1】VisualBasicSubSub1步VisualBasic集成開發(fā)環(huán)境下,在菜單欄上選擇【文件】→【新建工程】命2步【代碼窗口】圖5.1新建工 圖5.2代碼編輯窗第3步在菜單欄上選擇【工具】→【添加過程】命令,打開“添加過程”框,在45.4所示的子過程QueueBtoSPublicSubQueueBtoS()EndSub之間添加圖5.3添加過 圖5.4顯示代碼標識5步QueueBtoS()的括號內(nèi)輸入“ByValaAsIntegerByValbAsIntegerByValcAsIntegerQueueBtoS過程添加過程參數(shù),然后在其過程中添加如下代碼:PublicPublicSubQueueBtoS(ByValaAsInteger,ByValbAsInteger,ByValcAsDimTempAs Ifa<bThenTemp=aa=b=TempEndIfIfb<cThenTemp=bb=c=EndIfIfa<bThenTemp=aa=b=TempEndIfPrinta,b,EndQueueBtoS過程的代碼添加完畢。在下一節(jié)中將介紹如何調(diào)用已建立SubSub通常,調(diào)用Sub過程主要有以下兩種格式:格式一:CallSub過程名(參數(shù))格式二:Sub5.2】VisualBasicSub1步QueueBtoS過程需要在另外的過程中進行。單擊對象下拉列表按鈕,在彈出的下拉列表上選擇“Form5.5所示。5.5選擇Load代碼塊,如圖5.6所示圖5.6顯示過程代第3步在Form的Load過程中調(diào)用QueueBtoS過程即在PrivateSubEndSubDimDimxAsInteger,yAsInteger,zAsIntegerx=InputBox("請輸入X","提示")yInputBox("請輸入Y提示zInputBox("請輸入Z提示CallQueueBtoS(x,y DimDimxAsInteger,yAsInteger,zAsIntegerx=InputBox("請輸入X","提示")yInputBox("請輸入Y提示zInputBox("請輸入Z提示QueueBtoSxy, 第4步運行程序,屏幕上彈出如圖5.7所示的輸入框,提示輸入X值,這里輸YZ值。圖5.7輸入X 圖5.8輸入Y5Z值“9”后單擊【確定】按鈕,返回窗體,在窗體上打印輸入了圖5.9顯示過程代 圖5.10打印輸出排列數(shù)程可以調(diào)用自己來完成某個特定的任務(wù)。Sub過程不能嵌套,即在Sub過程中不能再建立FunctionSub過程不一樣之處。Function過程通常用于處理計算任務(wù)。FunctionFunction語句和FunctionSub過程不一樣之處。Function過程通常用于處理計算任務(wù)。在VisualBasic中不僅可以使用內(nèi)部函數(shù),而且還能使用Function語句編寫自己的Function過程,即創(chuàng)建自己的特定用法的函數(shù)。首先來介紹Function過程的創(chuàng)建方法,F(xiàn)unction過程的法結(jié)構(gòu)如下:[Public|Private][Static]Function[Public|Private][Static]Function[(參數(shù)列表As數(shù)據(jù)類型][ExitFunction]EndPublic、Private和Static,與SubExitFunction過程名為函數(shù)過程的名稱,要求長度過255個字符參數(shù)列表的格式為:[ByVal|ByRef]變量名[()][As數(shù)據(jù)類型],ByVal是指參遞變量的給Sub過程,然后Sub過程通過去返回變量。系統(tǒng)默認參數(shù)是As數(shù)據(jù)類型返回結(jié)果的數(shù)據(jù)類型EndFunction1步VisualBasic集成開發(fā)環(huán)境下,在菜單欄上選擇【文件】→【新建工程】命2步在菜單欄上選擇【工程】→5.113步Module1,5.12所示。5.124步Module1選項,然后在菜單欄上選擇【工5.13所示。5.135步GouGuPublicSubGouGu()EndSub5.14第6步為GouGuByValaAsDoubleByValbAsDouble”PublicPublicFunctionGouGu(ByValaAsDoubleByValbAsDoubleAsDoubleGouGu=Sqr(a*a+b*b) '使用了系統(tǒng)內(nèi)部平方根Sqr函數(shù)EndGouGuCallFunction過程名(參數(shù)Function變量Function過程名(參數(shù)注意:注意:前面兩種方式不能返回函數(shù)值,與SubFunction過程5.4】GouGu過程,介紹Function過程的典型調(diào)用方法。Function過程的具體步驟如下:第1步Form1窗體,使其呈狀態(tài),如圖5.15所示。步體的Load中,如圖5.16所示圖5.15選定窗 圖5.16進入Load3步PrivateSubForm_Load()EndSubDimDimcAsDoublexAsDouble,yAsDoublex=InputBox("請輸入X","提示")yInputBox("請輸入Y提示")c=GouGu(x,y)PrintDimxAsDouble,yAsDoubleDimxAsDouble,yAsDoublexInputBox("請輸入X提示yInputBox("請輸入Y提示PrintGouGu(x,第4步運行程序,屏幕上彈出如圖5.17所示的輸入框,提示輸入一直角邊X值5.18所示。圖5.17輸入直角邊 圖5.18輸入直角邊5.19所示,基本實現(xiàn)勾股定理計算斜邊長的目的。5.19FunctionFunctionWhatForLunch(WeekDayAsString,HourAsInteger)AsIfWeekDay="星期六EndIfHour>2EndIfEnd'14容。將變量傳遞給過程時,在過程中可改變變量的值。VisualBasic中默認的傳遞參數(shù)方式以給參數(shù)傳遞一個表達式。VisualBasic計算表達式還會按要求的類型將值傳遞給參數(shù)。Sub過程的SubSub VisualBasicEndSubPrivatePrivateSubForm_Load()Price=1000Total=CostPlusInterestPrice,PrintPrice;"at5%Interestis";TotalEndSubCostPlusInterest過程:PriceTotalPrintTotalPrice參數(shù)在過程中也被更新,因此程序運行時5.20所示,沒有達到預(yù)期效果。5.20ByVal關(guān)鍵字參數(shù)是按值來傳遞的。【例5.6】若對【例5.5】代碼進行修改,將Sub過程的更改如下SubSubCostPlusInterest(ByValCost,Total)Cost=Cost*1.05Total=End5.21PrivateSubForm_Load()Price=1000Total=CostPlusInterest(Price),PrintPrintPrice;"at5%Interestis";TotalEndSubByVal(按值傳送)。而為了提高效率,字符串和數(shù)組應(yīng)通過地址傳送。此外,ByVal后,程序不能正確運行,也很容易查出錯在什Sub|FunctionSub|Function(ParamArray數(shù)組名PrivatePrivateSubMulti(ParamArrayNumbers())n=1ForEachxInNumbersn=n*xNextxPrintnEndPrivateSubForm_Load()Multi1,2CallMulti(1,2,End5.22PrivatePrivateSubSub1CallSubEndPrivatePrivateSubSub1CallEndPrivateSubCallEnd使用過程遞歸調(diào)用求解PublicPublicFunctionFac(ByValnAsInteger)AsLongIfn=1ThenFac=1Fac=Fac(n-1)*nEndIfEndPrivateSubForm_load()DimsumAsLongDimiAsIntegersum=0Fori1To sum=sum+Fac(i)NextiPrintEnd5.23Function過程對于計算階乘、級數(shù)和指數(shù)運算有良好效果。遞歸結(jié)構(gòu)雖然簡DimintAAsIntegerPrivateDimintAAsIntegerPrivateSubDimintBAsIntegerDimintDAsIntegerintA=2intB=intD=fun(intA,fun(intA,intB))PrintintA,intB,intDEndPrivatePrivateFunctionFun(intKAsInteger,intNAsInteger)AsIntegerPrintintK,intNintK=intN+intA+intKintN=intK+intA+intNFun=intK+intNPrintEndintAintK指向同一內(nèi)存單元,intBintN指向同一內(nèi)存單元,因此第1步執(zhí)行:輸出intK和intN,即輸出第一行 2步執(zhí)行:intK=intN+intA+intKintK=3+2+2=7intA7;3步執(zhí)行:intN=intK+intA+intNintN=7+7+3=17intB17;4步執(zhí)行:Fun=intK+intNFun=24;5步6步執(zhí)行:Fun(intA,Fun())intA7,F(xiàn)un()第7步執(zhí)行:輸出intK和intN,即輸出第三行 8步執(zhí)行:intK=intN+intA+intKK=24+7+7=38intA9步執(zhí)行:intN=intK+intA+intN10步執(zhí)行:Fun=intK+intN11步12步intA、intBintD,即輸出第五行:3817138;5.24所示。5.24VisualBasic自帶了許多函數(shù),可供用戶直接調(diào)用。常用的函數(shù)主要有類型轉(zhuǎn)換函數(shù)、 型,那么不同數(shù)據(jù)類型之間需要進行轉(zhuǎn)換,VisualBasic提供了多種類型轉(zhuǎn)換函數(shù),其常用5.10】CStr函數(shù)實現(xiàn)在窗體上輸出“100-100”的顯示效果。PrintPrint"100-CStr函數(shù)便發(fā)揮其優(yōu)CStr函數(shù)實現(xiàn)示例PrintPrintCStr(100)&CStr(-VisualBasicPrivatePrivateSubForm_Click()Print"100-100"Print100–PrintCStr(100)&CStr(-100)EndSub5.25值型,在VisualBasicSin(Number)Double或任何有Cos(Number)Double或任何Tan(Number)Double或任何Atn(Number)Sqr(Number)Number是Double或任何有效的大于或等于0的數(shù)值表達式。Exp(Number)e(自然對數(shù)的底)Log(Number)Abs(Number)Sgn(Number)——該函數(shù)用于返回表示數(shù)字符號的整數(shù),Number參數(shù)的符0,則Sgn0Number0Sgn返回-1。Rnd(Number)——該函數(shù)用于返回小于1但大于或等于0的單精度浮點0,則得到最近生成的數(shù)。Rnd,具體代碼如下:PrivateSubForm_Click()Form1.FontSizePrivateSubForm_Click()Form1.FontSize=Rnd()*30Print"VisualBasic"End5.26Mid(字符串,p,n),該函數(shù)表示從位置pn【例5.12】通過一個字符串解析游戲來介紹典型字符串函數(shù)的應(yīng)用。其具體代碼編寫PrivatePrivateSubDimstrAAsstrAInputBox請輸入需要解析的字符串提示")'MsgBox1.字符串中有&Len(strA&個字符串解析結(jié)果MsgBox"2.字符串左邊 符是"&Left(strA,4),,"解析結(jié)果'顯示字符串 MsgBox3.字符串右邊的三個字符是&Right(strA3解析結(jié)果MsgBox4.字符串中所有字母顯示為大寫:&UCase$(strA解析結(jié)果End5.27 圖5.28結(jié)果 圖5.29結(jié)果 圖5.30結(jié)果 圖5.31輸入字符VisualBasic中,日期/Date、Time、Now、Year、Month、Weekday、Day、HourSecond等函數(shù),其各函數(shù)的意義介紹如下:Print"Print"現(xiàn)在的年份是:"&Year(Date)Print"現(xiàn)在的月份是:"&Month(Date)Print"今天是星期幾:"&Weekday(Date)Print今天是這個月第幾天:&Day(Date)Print"現(xiàn)在的時間(小時)是:"&Print現(xiàn)在的時間(分鐘)是:&Print現(xiàn)在的時間(秒鐘)是:EndSubPrivateSubPrint現(xiàn)在的完整日期時間是:&Now()Print"現(xiàn)在的日期是:"&DatePrint現(xiàn)在的時間是:&5.32所S函
5.32 S擴展名為COM、EXE、BAT或PIF,其他文件不能用S [0]vbHide[1]vbNormalFocus[2]vbMinimizedFocus[3] izedFocus[4]vbNormalNoFocus——窗口被還原到最近使用的大小和位置,而當前的[5]vbMinimizedNoFocus 函數(shù)調(diào)用某個應(yīng)用程序并成功執(zhí)行后,會返回一個任務(wù)標識(TaskID),它是執(zhí)行 函數(shù)是以異步方式來執(zhí)行其他程序的,也就是說,用S 有執(zhí)行完,或已經(jīng)執(zhí)行S Rundll32.exeSVisualBasic程序擁有用其他方法難以甚至無法實現(xiàn)的效果:以在程序中執(zhí)行重啟電腦為例,傳統(tǒng)的方法需要用戶在VisualBasic工程中先建立一個模組,然后寫入WinAPI的,最后才能在程序中調(diào)用。而使用S函數(shù)只需要一行代碼: “rundll32.exeuser.exe,restartwindows” Rundll32.exe如表5.1所示的是有關(guān)Rundll的有用的指令,供用戶在程序設(shè)計中。表5.1S和Rundll32技巧應(yīng)序描1命令列:rundll32.exes功能:2命令列:rundll32.exe 功能:顯示“控制面板-輔助選項-鍵盤”3命令列:rundll32.exe 功能:顯示“控制面板-輔助選項-聲音”4命令列:rundll32.exe 功能功能:顯示“控制面板-輔助選項-顯示”序序描5命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-輔助選項-鼠標”6命令列:rundll32.exes32.dll,Control_RunDLLsysdm.cpl功能:執(zhí)行“控制面板-添加新硬體”7命令列:rundll32.exes32.dll,SHHelpShortcuts_RunDLL功能:執(zhí)行“控制面板-添加 8命令列:rundll32.exes32.dll,Control_RunDLL功能:“控制面板-添加/刪除程式-安裝/卸載”9命令列:rundll32.exes32.dll,Control_RunDLL功能:“控制面板-添加/刪除程式-安裝Windows”命令列:rundll32.exes32.dll,Control_RunDLL功能:“控制面板-添加/刪除程式-啟動盤”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“日期與時間”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“時區(qū)”命令列rundll32.exe功能:顯示“新建撥號連接”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“顯示屬性-背景”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“顯示屬性-螢屏保護”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“顯示屬性-外觀”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示顯示“顯示屬性-屬性”命令列:rundll32.exes32.dll,SHHelpShortcuts_RunDLL功能:顯示W(wǎng)indows的“字體 命令列:rundll32.exes32.dll,Control_RunDLLmain.cpl功能:同樣是顯示W(wǎng)indows的“字體 夾命令列rundll32.exemshtml.dll,PrintHTMLHTML文檔功能:列印HTML命令列:rundll32.exes32.dll,Control_RunDLLmain.cpl功能:顯示“控制面板-滑鼠”命令列:rundll32.exes32.dll,Control_RunDLLmain.cpl功能:“控制面板-鍵盤屬性-速度”序序描命令列:rundll32.exes32.dll,Control_RunDLLmain.cpl功能:“控制面板-鍵盤屬性-語言”命令列:rundll32.exes32.dll,Control_RunDLLmain.cpl功能:顯示W(wǎng)indows“字體 命令列:rundll32.exes32.dll,Control_RunDLLmain.cpl功能:顯示“控制面板-輸入法屬性-輸入法”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板- 命令列:rundll32.exes32.dll,Control_RunDLLmmsys.cpl功能:顯示“控制面板-聲音”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-網(wǎng)路”命令列:rundll32.exes32.dll,Control_RunDLLodb功能:顯示ODBC32命令列:rundll32.exes32.dll,OpenAs_RunDLL功能:顯示指 命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板 命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-電源管理屬性”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-區(qū)域設(shè)置屬性-區(qū)域設(shè)置”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-區(qū)域設(shè)置屬性-數(shù)字”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-區(qū)域設(shè)置屬性-貨幣”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-區(qū)域設(shè)置屬性-時間”命令列:rundll32.exes32.dll,Control_RunDLL功能:顯示“控制面板-區(qū)域設(shè)置屬性-日期”命令列:rundll32.exes32.dll,Control_RunDL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)物業(yè)展架租賃合同范本(2篇)
- 實習教師教學能力培養(yǎng)方案
- IT設(shè)備維護服務(wù)合作協(xié)議
- 班主任工作總結(jié):心理輔導的重要性
- 襄陽2024年05版小學四年級英語第2單元暑期作業(yè)
- 智能建筑物業(yè)管理服務(wù)方案
- 某電信行業(yè)安全生產(chǎn)事故應(yīng)急預(yù)案
- 2024-2025學年河南省天一大聯(lián)考高三上學期檢測(二)生物試題及答案
- 學校物業(yè)管理服務(wù)合同
- 健康管理中心質(zhì)量監(jiān)測制度
- 河南省商丘市2023-2024學年高一上學期期中考試化學試題(含答案)
- 墓地長期租用合同模板
- 2024年心理咨詢師基礎(chǔ)知識考試題庫(濃縮500題)
- 物 理第四章 第1節(jié)光沿直線傳播課件-2024-2025學年八年級物理(人教版2024)
- 2024年銀行考試-反洗錢考試近5年真題集錦(頻考類試題)帶答案
- 2025年九省聯(lián)考新高考 語文試卷(含答案解析)
- 工業(yè)視覺系統(tǒng)運維員-國家職業(yè)標準(2023年版)
- 大概念統(tǒng)攝下跨學科課程的開發(fā)與實施
- 鋼結(jié)構(gòu)件竣工環(huán)保驗收監(jiān)測調(diào)查報告
- 廣西南寧市青秀區(qū)第十四中學2024-2025學年七年級上學期10月月考數(shù)學試題(無答案)
- 凈水設(shè)備維保合同模板
評論
0/150
提交評論