廉侃超,李 霞
(運城學(xué)院公共計算機教學(xué)部,山西運城044000)
Visual Basic程序設(shè)計課程是我院針對非計算機專業(yè)文史類專業(yè)開設(shè)的一門通識教育課程,是一門靈活性、實踐性、綜合設(shè)計性較強的學(xué)科。文史類學(xué)生以形象思維、感性思維見長,缺乏成熟的邏輯思維能力[1],對程序設(shè)計也比較陌生,這在某種程度上造成文史類學(xué)生程序設(shè)計學(xué)習(xí)的障礙。要達到較好的教學(xué)效果,具有一定的挑戰(zhàn)性。學(xué)習(xí)Visual Basic程序設(shè)計,必須掌握程序設(shè)計的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。選擇結(jié)構(gòu)是程序設(shè)計中控制程序流程非常重要的一種結(jié)構(gòu)[2],在三種結(jié)構(gòu)的學(xué)習(xí)中具有承前啟后的作用,“前”是對順序結(jié)構(gòu)運用的深化認識,“后”是為學(xué)習(xí)循環(huán)語句做鋪墊。IF語句是選擇結(jié)構(gòu)的一種實現(xiàn)語句,在教學(xué)過程中如何突破IF語句的重、難點,幫助文史類學(xué)生理解IF語句的執(zhí)行過程,掌握IF語句的應(yīng)用,提高文史類學(xué)生的思維素質(zhì)和能力素質(zhì)[3,4],是我們在教學(xué)中一直思考的問題。
當一個問題涉及到對條件進行分析、比較、判斷,判斷條件所得的結(jié)果不同時,處理問題的方式也要相應(yīng)不同,這時就要用選擇結(jié)構(gòu)來解決問題。[5,6]基于文史類學(xué)生的認知特點[1],如果用一些能引起學(xué)生興趣的,又特別貼近學(xué)生日常生活的例子來分析選擇結(jié)構(gòu),學(xué)生定能輕松愉快地接受、理解,同時印象會特別深刻,從而加強學(xué)習(xí)效果。
針對IF語句教學(xué)的各主要環(huán)節(jié),精心選取一些生活案例,促使學(xué)生在學(xué)習(xí)過程中積極思考,培養(yǎng)學(xué)習(xí)興趣,提高學(xué)習(xí)主動性,幫助學(xué)生有效地學(xué)習(xí)IF語句的使用方法。教學(xué)中,以啟發(fā)、引導(dǎo)貫穿始終,創(chuàng)造學(xué)生自主探究學(xué)習(xí)的平臺,使學(xué)生由“要我學(xué)”轉(zhuǎn)變?yōu)椤拔乙獙W(xué)”,提高課堂的學(xué)習(xí)效率。
文史類學(xué)生的課程大部分是識記類,他們的認知特點主要以識記為主,而程序設(shè)計課程側(cè)重于邏輯思維的訓(xùn)練與應(yīng)用,所以文史類學(xué)生普遍會感覺程序設(shè)計比較困難,也缺乏相應(yīng)的學(xué)習(xí)興趣。如果按傳統(tǒng)的教學(xué)方法,直接講授語句格式、語句功能,學(xué)生會覺得枯燥無味毫無興致。結(jié)合學(xué)生的實際情況,設(shè)計了一個有趣特別的案例情景,引起學(xué)生的關(guān)注及興趣,渲染了課堂氣氛,也為IF語句的應(yīng)用埋下伏筆,設(shè)置了懸念。
展示一幅有極胖、極瘦兩種體型的圖片,引入體型判斷問題。分析體型判斷問題的解決過程,總結(jié)生活中判斷、選擇類問題的特點,指出VB中IF語句的主要功能就是解決類似的判斷、選擇性的問題,從而引入本課主題——IF語句的學(xué)習(xí)。
If語句從功能上可以分為單分支、雙分支和多分支三種結(jié)構(gòu)。IF語句的學(xué)習(xí)主要在于把握三種結(jié)構(gòu)IF語句的語句格式、語句功能和語句應(yīng)用。語句格式是識記性的內(nèi)容,提醒學(xué)生在學(xué)習(xí)的過程中注意三種格式的書寫區(qū)別,進行對比記憶印象會更深刻。語句功能和語句應(yīng)用是學(xué)生學(xué)習(xí)中的重點和難點,對這兩部分分別精心選取了一些學(xué)生身邊的、能引起興趣的生活小實例,通過這些有趣實例的分析,幫助學(xué)生更好地理解、掌握IF語句的功能和用法,并力爭達到靈活運用、解決生活實際問題的高度。
興趣是學(xué)習(xí)的原動力,拋開晦澀難懂的概念和語法,用帶有旋律的歌詞實例來煥發(fā)學(xué)生的學(xué)習(xí)熱情。
將各語句功能同生活中大家熟悉的、能帶來快感的選擇性歌詞語句類比,這些語句是大家一聽就能明白的,這樣,可以在輕松愉快的歌詞品味中將語句功能這個難點化解。各分支結(jié)構(gòu)的類比語句如下:
(1)單分支類比生活中的語句:“如果幸福,那么拍拍手”,并把它寫成對應(yīng)的單分支IF語句格式為:
或單行格式:If幸福Then拍拍手
它的執(zhí)行過程和我們聽到“如果幸福,那么拍拍手”這句話后的行為反應(yīng)是一樣的。程序執(zhí)行時,先判斷條件幸福是否成立,如果成立,執(zhí)行語句拍拍手,否則什么都不用做。執(zhí)行流程如下圖所示:
通過對比分析,可以讓學(xué)生自己輕松地總結(jié)出單分支語句的執(zhí)行特點:只有一種執(zhí)行結(jié)果。
(2)雙分支結(jié)構(gòu)類比生活中的語句:“如果幸福,那么拍拍手,否則跺跺腳?!睂懗蓪?yīng)的雙分支IF語句格式為:
或單行格式:If幸福Then拍拍手Else跺跺腳
它的執(zhí)行過程和我們聽到“如果幸福,那么拍拍手,否則跺跺腳?!边@句話后的行為反應(yīng)是一樣的。程序執(zhí)行時,先判斷條件幸福是否成立,如果成立,執(zhí)行語句拍拍手,否則執(zhí)行跺跺腳語句。執(zhí)行流程如下圖所示:
從流程圖中看到雙分支語句有兩種執(zhí)行結(jié)果,有部分學(xué)生可能不清楚兩種結(jié)果能不能同時出現(xiàn),簡單分析一個人聽到“如果幸福,那么拍拍手,否則跺跺腳?!边@句話后的行為,可知一個人只能從兩種結(jié)果中選擇一種。因此可總結(jié)出雙分支語句的執(zhí)行特點:有兩種執(zhí)行結(jié)果,但某一次執(zhí)行中只能出現(xiàn)一種執(zhí)行結(jié)果。
(3)多分支結(jié)構(gòu)類比生活中的語句:“如果幸福,那么拍拍手;否則,如果開心,那么跺跺腳;否則,……;如果溫暖,那么擠擠眼;否則伸伸腰。”不過,在這里我們要首先假設(shè)“幸?!?、“開心”、“溫暖”這些條件任何兩個都不能同時出現(xiàn)。它對應(yīng)的IF條件語句為:
它的執(zhí)行過程和我們聽到“如果幸福,那么拍拍手;否則,如果開心,那么跺跺腳;否則,……;如果溫暖,那么擠擠眼;否則伸伸腰。”這句話后的行為反應(yīng)是一樣的。程序執(zhí)行時,如果條件1幸福成立,執(zhí)行第一分支的拍拍手語句,IF語句結(jié)束,其它分支不再執(zhí)行;如果條件1幸福不成立再接著判斷條件2,如果條件2開心成立,執(zhí)行第二個分支的跺跺腳語句,IF語句結(jié)束,剩余的分支不再執(zhí)行;依次類推,當前面的條件都不成立時,執(zhí)行Else分支的伸伸腰語句。執(zhí)行流程如下圖所示:
分析我們對類比語句的行為反應(yīng)可得出多分支語句的執(zhí)行特點:有幾個分支就有幾種執(zhí)行結(jié)果,但某一次執(zhí)行中只能出現(xiàn)其中的一種執(zhí)行結(jié)果。
如何靈活應(yīng)用IF語句來解決實際問題,是學(xué)生學(xué)習(xí)中需要突破的一個難點。面對要解決的問題學(xué)生往往不知道該選擇哪種分支結(jié)構(gòu)的IF語句。為簡化學(xué)生解決問題的過程,我們根據(jù)各分支結(jié)構(gòu)IF語句的執(zhí)行特點,總結(jié)出一個選用分支結(jié)構(gòu)的“公式”。選用的思想是:根據(jù)問題需要出現(xiàn)的執(zhí)行結(jié)果的總數(shù)目進行判斷,如果只有一種執(zhí)行結(jié)果,選用單分支結(jié)構(gòu);如果有兩種執(zhí)行結(jié)果,選用雙分支結(jié)構(gòu);如果有三種或三種以上執(zhí)行結(jié)果,則選用多分支結(jié)構(gòu)IF語句。同時,我們選用一個大家都比較感興趣的“體型測試程序”對“公式”進行驗證。根據(jù)體型測試的實際情況,設(shè)計了三個問題,分別對應(yīng)單、雙、多三種結(jié)構(gòu),從易到難,層層遞進,以滿足不同層次學(xué)生的需求。目前體型測試比較通用的方法是對體重指數(shù)進行判斷,體重指數(shù)由下面公式計算得到:
體重指數(shù)(BMI)=體重(公斤)/身高(米)的平方
評判標準為:BMI<19為偏輕,BMI介于19-23之間為健康體重,BMI>23為超重。
問題1:春節(jié)后,用戶希望程序給出超重的提示。
分析問題,程序只需“超重”一種執(zhí)行結(jié)果,根據(jù)“公式”,選用單分支IF語句實現(xiàn)。由體型測試標準知顯示“超重”的條件為體重指數(shù)大于23。對應(yīng)的偽語句為:
問題2:希望程序給出超重和未超兩種提示。
程序要求有兩種執(zhí)行結(jié)果,根據(jù)“公式”,兩種結(jié)果選用雙分支IF語句實現(xiàn)。條件的確定需要根據(jù)第一個分支的結(jié)果判斷,第一分支的結(jié)果如是“超重”,則條件應(yīng)為BMI>23,如是“未超”,則條件應(yīng)為“BMI<=23”。其程序偽代碼為:
問題3:希望程序給出重、輕和標準三種提示。
由問題知程序共有三種執(zhí)行結(jié)果,根據(jù)“公式”,三種結(jié)果需用三分支結(jié)構(gòu)IF語句實現(xiàn)。三個分支對應(yīng)三個結(jié)果。將條件從小到大或從大到小進行排序,然后依序填各條件及結(jié)果。程序在環(huán)境下具體實現(xiàn)時通過調(diào)用不同的窗體來顯示不同的提示結(jié)果。以下程序的實現(xiàn)代碼:
在VB環(huán)境下運行程序,并分別檢驗三種情況。輸入一負數(shù)查看程序運行結(jié)果,通過結(jié)果的不合理性引入讓學(xué)生思考的問題:“輸入數(shù)據(jù)不合法時如何處理?”
對學(xué)生較難掌握的選擇結(jié)構(gòu),采用案例教學(xué)法,教學(xué)案例從學(xué)生的實際情況出發(fā),根據(jù)現(xiàn)有學(xué)生的基礎(chǔ),結(jié)合簡單、有趣的生活實例,引導(dǎo)學(xué)生進行探索式學(xué)習(xí),問題從學(xué)生對體型測試的關(guān)注入手,過渡到課題的研究學(xué)習(xí)。原本枯燥無味的VB程序設(shè)計,在簡單、形象的生活實例下變得生動、有趣,激發(fā)了學(xué)生對程序設(shè)計的求知欲,提高其學(xué)習(xí)興趣,形成積極主動學(xué)習(xí)程序設(shè)計的態(tài)度,督促學(xué)生課后搜集生活中的選擇結(jié)構(gòu)實例,并嘗試用IF語句編寫相應(yīng)程序。促使學(xué)生對選擇結(jié)構(gòu)IF語句舉一反三,在生活中靈活應(yīng)用,提高學(xué)生用IF語句解決實際問題的能力,加強學(xué)生對程序設(shè)計的理解力,從而促進學(xué)生對問題解決方法和思想的理解與掌握,從而提升學(xué)生的問題解決能力,讓學(xué)生在按照一定流程解決問題的過程中,去體會和理解程序設(shè)計的思想,而且也為嵌套選擇結(jié)構(gòu)和Select語句的學(xué)習(xí)打下基礎(chǔ)。
[1]徐文武,向會斌.文史類大學(xué)生思維素質(zhì)培養(yǎng)芻議[J].高等函授學(xué)報:哲學(xué)社會科學(xué)版,2011(9).
[2]李祥坤.VB選擇結(jié)構(gòu)的分析與教學(xué)[J].學(xué)術(shù)問題研究:綜合版,2011(2).
[3]徐文武.文史類專業(yè)“四維三合”人才培養(yǎng)模式的構(gòu)架[J].鹽城師范學(xué)院學(xué)報:人文社會科學(xué)版,2011(5).
[4]黃宏磊.地方教學(xué)型院校文史類專業(yè)高素質(zhì)人才培養(yǎng)模式研究[J].電子世界,2013(1).
[5]李祥坤.VB選擇結(jié)構(gòu)的分析與教學(xué)[J].學(xué)術(shù)問題研究,2011(2).
[6]臧勁松.培養(yǎng)學(xué)生計算思維的程序設(shè)計課程教學(xué)[J].計算機教育,2012(2).