Ch05VBNET的程序与函数解读课件_第1页
Ch05VBNET的程序与函数解读课件_第2页
Ch05VBNET的程序与函数解读课件_第3页
Ch05VBNET的程序与函数解读课件_第4页
Ch05VBNET的程序与函数解读课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ch05 VB.NET的程序與函數網頁程式設計第1页,共45页。大綱模組化程式設計VB.NET的程序與函數程序與函數的變數範圍VB.NET常用的內建函數2第2页,共45页。模組化的基礎模組化就是把一件大型的工作切割成無數的小工作,切割工作屬於一種結構化分析的範疇,我們最常使用的是由上而下的設計方法,這也是我們常用的程式設計方法。由上而下的設計方法是當我們面對問題時,先考慮整個問題將它分解成數個大模組,再對於這每一個大模組,一一分割成數個小模組,如此一直細分,最後等這些細分的小問題被一一解決後,再將它們組合起來,如此一層層的向上爬,完成整個設計。3第3页,共45页。程序. . . . .MySu

2、b(). . . . .MySub(). . . . .MySub(). . . . .程序呼叫Sub MySub(). . . . .End Sub程序每次呼叫均執行相同的程式碼4第4页,共45页。程序(續)優點:程序具有重複使用性程序可使程式更精簡加上程序後,程式的可讀性會增加將程式拆成數個程序後,程式較好偵錯、修改、維護缺點:程序使得程式的執行速度減慢,因為多了一道呼叫的手續5第5页,共45页。程序(續)VB2005提供了下列幾種程序:Sub程序(副程式):執行某些動作但沒有傳回值Function程序(函式):執行某些動作而且有傳回值Property程序:取得或設定物件的屬性Operat

3、or程序:針對使用者自訂的類別或結構重新定義標準運算子的動作Generic程序:定義一個或多個型別參數,每次呼叫Generic程序時可以傳遞不同型別的引數給它事件程序:為了回應使用者或系統所觸發的事件時才會被呼叫6第6页,共45页。VB.NET的Sub程序與函數Sub程序和函數可以將程式中一些常用的共同程式碼獨立成一個區塊,以便建立模組化程式設計,以便在程式中重複呼叫程序和函數,函數和Sub程序的差別在於函數有傳回值,而Sub程序沒有。在ASP.NET Sub程序和函數一定需要使用標籤的寫法,雖然可以置於任何位置,但是,通常都是置於程式檔案的開頭。7第7页,共45页。建立Sub程序-建立Sub

4、程序是VB.NET程式區塊,使用Sub和End Sub包圍,程序沒有傳回值,例如:PrintTitle()程序,其程式碼如下所示:Sub PrintTitle() Response.Write(“建立程序Sub) Response.Write()End sub而PrintTitle()程序放在區8第8页,共45页。建立程序Sub-呼叫因為沒有傳回值,當呼叫Sub程序時,我們是使用Call指令,然後加上程序名稱進行呼叫,如下所示:Call PrintTitleSub程序呼叫因為程序並沒有參數,所以不使用Call指令也可以,如下所示:PrintTitle()也是呼叫程序PrintTitle(),因

5、為沒有參數,程序的括號有沒有都一樣。9第9页,共45页。範例建立程序Sub 建立程序顯示標題文字Sub PrintTitle() 顯示標題文字 Response.Write(建立程序Sub) Response.Write()End Sub 顯示註腳文字Sub PrintFooter() 顯示註腳文字 Response.Write(c)Copyright by 陳會安)End Sub這個ASP.NET程式使用程序建立文件的標題文字10第10页,共45页。建立函數Function-建立Function函數改為使用Function和End Function包圍,不過函數擁有傳回值,傳回方式是使用Re

6、turn指令傳回函數值,如下所示:Function One2Ten() Dim i, total As Integer total = 0 For i = 1 To 10 Step 1 total = total + i Next i Return totalEnd Function11第11页,共45页。建立函數Function-傳回值傳回值是使用Return指令,如下所示:Return total程式碼Return指令後,就是函數傳回值的變數或常數。12第12页,共45页。建立函數Function-呼叫因為函數擁有傳回值,所以通常是使用指定敘述進行呼叫,且位在指定敘述的右邊,如下所示:to

7、tal = One2Ten()變數total可以取得函數的傳回值。13第13页,共45页。範例建立函數Function 建立程序顯示標題文字Sub PrintTitle() 顯示標題文字 Response.Write(建立函數Function) Response.Write()End Sub 1加到10Function One2Ten() Dim i, total As Integer total = 0 For i = 1 To 10 Step 1 total = total + i Next i Return totalEnd Function1加到10為14第14页,共45页。擁有參數的

8、程序與函數-單參數Sub程序和函數可以傳入參數值,在呼叫時就可以指定不同的參數,以便顯示或取得不同的執行結果,擁有參數的程序寫法,如下所示:Sub PrintTitle(title As String) Response.Write( & title & ) Response.Write()End SubSub程序擁有1個參數title字串。15第15页,共45页。擁有參數的Sub程序與函數-多參數如果參數不只一個,請使用,符號分隔。擁有參數的函數寫法,如下所示:Function N2N(n1 As Integer, n2 As Integer) Dim i, total As Integer

9、 total = 0 For i = n1 To n2 Step 1 total = total + i Next i Return totalEnd Function16第16页,共45页。擁有參數的Sub程序與函數-呼叫如果Sub程序或函數擁有參數時,在呼叫時需要指定參數值,擁有參數的Sub程序呼叫,如下所示:Call PrintTitle(擁有參數的程序與函數)程式碼在呼叫時傳入一個字串,這也就是Sub程序參數title的值。同樣的,如果參數不只一個,在呼叫時也需要使用,符號分隔,擁有多個參數的函數呼叫,如下所示:N2N(1,10)17第17页,共45页。範例3:不同色彩日期 第五章 範

10、例3:日期 Sub showDate(dtDay As Date, c As String) Response.Write() Response.Write(Year(dtDay) & 年 & Month(dtDay) & 月 & Day(dtDay) & 日) Response.Write() Response.Write() End Sub 18第18页,共45页。範例4:從1加到N的和 第五章 範例4:呼叫函數來計算總和 Function sumOfn(n As Integer) Dim total, i As Integer total = 0 For i = 1 to n total

11、 += i Next i Return total End Function % Dim i As Integer Dim sum As Integer For i = 1 to 10 sum = sumOfn(i) Response.Write(1+.+ & i & = & sum & ) Next i % 19第19页,共45页。練習一建立Min()和Max()函數,函數傳入個整數參數,傳回值分別是參數中的最小值和最大值建立Sum()和Average()函數,分別計算下列成績的總分與平均值78, 87,57,86,9220第20页,共45页。強迫跳出程序如果在執行Sub程序時需要中斷程序的

12、執行,可以使用跳出程序指令,如下所示:Exit Sub當執行Sub程序時,執行到上述指令就會馬上離開程序,如同結束程序的執行。21第21页,共45页。強迫跳出函數如果在執行函數時需要中斷函數的執行,跳出函數使用的指令,如下所示:Exit Function當執行函數時,執行到上述指令就馬上離開函數,如同結束函數的執行,因為函數擁有傳回值,所以在執行此指令前需要傳回函數值。22第22页,共45页。範例強迫跳出函數 One加到NFunction One2N(stopFunc As Integer) Dim i, total As Integer total = 0 For i = 1 To 1000

13、0 Step 1 total = total + i 是否結束函數 If i = stopFunc Then Return total 傳回值 Exit Function End If Next iEnd Function測試Exit Function結束函數1加到10為1加到100為 23第23页,共45页。傳值或傳址呼叫程序與函數-說明Sub程序和函數的參數依據不同的參數傳遞方式,將影響傳入參數的值,VB.NET提供2種參數傳遞方式,如下表所示:24第24页,共45页。傳值或傳址呼叫程序與函數-範例VB.NET程序與函數預設使用傳值呼叫,所以並不用在參數前加上Byval指令,如下所示:Su

14、b SubA(C As Integer) .End Sub只有使用傳址的程序或函數才需要特別指名Byref指令,如下所示:Sub SubB(Byref C As Integer) .End Sub25第25页,共45页。範例6:call by value 第五章 範例6:call by value Sub visitme(n As Integer) Response.Write(這是你第 & n & 次拜訪我) n += 1 End Sub % Dim i As Integer For i = 1 to 5 Response.Write(第 & i & 次呼叫visitme ) visitme

15、(i) Next i % 26第26页,共45页。範例7:call by reference 第五章 範例6:call by reference Sub visitme(Byref n As Integer) Response.Write(這是你第 & n & 次拜訪我) n += 1 End Sub % Dim i As Integer For i = 1 to 5 Response.Write(第 & i & 次呼叫visitme ) visitme(i) Next i % /html27第27页,共45页。程序與函數的變數範圍VB.NET語法的ASP.NET程式能夠擁有多個程序或函數,而

16、且在ASP.NET程式宣告的每個變數都擁有其有效範圍,也就是當程式執行時,變數可以讓程序或函數內或其它程式碼存取的範圍。如下所示:區域變數(Local Variables):在程序和函數內宣告的變數,變數只能在程序或函數內使用,程序或函數外的程式碼無法存取此變數。全域變數(Global Variables):如果變數是在程序和函數外宣告,整個ASP.NET程式的程序和函數和其它程式碼都可以存取此變數。28第28页,共45页。範例8:整體變數 第五章 範例8:整體變數 Dim i As Integer Sub visitme() Response.Write(這是你第 & i & 次拜訪我) i

17、 += 1 End Sub % For i = 1 to 5 Response.Write(第 & i & 次呼叫visitme ) visitme() Next i % 29第29页,共45页。範例程序與函數的變數範圍 宣告全域變數Dim A, B As Integer 程序ASub SubA() 宣告區域變數 Dim A, B As Integer A = 3 設定區域變數 B = 4 設定區域變數End Sub 程序BSub SubB() A = 3 設定全域變數 B = 4 設定全域變數End Sub測試程序函數的變數範圍ASP.NET程式宣告全域變數A, BSubA宣告區域變數A,

18、BSubB沒有宣告任何的區域變數%A = 1 設定初始值B = 2Response.Write(執行過程全域變數A值)Response.Write(全域變數B值)Response.Write(初始值 & A & )Response.Write( & B & )Call SubA() 呼叫SubAResponse.Write(呼叫SubA後 & A & )Response.Write( & B & )Call SubB() 呼叫SubAResponse.Write(呼叫SubB後 & A & )Response.Write( & B & ) %30第30页,共45页。VB.NET常用的內建函數日

19、期與時間函數字串處理函數資料型態檢查函數資料轉換函數亂數與四捨五入函數31第31页,共45页。日期與時間函數-說明32第32页,共45页。日期與時間函數-時間差VB.NET還提供函數可以取得時間差和增減日期/時間,DateDiff()函數可以計算時間差,如下所示:DateDiff(單位字串, Date1, Date2)DateDiff()函數傳回後2個參數的時間差單位字串設定後2個參數比較單位:秒(“s”)、分(“n”) 、小時(“H”) 、日(“D”)、或月(“m”)來比較。VB.NET的DateAdd()函數可以加減日期/時間,如下所示:DateAdd(單位字串, Number, Date

20、)DateAdd()函數使用與DateDiff()函數相同的單位字串,將第3個參數的日期時間加減參數Number的值後傳回。33第33页,共45页。字串處理函數-134第34页,共45页。字串處理函數-235第35页,共45页。字串處理函數-336第36页,共45页。資料型態檢查函數37第37页,共45页。資料轉換函數38第38页,共45页。亂數與四捨五入函數-說明39第39页,共45页。亂數與四捨五入函數-產生亂數亂數是隨機產生的數值序列,每個序列值屬於單精浮點數值,其值介於0到1之間,為了每次執行時都能產生不同的亂數序列,需要使用Randomize()函數初始亂數產生器,如下所示:Rand

21、omize()在使用上述函數初始後,就可以使用Rnd()函數取得亂數值,如下所示:Value = Int(Rnd(10) * 100)函數因為乘以100,配合Int()函數取得整數的亂數值,所以值是在0100之間。40第40页,共45页。亂數與四捨五入函數-Rnd()函數的參數41第41页,共45页。範例10: 擲骰子 第五章 範例1:擲骰子 % Dim i As Integer Dim va1, va2 As Integer Dim P(6) As String P(1) = p1.gif P(2) = p2.gif P(3) = p3.gif P(4) = p4.gif P(5) = p5

22、.gif P(6) = p6.gif Randomize() va1 = Int(Rnd()*6)+1 Response.Write() va2 = Int(Rnd()*6) + 1 Response.Write() Response.Write() Response.Write(共 & (va1+va2) & 點) % 42第42页,共45页。範例11: 花式數字Dim y, m, d, hr, minu, sec As IntegerDim i, j As IntegerDim nowDate As DateDim temps As StringDim A(10) As StringA(0) = 0.gifA(1) = 1.gifA(2) = 2.gifA(3) = 3.gifA(4) = 4.gifA(5) = 5.gifA(6) = 6.gifA(7) = 7.gifA(8) = 8.gifA(9) = 9.gifnowDate = NowResponse.Write( 進站時刻: )y = Year(nowDate)temps = Str(y)For i = 2 to Len(temps) j = Val(Mid(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论