我在進(jìn)行VB程序設(shè)計教學(xué)過程中的幾點嘗試
朱 波 2008/11/25
(接上頁)lick事件中編寫一段程序,求5!,通過實驗,學(xué)生們很快編寫好如下程序: dim I as integer dim x as integer x=1 for I=1 to 5 x=x*I next I print “x=”;x 按F5鍵運行,得出5!的正確結(jié)果。然后我讓學(xué)生們把程序少許做一下修改,求10!,這時很多同學(xué)認(rèn)為這還不是小菜一碟,迅速將程序修改為如下形式: dim I as integer dim x as integer x=1 for I=1 to 10 x=x*I next I print “x=”;x 按F5鍵運行,結(jié)果學(xué)生們發(fā)現(xiàn)屏幕上并沒有如預(yù)期想象的那樣給出正確結(jié)果,而是顯示出一個錯誤對話框,含義為“數(shù)據(jù)溢出”,學(xué)生們百思不得其解。這時教師提示學(xué)生們將程序做一點修改,把變量X定義為單精度,試試看運行情況如何: dim I as integer dim x as single x=1 for I=1 to 10 x=x*I next I print “x=”;x 再按F5鍵運行,計算機給出正確結(jié)果,不過結(jié)果的表達(dá)方式發(fā)生了變化。教師要求學(xué)生們再對程序做少許修改,求100。骸 dim I as integer dim x as single x=1 for I=1 to 100 x=x*I next I print “x=”;x 按F5鍵運行,學(xué)生們發(fā)現(xiàn)計算機又顯示“數(shù)據(jù)溢出”。這時大家都猜測到問題可能又是出在變量所定義的數(shù)據(jù)類型上,紛紛要求老師給出辦法。教師要求學(xué)生們對程序再做一點修改,把X定義為雙精度變量: dim I as integer dim x as double x=1 for I=1 to 100 x=x*I next I print “x=”;x 再按F5鍵運行,計算機給出正確結(jié)果,問題解決。到此為止,教師的教學(xué)目標(biāo)已基本達(dá)到。但為了進(jìn)一步使學(xué)生們熟悉到計算機所能處理數(shù)據(jù)的范圍和理論上我們所能處理數(shù)據(jù)范圍的區(qū)別,可以要求學(xué)生們試著用計算機求10000!,此時大家發(fā)現(xiàn)PC計算機已無計可施。在本例中,程序整體變化不大,占用時間也不多,但通過如此一個操作過程,學(xué)生們對整型數(shù)據(jù)、單精度實型數(shù)據(jù)和雙精度實型數(shù)據(jù)之間的區(qū)別一目了然。另外,由于一切都要求學(xué)生們自己動手動腦設(shè)計,他們在操作過程中探究和解決問題的積極性、學(xué)習(xí)的主觀能動性得到了調(diào)動。
三、在教學(xué)過程中,注重通過在書本原有程序的基礎(chǔ)上逐漸改變和增加條件的方法來提高同學(xué)的綜合編程能力。例如,學(xué)生們在學(xué)習(xí)FOR……NEXT循環(huán)時,書本內(nèi)給出了一段求前100項自然數(shù)和的程序。這段程序在學(xué)生們弄懂FOR……NEXT循環(huán)之后,理解起來是并不困難的,為了提高學(xué)生們的編程能力,我要求學(xué)生們對原程序做如下幾種變化:
(1)求1到100之間所有偶數(shù)的和,要求跳數(shù)為2!
(2)求1到100之間所有偶數(shù)的和,要求跳數(shù)為1!
(3)在程序運行過程中任意輸入一個自然數(shù)n,求1到n之間所有偶數(shù)的和!
這里第一小題和書本原程序相比難度不大,只要將循環(huán)的跳數(shù)改為2即可,在模擬的前提下學(xué)生們就可以完成。第二小題增加了難度,在編程過程中,需要做兩點變化,一要將循環(huán)變量的變化范圍變?yōu)閺?到50,二要修改循環(huán)語句中的通項,將循環(huán)語句變?yōu)镾=S 2*I。要做到這些變化,需要學(xué)生們對for……next有比較深刻的理解。第三小題在第二小題的基礎(chǔ)上又增加了一點要求,即循環(huán)變量的終止值需用變量n來表示,二需要在程序的前面增加一條定義變量n的語句,三需要使用InputBox語句在程序運行的過程中將終止值輸入給變量n,這三點要求學(xué)生們能夠把以前所學(xué)的知識綜合起來運用,對剛剛學(xué)習(xí)編程的高一同學(xué)來說這還是有一定難度的,但通過練習(xí)學(xué)生們的綜合編程能力可以得到練習(xí)提高!
四、引導(dǎo)學(xué)生們在學(xué)習(xí)編程的過程中養(yǎng)成運用動態(tài)思維判定程序是否正確的習(xí)慣,這種習(xí)慣的養(yǎng)成,對培養(yǎng)學(xué)生的邏輯思維能力和抽象思維能力有非常重要的作用。為了達(dá)到這個目的,在程序設(shè)計教學(xué)中可以有意識的在以下幾個方面給予比較多的關(guān)注:(1)對于一些比較簡單的程序要求學(xué)生們直接寫出結(jié)果;(2)對于有循環(huán)或判定結(jié)構(gòu)的程序,要求學(xué)生們根據(jù)條件一步步向前走,把循環(huán)過程寫下來;(3)故意給出一些錯誤的程序,給學(xué)生們設(shè)計一些陷阱,讓學(xué)生們自己去發(fā)現(xiàn);(4)讓學(xué)生們把書本中程序編寫錯了的地方改正過來!
總之,教學(xué)有法,教無定法,只要教學(xué)得法。程序設(shè)(未完,下一頁)
|