亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        “VB程序設(shè)計(jì)”若干基礎(chǔ)問題的教學(xué)方法

        2008-12-31 00:00:00朱從旭
        計(jì)算機(jī)教育 2008年14期

        摘要:本文針對非計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)第一門程序設(shè)計(jì)語言的特點(diǎn),總結(jié)了在“VB程序設(shè)計(jì)”課程教學(xué)中值得重視的兩大問題,并給出了具體的教學(xué)方法。

        關(guān)鍵詞:程序設(shè)計(jì);VB課程;非計(jì)算機(jī)專業(yè);教學(xué)方法

        中圖分類號:G642文獻(xiàn)標(biāo)識碼:B

        1引言

        對于初次學(xué)習(xí)程序設(shè)計(jì)語言的學(xué)生來說,要迅速掌握程序設(shè)計(jì)的正確思維方法和基本技能不是容易的事情。如何解決內(nèi)容多與學(xué)時(shí)少的矛盾?無疑只能從教學(xué)方法中找出路。我們認(rèn)為,若干關(guān)鍵性的基礎(chǔ)問題和思維方法對學(xué)生程序設(shè)計(jì)技能的形成有至關(guān)重要的影響。因此,本文結(jié)合個(gè)人的實(shí)踐體會,介紹筆者在“VB程序設(shè)計(jì)”課程教學(xué)中兩點(diǎn)經(jīng)驗(yàn):一是圍繞如何使學(xué)生快速建立程序設(shè)計(jì)思維方法的問題,提出應(yīng)首先突破四個(gè)基礎(chǔ)性關(guān)鍵問題;二是針對初學(xué)者,就四類基本問題闡述了如何使用“從具體到抽象”的教學(xué)方法。望能拋磚引玉,并希望對其他程序語種的教學(xué)也能起到參考作用。

        2快速建立程序設(shè)計(jì)思維方法

        2.1理解事件驅(qū)動程序的機(jī)制

        VB是采用事件驅(qū)動機(jī)制執(zhí)行程序的。為使初學(xué)者理解事件驅(qū)動程序的機(jī)制,筆者用通俗簡單的敘述方式,總結(jié)成如下幾個(gè)要點(diǎn):①應(yīng)用程序基于對象組成,每個(gè)對象都有預(yù)先定義的事件。②對每種事件VB都有一個(gè)特定的關(guān)鍵詞來表示(如鼠標(biāo)單擊事件的關(guān)鍵詞是Click,窗體加載事件是Load)。③一個(gè)具體對象的具體事件發(fā)生時(shí)就有一個(gè)對應(yīng)的程序單元的語句被執(zhí)行,這個(gè)程序單元叫做一個(gè)過程(由于“過程”的概念尚未學(xué)到,因此開始可以這樣通俗解釋之),一個(gè)事件過程的表示形式總是以固定格式的“Sub 對象名_事件關(guān)鍵詞( )”語句開頭(窗體對象例外,其對象名位置固定用Form表示),過程以固定的“End Sub”語句結(jié)束;過程的中間原來無任何內(nèi)容,而編程者可以在其中寫一些語句。④而一個(gè)事件的發(fā)生要依賴于一定的條件(用戶事件依賴用戶的驅(qū)動,系統(tǒng)事件依賴一定的時(shí)機(jī))。⑤每個(gè)事件發(fā)生后系統(tǒng)如何響應(yīng)則取決于用戶給該事件過程編寫了什么代碼(若未寫任何代碼,則事件發(fā)生后程序無任何響應(yīng))。概括地說,由用戶控制事件的發(fā)生,而代碼做出響應(yīng),這就是事件驅(qū)動程序的機(jī)制。

        2.2賦值語句與“=”號關(guān)系運(yùn)算

        賦值語句是程序最基本的語句,必須一開始就很好掌握。由于長期受數(shù)學(xué)課中等式、方程式的固化概念影響,初學(xué)者開始很難接受“x=x+1”這種程序語句的書寫形式。我們在教學(xué)中是這樣處理的:①這是一個(gè)賦值語句,賦值語句的左邊一定是一個(gè)變量,而右邊是一個(gè)表達(dá)式(變量、常量可看作特殊表達(dá)式)。②賦值語句的執(zhí)行是先右后左,即先求出右邊表達(dá)式的值;再將該值賦予左邊變量的內(nèi)存單元。③對于賦值符號左右兩邊出現(xiàn)同名變量的情況,左右兩邊的同名變量實(shí)際上代表同一變量在兩個(gè)不同時(shí)刻的值,右邊的變量名代表語句執(zhí)行之前變量內(nèi)存單元中的值(俗稱“老值”),左邊的變量名代表語句執(zhí)行之后變量內(nèi)存單元中的值(俗稱“新值”),“新老”交替反映了變量的值可變這一根本特性。賦值語句的執(zhí)行可以分解為三個(gè)階段,以“x=x+1”語句為例,假設(shè)執(zhí)行之前x的值為7,則該語句執(zhí)行的三階段如圖1所示。圖1中的執(zhí)行階段又包含三個(gè)動作:①取出變量原值;②進(jìn)行運(yùn)算;③運(yùn)算結(jié)果送回變量內(nèi)存單元。

        由于“=”符號在VB中身兼兩職,即除了表示賦值符號,有時(shí)是表示關(guān)系運(yùn)算。在后面這種情況下,由“=”號及其兩邊的內(nèi)容組成了一個(gè)關(guān)系表達(dá)式,它最終代表一個(gè)邏輯值True或False。那末如何判斷“x=y”這種形式具體是表示賦值還是關(guān)系運(yùn)算呢?有下面的原則:①若這種形式單獨(dú)出現(xiàn)且左邊是一個(gè)變量,則成為一條賦值語句;②若這種形式出現(xiàn)在判斷結(jié)構(gòu)或輸出語句中,則它是一個(gè)關(guān)系表達(dá)式,這時(shí)“=”號的左邊也可以是表達(dá)式。

        2.3正確表達(dá)解決實(shí)際問題的操作順序

        計(jì)算機(jī)程序強(qiáng)調(diào)嚴(yán)格的執(zhí)行順序,因此對一個(gè)實(shí)際問題的解決,寫成計(jì)算機(jī)程序時(shí)必須嚴(yán)格強(qiáng)調(diào)操作的先后順序。初學(xué)者對這個(gè)問題沒有深刻認(rèn)識,寫程序時(shí)往往犯“本末倒置”的順序錯(cuò)誤。在這一點(diǎn)上,我們以“溫度轉(zhuǎn)換”典型例題進(jìn)行教學(xué)。

        【例題1】 編一個(gè)轉(zhuǎn)換華氏溫度與攝氏溫度的程序,轉(zhuǎn)換公式是:

        F=9/5*C+32(1) '將攝氏溫度轉(zhuǎn)換為華氏溫度,F(xiàn)為華氏溫度值

        C=5/9*F-32(2) '將華氏溫度轉(zhuǎn)換為攝氏溫度,C為攝氏溫度值

        要求:單擊“轉(zhuǎn)華氏”按鈕,則將攝氏溫度轉(zhuǎn)換為華氏溫度;單擊“轉(zhuǎn)攝氏”按鈕,則將華氏溫度轉(zhuǎn)換為攝氏溫度。界面見圖2。

        教師先引導(dǎo)學(xué)生寫出“轉(zhuǎn)華氏”的程序單元,即填寫“Sub Command1_Click( )”過程中的語句:①定義變量F,C;②先獲得C的值,C的值從文本框2中來,所以有C=Text2;③計(jì)算F的值,用公式(1);④輸出結(jié)果F值,F(xiàn)值應(yīng)該送到文本框1中去,所以有Text1=F。在這個(gè)簡單程序中,過去常常有許多學(xué)生將語句順序搞顛倒,還有就是將第②、④步的語句錯(cuò)寫為Text2=C;F=Text1;分不清“C值從哪里來”和“F值到哪里去”的表達(dá)方式。教師講完“轉(zhuǎn)華氏”的程序單元后,接下來要求學(xué)生獨(dú)立寫出“轉(zhuǎn)攝氏”的程序單元代碼,加以鞏固。

        2.4以常用算法灌輸程序設(shè)計(jì)思維方法

        掌握一些基本算法的實(shí)現(xiàn)不僅可以為學(xué)生今后解決實(shí)際問題打好基礎(chǔ),而且是建立程序設(shè)計(jì)思維方法的重要途徑。因此,教學(xué)過程中有必要精講部分常用算法。

        ① 累加求和與統(tǒng)計(jì)計(jì)數(shù)算法。強(qiáng)調(diào)的關(guān)鍵點(diǎn)有:存放累加和或統(tǒng)計(jì)計(jì)數(shù)值的變量初始化應(yīng)為0(如分別為s=0,n=0);程序結(jié)構(gòu)用到循環(huán),循環(huán)體關(guān)鍵語句是s=s+i或n=n+1,其中i是代表各加數(shù)的循環(huán)變量;n=n+1是在滿足計(jì)數(shù)條件下執(zhí)行的計(jì)數(shù)語句,該語句執(zhí)行一次,n值增1。

        ② 連乘算法。它是將若干個(gè)數(shù)乘起來的計(jì)算問題,若設(shè)這若干個(gè)數(shù)用變量i依次存放,用t存放連乘結(jié)果;則t值應(yīng)初始化為1,程序結(jié)構(gòu)用到循環(huán),循環(huán)變量為i。循環(huán)體關(guān)鍵語句是t=t*i??紤]到結(jié)果的數(shù)量巨大,為防止變量溢出,因此t的類型應(yīng)聲明為Double類型為好。

        ③ 窮舉算法。窮舉即是對實(shí)際問題中可能出現(xiàn)的所有排列組合情況進(jìn)行列舉。對于包含巨大排列組合情況數(shù)目的問題,人工逐一列舉每種情況是不現(xiàn)實(shí)的;但借助計(jì)算機(jī)的高速處理能力常常是解決這類問題的有效方法。典型例題有“百元買百雞”問題[3,4]。

        【例題2】 已知母雞、公雞、小雞各自的單價(jià),求解所有購雞方案。此問題既可以用三重循環(huán)解決,也可以用二重循環(huán)解決;對比時(shí)間開銷,后者為優(yōu)。通過這種典型例題說明窮舉算法的程序一定是一個(gè)循環(huán)嵌套結(jié)構(gòu);而如果循環(huán)嵌套的層數(shù)可以降低,則應(yīng)盡可能采用較低的嵌套層數(shù)。

        ④ 遞推算法。遞推算法實(shí)際上是對一批有規(guī)律的數(shù)據(jù),如果知道其中一個(gè),要求推算出其他所有數(shù)據(jù);也就是數(shù)值分析中的迭代算法。教學(xué)中我們?nèi)〖扔腥び值湫偷摹昂镒映蕴摇眴栴}為例[3,4]。

        【例題3】 小猴在一天摘了若干個(gè)桃子,當(dāng)天吃掉一半多一個(gè);第二天接著吃了剩下的桃子的一半多一個(gè);以后每天都吃尚存桃子的一半零一個(gè),到第7天早上要吃時(shí)只剩下一個(gè)了,問小猴那天共摘了多少個(gè)桃子?

        根據(jù)題意,不難列出相鄰兩天所剩桃子數(shù)的關(guān)系式是

        xn-1=2*(xn+1) (*)

        該問題要求從已知的第7天桃子數(shù)x7=1,推算出第1天桃子數(shù)x1。在程序中該關(guān)系式寫成賦值語句卻是

        x=2*(x+1)(**)

        讓x初值取1表示第7天的桃子數(shù),然后使(**)式表示的賦值語句循環(huán)執(zhí)行6次,就可以依次求出每一天的桃子數(shù)。此題關(guān)鍵要教會學(xué)生掌握將數(shù)學(xué)模型(*)式轉(zhuǎn)化為程序語句(**)式的技巧。

        典型算法還有許多,要根據(jù)學(xué)時(shí)情況適當(dāng)介紹。

        3從具體到抽象的教學(xué)方法

        從具體到抽象的教學(xué)方法實(shí)質(zhì)就是先通過具體實(shí)例說明,然后總結(jié)給出一般性規(guī)律。而許多教材常常相反,用從一般到具體的方法敘述一個(gè)問題。筆者認(rèn)為前者方法對初學(xué)者更易接受。

        3.1屬性的使用

        先具體。如果要使用名稱為Label1的控件的Caption屬性,可以這樣使用:

        Label1.Caption

        后一般。如果要使用某控件的某屬性,一般形式如下:

        控件名.屬性名

        接下來只要分清楚屬性的使用包括“讀取”與“設(shè)置”兩種情況:要設(shè)置屬性,該屬性的使用形式出現(xiàn)在賦值語句左邊;出現(xiàn)在程序語句其他位置時(shí)都是讀取屬性。

        3.2方法的使用

        先具體。如果要使名稱為Text1的文本框得到焦點(diǎn),可以對文本框Text1這樣使用SetFocus方法:

        Text1. SetFocus

        再具體。如果要在當(dāng)前窗體Form1中打印文字”結(jié)果=”,同時(shí)還要輸出變量x的值,可以對窗體這樣使用Print方法:

        Print ”結(jié)果=”; x

        后一般。如果要使用某控件的某方法,一般形式如下:

        [控件名.] 方法名 [參數(shù)列表]

        接下來只要對照上面兩個(gè)實(shí)例解釋一般形式中的[]中內(nèi)容:加[]號的內(nèi)容有時(shí)是沒有的,或是可以省去的。

        3.3函數(shù)的使用

        先具體實(shí)例。如果要使輸入框以圖3形式出現(xiàn),且其左上角定位在屏幕坐標(biāo)(100,200)處,而且用戶在不做任何修改的情況下單擊“確定”按鈕,就使變量x得到字符串”666”,則可以這樣使用InputBox函數(shù):

        x=InputBox(\"請輸入一個(gè)數(shù)\",\"給x賦值\",\"666\",100,200)

        后一般。InputBox函數(shù)的一般使用格式如下:

        x=InputBox(提示內(nèi)容 [,標(biāo)題] [,函數(shù)的默認(rèn)值] [,x] [,y])

        接下來只要對照上面實(shí)例解釋一般形式中的參數(shù)含義和可省參數(shù),學(xué)生就能馬上理解該函數(shù)的各參數(shù)含義。

        3.4過程的使用

        先具體實(shí)例。如果要以過程的形式使用MsgBox,使程序出現(xiàn)圖4形式的消息框,則可以這樣使用MsgBox過程:

        MsgBox \"你輸入有誤!\", vbAbortRetryIgnore + vbCritical, \"報(bào)告消息\"

        后一般。MsgBox過程的一般使用格式如下:

        MsgBox 提示 [,按鈕及圖標(biāo)] [,標(biāo)題]

        接下來只要對照上面實(shí)例解釋一般形式中的參數(shù)含義和可省參數(shù),并以表格形式列出“按鈕及圖標(biāo)”部分參數(shù)有哪幾種,學(xué)生就能馬上理解該過程的各參數(shù)含義。

        最近,筆者曾在本校大一2007級機(jī)械專業(yè)的VB課中做了一次小調(diào)查,即分別以“先一般后具體實(shí)例”和“先具體后一般總結(jié)”兩種教學(xué)方法,教學(xué)兩個(gè)同等難度的問題。然后讓學(xué)生舉手表決哪種方法易于理解,結(jié)果約75%以上的學(xué)生贊同“先具體后一般總結(jié)”的教學(xué)方法易于接受。

        4結(jié)束語

        筆者在教學(xué)實(shí)踐中注重上述兩方面問題,采用文中教學(xué)方法收效良好,表現(xiàn)在如下方面:

        ① 學(xué)生入門快,在實(shí)驗(yàn)課上犯基本錯(cuò)誤的人數(shù)隨教學(xué)進(jìn)程發(fā)展而迅速減少;

        ② 課程通過率高,前幾屆學(xué)生該課程期末考試的及格率一般都超過95%;

        ③ 在后期的2周獨(dú)立課程設(shè)計(jì)中,前幾屆學(xué)生普遍表現(xiàn)出較強(qiáng)的綜合程序設(shè)計(jì)能力。本文提出的理論方法和實(shí)踐經(jīng)驗(yàn)也可供其他計(jì)算機(jī)語言教學(xué)參考。

        參考文獻(xiàn):

        [1] 宋志宏,賈冬梅. VB程序設(shè)計(jì)課“三階段教學(xué)法”探析[J]. 計(jì)算機(jī)教育,2007,(6).

        [2] 謝紅霞,杜建生. “VB程序設(shè)計(jì)”教學(xué)與實(shí)踐[J]. 計(jì)算機(jī)教育,2007,(10).

        [3] 朱從旭. Visual Basic程序設(shè)計(jì)綜合教程[M]. 北京:清華大學(xué)出版社,2005.

        [4] 龔沛曾. Visual Basic程序設(shè)計(jì)簡明教程[M]. 北京:高等教育出版社出版,2002.

        [5] 譚浩強(qiáng). QBASIC程序設(shè)計(jì)(二級)教程[M]. 北京:清華大學(xué)出版社,2002.

        影音先锋男人站| 日韩在线一区二区三区中文字幕| 精品久久久久久国产潘金莲| 国成成人av一区二区三区| 国产激情久久久久影院小草| 国产成人精品一区二区不卡| 日本高清aⅴ毛片免费| 91美女片黄在线观看| 久久精品女人天堂av麻| 久久久久久夜精品精品免费啦 | 国产午夜精品一区二区三区视频| 国产三级三级三级看三级日本| 亚洲国产中文字幕在线视频综合| 丁字裤少妇露黑毛| 天天综合久久| 视频在线播放观看免费| 国产精品国产三级国产a | 国产精品11p| 精品一区二区中文字幕| 精品日韩一级免费视频| 天天天天躁天天爱天天碰| JIZZJIZZ国产| 久久av一区二区三区下| 国产一区二区av免费观看| 丰满岳乱妇一区二区三区| 91高清国产经典在线观看| 蜜桃av噜噜一区二区三区免费| 99精品久久99久久久久| 国产96在线 | 欧美| 成人免费无码视频在线网站| 人妖在线一区二区三区| 人妻少妇乱子伦精品| 98色花堂国产精品首页| 久久免费看视频少妇高潮| 无码aⅴ精品一区二区三区| 六月丁香婷婷色狠狠久久| 国产人成视频免费在线观看| 亚洲熟妇自偷自拍另类| 国产无遮挡无码视频免费软件| 亚欧国产女人天堂Av在线播放| 91国产超碰在线观看|