廉侃超,李 霞
(運城學院公共計算機教學部,山西運城044000)
Visual Basic程序設計課程是我院針對非計算機專業文史類專業開設的一門通識教育課程,是一門靈活性、實踐性、綜合設計性較強的學科。文史類學生以形象思維、感性思維見長,缺乏成熟的邏輯思維能力[1],對程序設計也比較陌生,這在某種程度上造成文史類學生程序設計學習的障礙。要達到較好的教學效果,具有一定的挑戰性。學習Visual Basic程序設計,必須掌握程序設計的三種基本結構:順序結構、選擇結構和循環結構。選擇結構是程序設計中控制程序流程非常重要的一種結構[2],在三種結構的學習中具有承前啟后的作用,“前”是對順序結構運用的深化認識,“后”是為學習循環語句做鋪墊。IF語句是選擇結構的一種實現語句,在教學過程中如何突破IF語句的重、難點,幫助文史類學生理解IF語句的執行過程,掌握IF語句的應用,提高文史類學生的思維素質和能力素質[3,4],是我們在教學中一直思考的問題。
當一個問題涉及到對條件進行分析、比較、判斷,判斷條件所得的結果不同時,處理問題的方式也要相應不同,這時就要用選擇結構來解決問題。[5,6]基于文史類學生的認知特點[1],如果用一些能引起學生興趣的,又特別貼近學生日常生活的例子來分析選擇結構,學生定能輕松愉快地接受、理解,同時印象會特別深刻,從而加強學習效果。
針對IF語句教學的各主要環節,精心選取一些生活案例,促使學生在學習過程中積極思考,培養學習興趣,提高學習主動性,幫助學生有效地學習IF語句的使用方法。教學中,以啟發、引導貫穿始終,創造學生自主探究學習的平臺,使學生由“要我學”轉變為“我要學”,提高課堂的學習效率。
文史類學生的課程大部分是識記類,他們的認知特點主要以識記為主,而程序設計課程側重于邏輯思維的訓練與應用,所以文史類學生普遍會感覺程序設計比較困難,也缺乏相應的學習興趣。如果按傳統的教學方法,直接講授語句格式、語句功能,學生會覺得枯燥無味毫無興致。結合學生的實際情況,設計了一個有趣特別的案例情景,引起學生的關注及興趣,渲染了課堂氣氛,也為IF語句的應用埋下伏筆,設置了懸念。
展示一幅有極胖、極瘦兩種體型的圖片,引入體型判斷問題。分析體型判斷問題的解決過程,總結生活中判斷、選擇類問題的特點,指出VB中IF語句的主要功能就是解決類似的判斷、選擇性的問題,從而引入本課主題——IF語句的學習。
If語句從功能上可以分為單分支、雙分支和多分支三種結構。IF語句的學習主要在于把握三種結構IF語句的語句格式、語句功能和語句應用。語句格式是識記性的內容,提醒學生在學習的過程中注意三種格式的書寫區別,進行對比記憶印象會更深刻。語句功能和語句應用是學生學習中的重點和難點,對這兩部分分別精心選取了一些學生身邊的、能引起興趣的生活小實例,通過這些有趣實例的分析,幫助學生更好地理解、掌握IF語句的功能和用法,并力爭達到靈活運用、解決生活實際問題的高度。
興趣是學習的原動力,拋開晦澀難懂的概念和語法,用帶有旋律的歌詞實例來煥發學生的學習熱情。
將各語句功能同生活中大家熟悉的、能帶來快感的選擇性歌詞語句類比,這些語句是大家一聽就能明白的,這樣,可以在輕松愉快的歌詞品味中將語句功能這個難點化解。各分支結構的類比語句如下:
(1)單分支類比生活中的語句:“如果幸福,那么拍拍手”,并把它寫成對應的單分支IF語句格式為:

或單行格式:If幸福Then拍拍手
它的執行過程和我們聽到“如果幸福,那么拍拍手”這句話后的行為反應是一樣的。程序執行時,先判斷條件幸福是否成立,如果成立,執行語句拍拍手,否則什么都不用做。執行流程如下圖所示:

通過對比分析,可以讓學生自己輕松地總結出單分支語句的執行特點:只有一種執行結果。
(2)雙分支結構類比生活中的語句:“如果幸福,那么拍拍手,否則跺跺腳。”寫成對應的雙分支IF語句格式為:

或單行格式:If幸福Then拍拍手Else跺跺腳
它的執行過程和我們聽到“如果幸福,那么拍拍手,否則跺跺腳。”這句話后的行為反應是一樣的。程序執行時,先判斷條件幸福是否成立,如果成立,執行語句拍拍手,否則執行跺跺腳語句。執行流程如下圖所示:

從流程圖中看到雙分支語句有兩種執行結果,有部分學生可能不清楚兩種結果能不能同時出現,簡單分析一個人聽到“如果幸福,那么拍拍手,否則跺跺腳。”這句話后的行為,可知一個人只能從兩種結果中選擇一種。因此可總結出雙分支語句的執行特點:有兩種執行結果,但某一次執行中只能出現一種執行結果。
(3)多分支結構類比生活中的語句:“如果幸福,那么拍拍手;否則,如果開心,那么跺跺腳;否則,……;如果溫暖,那么擠擠眼;否則伸伸腰。”不過,在這里我們要首先假設“幸福”、“開心”、“溫暖”這些條件任何兩個都不能同時出現。它對應的IF條件語句為:


它的執行過程和我們聽到“如果幸福,那么拍拍手;否則,如果開心,那么跺跺腳;否則,……;如果溫暖,那么擠擠眼;否則伸伸腰。”這句話后的行為反應是一樣的。程序執行時,如果條件1幸福成立,執行第一分支的拍拍手語句,IF語句結束,其它分支不再執行;如果條件1幸福不成立再接著判斷條件2,如果條件2開心成立,執行第二個分支的跺跺腳語句,IF語句結束,剩余的分支不再執行;依次類推,當前面的條件都不成立時,執行Else分支的伸伸腰語句。執行流程如下圖所示:

分析我們對類比語句的行為反應可得出多分支語句的執行特點:有幾個分支就有幾種執行結果,但某一次執行中只能出現其中的一種執行結果。
如何靈活應用IF語句來解決實際問題,是學生學習中需要突破的一個難點。面對要解決的問題學生往往不知道該選擇哪種分支結構的IF語句。為簡化學生解決問題的過程,我們根據各分支結構IF語句的執行特點,總結出一個選用分支結構的“公式”。選用的思想是:根據問題需要出現的執行結果的總數目進行判斷,如果只有一種執行結果,選用單分支結構;如果有兩種執行結果,選用雙分支結構;如果有三種或三種以上執行結果,則選用多分支結構IF語句。同時,我們選用一個大家都比較感興趣的“體型測試程序”對“公式”進行驗證。根據體型測試的實際情況,設計了三個問題,分別對應單、雙、多三種結構,從易到難,層層遞進,以滿足不同層次學生的需求。目前體型測試比較通用的方法是對體重指數進行判斷,體重指數由下面公式計算得到:
體重指數(BMI)=體重(公斤)/身高(米)的平方
評判標準為:BMI<19為偏輕,BMI介于19-23之間為健康體重,BMI>23為超重。
問題1:春節后,用戶希望程序給出超重的提示。
分析問題,程序只需“超重”一種執行結果,根據“公式”,選用單分支IF語句實現。由體型測試標準知顯示“超重”的條件為體重指數大于23。對應的偽語句為:

問題2:希望程序給出超重和未超兩種提示。
程序要求有兩種執行結果,根據“公式”,兩種結果選用雙分支IF語句實現。條件的確定需要根據第一個分支的結果判斷,第一分支的結果如是“超重”,則條件應為BMI>23,如是“未超”,則條件應為“BMI<=23”。其程序偽代碼為:

問題3:希望程序給出重、輕和標準三種提示。
由問題知程序共有三種執行結果,根據“公式”,三種結果需用三分支結構IF語句實現。三個分支對應三個結果。將條件從小到大或從大到小進行排序,然后依序填各條件及結果。程序在環境下具體實現時通過調用不同的窗體來顯示不同的提示結果。以下程序的實現代碼:

在VB環境下運行程序,并分別檢驗三種情況。輸入一負數查看程序運行結果,通過結果的不合理性引入讓學生思考的問題:“輸入數據不合法時如何處理?”
對學生較難掌握的選擇結構,采用案例教學法,教學案例從學生的實際情況出發,根據現有學生的基礎,結合簡單、有趣的生活實例,引導學生進行探索式學習,問題從學生對體型測試的關注入手,過渡到課題的研究學習。原本枯燥無味的VB程序設計,在簡單、形象的生活實例下變得生動、有趣,激發了學生對程序設計的求知欲,提高其學習興趣,形成積極主動學習程序設計的態度,督促學生課后搜集生活中的選擇結構實例,并嘗試用IF語句編寫相應程序。促使學生對選擇結構IF語句舉一反三,在生活中靈活應用,提高學生用IF語句解決實際問題的能力,加強學生對程序設計的理解力,從而促進學生對問題解決方法和思想的理解與掌握,從而提升學生的問題解決能力,讓學生在按照一定流程解決問題的過程中,去體會和理解程序設計的思想,而且也為嵌套選擇結構和Select語句的學習打下基礎。
[1]徐文武,向會斌.文史類大學生思維素質培養芻議[J].高等函授學報:哲學社會科學版,2011(9).
[2]李祥坤.VB選擇結構的分析與教學[J].學術問題研究:綜合版,2011(2).
[3]徐文武.文史類專業“四維三合”人才培養模式的構架[J].鹽城師范學院學報:人文社會科學版,2011(5).
[4]黃宏磊.地方教學型院校文史類專業高素質人才培養模式研究[J].電子世界,2013(1).
[5]李祥坤.VB選擇結構的分析與教學[J].學術問題研究,2011(2).
[6]臧勁松.培養學生計算思維的程序設計課程教學[J].計算機教育,2012(2).