Visual Basic 程式设计幻灯片.pptVIP

  • 1
  • 0
  • 约 31页
  • 2017-05-31 发布于山西
  • 举报
Visual Basic 程式设计幻灯片

Visual Basic 程式設計 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所 第五章 副程式與函式 副程式 函式 傳值與傳址 遞迴 訊息對話盒 為什麼要有副程式? 程式中有許多重覆的動作 如下頁的例子 思考方向: 將某獨立、常重覆的部份發包出去 營養午餐與外叫便當的例子 為什麼要有副程式?(cont’d) 副程式-Subroutine 在程式編輯器輸入 Private Sub printStar() 副程式-Subroutine(cont’d) 使用工具列 選擇程式編輯器,按Tool/Add Procedure 第一個副程式 函式-Function 函式:有傳回值的副程式 函式-Function(cont’d) 遞迴-Recursion 在函式,呼叫自己 要確定程式會停止 遞迴-Recursion(cont’d) Sum(5)=Sum(4)+5 費式數列-Fibonacci Series 0, 1, 1, 2, 3, 5, 8, …… 請問第100項為多少? 用迴圈 用遞迴 費式數列-使用迴圈 費式數列-使用遞迴 階乘 離開副程式與函式 Exit Sub Exit Function 5!=1*2*3*4*5 求某數的階乘 使用迴圈 使用遞迴 參數傳遞 [Option][ByVal|ByRef][ParamArray] 變數名[()] As 型別 [預設值] ByVal (By Value) 傳值 ByRef (By Reference) 傳址 預設值 傳值v.s.傳址 傳值v.s.傳址(cont’d) ByVal ByRef 預設值 預設值(cont’d) 如果使用Optional模式,之後的變數都要給定預設值 不確定個數的參數 使用ParamArray VB會產生一個名為陣列名的陣列,其每個成員的型別為Variant 不確定個數的參數(cont’d) 不確定個數的參數(cont’d) 注意 使用ParamArray時,其陣列成員的型別為Variant 不可和Optional同時使用 訊息對話盒 MsgBox(訊息,[風格],[標題],[……]) 訊息對話盒(cont’d) 按鈕的風格 訊息對話盒(cont’d) 圖示 對話盒形式 訊息對話盒(cont’d) 風格 按鈕風格+圖示+對話盒形式 vbOK+vbInformation+vbApplicationModal 以副程式的方式使用 MsgBox “訊息”…… Call MsgBox(“訊息”……) 以函式的方式使用 MsgBox(“訊息”……) 訊息對話盒(cont’d) 由傳回值得知使用者按下那個鍵 輸入對話盒 InputBox(“訊息”,[“標題”],[“預設值”]……) 回傳值是使用者輸入的字串 回傳值=InputBox(“訊息”,“標題”,“沒打”) 輸入對話盒(cont’d) 習題 寫一程式利用InputBox輸入學生的平常成績、期中考成績、期末考成績,假設平常成績佔40%、期中考成績與期末考成績各佔30%,然後算出其學期成績,並以MsgBox顯示出來。 * * * ** *** **** **** *** ** * For i=1 to 8 If (i=4) Then For j=1 to i Print “*”; Next j Else For j=1 to 9-i Print “*”; Next j End if Print Next i For i=1 to 8 If (i=4) Then 畫i個* Else 畫9-i個* End if Print Next i 化簡 [Private|Public|Static] Sub 副程式名 ([參數]) 程式碼 End Sub Private Sub printStar (num As Integer) Dim i As Integer For i=1 to num Print “*”; Next I Print End Sub For i=1 to 8 If (i=4) Then 1.[printStar i] 2.[Call printStar(i)] Else 1.[printStar 9-i] 2.[Call printStar(9-i)] End if Print Next i 副程式呼叫方式: Call 副程式名(參數) 副程式名 參數 VB會自動宣告num [Private|Public|Static] Function 函式名 _ ([參數]) [

文档评论(0)

1亿VIP精品文档

相关文档