許多同學(xué)為了掌握解決改錯題的技巧和方法,一方面著重熟練VB集成開發(fā)環(huán)境中調(diào)試工具的使用,另一方面歸納總結(jié)了近幾年來二級考試改錯題中涉及到的錯誤類型。這些對于提高應(yīng)試能力無疑是有幫助的。但是在實際考試中,他們也發(fā)現(xiàn),解答改錯題的方法淪為逐一去猜測錯誤類型,然后按模式來套解。毫無疑問,這一解法效率慢,正確率不高,而且即便正確解答出來,也有一種僥幸的感覺。之所以如此,根本的原因在于沒有抓住具體題目算法邏輯特征這一主線,因而單純的總結(jié)錯誤類型的意義也就不大了。
為此,我們可以采用一種比較完善的改錯題解法——“三步逐過程法”。
二、“三步逐過程法”解法說明
“三步逐過程法”核心是把握題目算法邏輯特征,按照“從整體到部分,再由部分到整體”的思路排查錯誤,調(diào)試程序,具體步驟可分為三步:
步驟一:把握題意,泛讀程序,分析程序組成和各過程的功能;
步驟二:從通用過程入手, 逐過程輸入并逐過程調(diào)試;
步驟三:輸入并調(diào)試事件過程,完成對各通用過程調(diào)用和組裝。
下面,我們結(jié)合一道改錯題來具體說明每個步驟中的方法和技巧。
三、“三步逐過程法”解改錯題舉例
以江蘇省二級VB上機(jī)考試中的一道考題為例。
已知下面程序的功能是找出2000以內(nèi)這樣的正整數(shù)N: 它的不同值的因子(包括1和N在內(nèi))之和是一個素數(shù)。 例如: 16: 1+2+4+8+16=31(下圖為程序正確執(zhí)行時的畫面)。
對于Sub過程,其沒有返回值,因此該過程的反饋信息將可以通過兩種方式得到,一種是直接在Sub中使用輸出語句顯示運行結(jié)果;一種是利用按地址傳遞的參數(shù)將反饋信息由被改變的實參帶出。對于Fctor(N,S)過程,根據(jù)步驟一,知其功能是,求N的因子和并由S帶出。為此,首先,我們根據(jù)給定的可以設(shè)定N為16.
1. 輸入Prime過程, 用print prime(7),prime(10)來調(diào)試;
2. 輸入fctor過程, 用
dim s as integer
call fctor(16,s)
print s
來調(diào)試。
步驟三: 對于事件過程, 若代碼較長, 則逐程序塊輸入并調(diào)試(程序塊通常以循環(huán)來區(qū)分)
核心技巧: 在事件過程中, 將完成對通用過程的調(diào)用組裝, 因此特別留意以下三點:
循環(huán):注意循環(huán)變量的初值、終值和步長以及累積量的初值。
數(shù)組:元素從0開始還是從1開始。
過程:注意參數(shù)傳遞(Byval、 ByRef),返回值類型,調(diào)用形式,具體的說包括:
1. 實參與形參類型是否一致。
2. 參數(shù)傳遞方法(ByVal與ByRef)是否正確
3. 循環(huán)調(diào)用時, 同一變量調(diào)用前后值有無干涉,具體體現(xiàn)在: 前值沒有清空遺留在后值中或者動態(tài)數(shù)組元素未清空等, 此時錯誤表現(xiàn)在: 清空語句放置位置不對。
四、總結(jié):
1. 思維過程是微觀到宏觀
體現(xiàn)在: 由題意及變量含義推斷過程作用; 逐過程輸入調(diào)試后再進(jìn)行事件工程中的調(diào)用和組裝;
2. 在調(diào)試通用過程時, 應(yīng)用了數(shù)學(xué)中的特殊值法;
3. 在組裝事件過程時, 應(yīng)用了工程中的經(jīng)驗法。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |