劉麗


摘要:程序的控制結構是任何一門程序語言都要學習和掌握的內容,作為一門面向對象語言Visual Basic是全國計算機等級考試科目被納入教學必修課,從事教學多年,如何讓學生學好程序語言的控制結構,掌握編寫程序的技巧一直是教學過程中的需要思考的問題。本文集中在講解了三種結構的基礎上,結合教學經驗,自創了妙解三法,包括層次發、勾叉法和跑圈法,讓學生能很快理解和掌握VB的三種控制結構,并將解題思路運用到二級考試當中,還能為掌握其他面向對象語言提供便捷的編程思路。
關鍵詞:面向對象;程序控制結構;教學方法
1 引言
Visual Basic是一門面向對象程序設計語言(OOP,Object Oriented Programming)。從任何標準來說,VB都是世界上使用人數最多的語言——不僅是盛贊VB的開發者還是抱怨VB的開發者的數量。它源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接數據庫,或者輕松的創建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個應用程序[1]。作為一名有著多年使用經驗和教學經驗的教師,對Visual Basic有著豐富的經驗和體會,通常新接觸一門面向對象語言,都一定會學習程序控制結構,而這些面向對象語言無論其編程基礎內容有多少不同,程序控制結構都大致是相同和相通的,分為順序結構、選擇結構和循環結構。這三種結構的組合和嵌套再形成更為復雜的程序結構。如何真正理解和掌握程序控制結構是一個重要的環節和難點,通過研究和思考,總結和創發了妙解三法來學習和掌握程序的編寫和讀取。
2 ?程序三種控制結構
面向對象語言是從結構語言發展而來的,所以同樣具備三種基本的控制結構:順序結構、選擇結構和循環結構。順序結構比較好理解,順序結構是最簡單的程序結構,也是最常用的程序結構,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行【2】。而選擇結構和循環結構較之就復雜和困難很多。
2.1 選擇結構(條件結構)
顧名思義,選擇就是進行決策再執行操作。人們生活中時時刻刻在進行選擇,如:如果天看起來要下雨,那么我們出門前就要帶上傘,否則就不用帶傘。設計計算機軟件的最終目的是幫助人們處理事情,那么在程序設計語言中,也同樣有這種表示“決策”的語句,那就是條件結構。在Visual Basic 中,最主要的條件語句是If…Then…Else,這幾個詞正是英語當中的“如果……那么……否則……”,實際上它表達的意思也就是這個。帶傘的決策過程可表達為:
If (天要下雨) Then
出門帶傘
Else
出門不必帶傘
End If
最后的End If表示整個決策過程結束。這實際上是對一段程序的自然語言描述,可以看到,它在主體框架上使用了計算機語言,而在細節上使用了自然語言,這樣的代碼叫做“偽碼”,它并不是真正的代碼。上面是一個簡單的決策,只包含一個判斷(天會不會下雨)。有時候,一個決策會包含很多判斷,比如當一次考試的分數(百分制)出來以后,根據分數來判斷考得如何:
If (分數是100) Then
考得太好了
ElseIf (分數高于85) Then
優秀
ElseIf (分數高于60) Then
及格
Else
不及格
End If
很顯然,這里的ElseIf就是把另外一個If語句接在前面的Else語句后面,也就是在第一個決策后面再跟上一個決策,這種連接可以是無限的。VB的選擇結構還有Selec......end Select分支結構,無論決策結構是什么樣的,程序運行的E-R圖是一樣的。
2.2 ?循環結構
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段算法的問題,這是程序設計中最能發揮計算機特長的程序結構【3】 。VB中有三種循環結構:計數循環(For—Next)、當循環(While—Wend)和Do循環(Do—Loop),學習的要點是真正理解什么是循環,循環的掌握關鍵是找到循環結構的三要素:循環變量、循環條件和循環體。以For結構為例,該小程序的循環變量是X,循環條件是1 to 5 step 1,循環體是sum = sum + x ,分析該程序就是滿足條件的話,循環體重復執行5次。
For x=1 to 5 Step 1
sum = sum + x
Next x
3. ? 層次法
無論是選擇還是循環如果只是單一的一種或一層結構都是比較好理解和掌握的,但往往的情況確實嵌套的出現或者組合使用,這個時候能清晰程序結構和層次是尤為重要的。層次法就是用于判斷和清晰程序結構時使用的,層次法的口訣為:由內向外畫括號,由上向下讀程序。由圖4所示,以條件嵌套為例,首先找到程序中最里一個層次IF(選擇和循環都是如此),并用括號將離它最近一個結束end if 于之關聯,往外推找到第二個IF和endif畫括號,以此類推時候,再由上往下讀取程序,即可清晰判斷出本程序的程序結構。
4. ?勾叉法
勾叉法通常用于判斷選擇結構的程序執行輸出情況。觀察選擇結構的E-R圖,總結出勾叉法,將程序輸入值進行判斷,條件真假用勾叉標注,選擇結構只以第一個“勾”條件執行其Then后面的程序塊,“X”處條件將不予以執行,可以理解為條件結構條件一判斷為真,執行完真語句塊就跳出該條件結構。
5. ?操場法
顧名思義,用跑操場的實例來理解和判斷程序結構,通常都是使用在循環和循環嵌套中。如圖2所示,循環可以理解為重復做某事,循環變量是包(N)、循環條件是只有兩只手(N<=2),循環體是每跑一圈那一個包(N=N+1),那么跑第一圈可以表示為如圖3所示;跑第二圈時循環變量N為1,判斷后條件為真,跑第三圈,執行循環體,循環變量N變為2;第三圈循環變量為2,判斷條件為假,不執行循環體。無論是哪種循環,只要能明確程序循環三要素,理解起來都不困難,結合跑圈法和層次法,讀寫程序結構都變得很便捷了,
6. ?妙解三法綜合示例
該程序是一個結合了三種程序結構,并且有循環嵌套和多條件判斷的小程序,如圖所示,使用妙解三法即可輕松讀懂程序結構。
7. ?結束語
妙解三法可以幫助快速有效的理清程序脈絡,掌握好該程序語言的控制結構,并且是萬變不離其宗的,只要勤加練習,編寫出復雜的控制結構程序只是一個時間問題,目前運用在教學中效果還是很明顯的。妙解三法還可能存在一些小瑕疵,會在今后予以完善。
參考文獻:
[1]http://baike.baidu.com/item/Visual+Basic?from_id=6044&type=syn&fromtitle=VB&fr=aladdin
[2] http://baike.baidu.com/view/552878.htm
[3] http://baike.baidu.com/view/552876.htm
[4]聶鈺楨.全國計算機等級考試教程二級VB【M】.人民郵電出版社,2013