一、改錯(cuò)題解法現(xiàn)狀
許多同學(xué)為了掌握解決改錯(cuò)題的技巧和方法,一方面著重熟練VB集成開發(fā)環(huán)境中調(diào)試工具的使用,另一方面歸納總結(jié)了近幾年來二級考試改錯(cuò)題中涉及到的錯(cuò)誤類型。這些對于提高應(yīng)試能力無疑是有幫助的。但是在實(shí)際考試中,他們也發(fā)現(xiàn),解答改錯(cuò)題的方法淪為逐一去猜測錯(cuò)誤類型,然后按模式來套解。毫無疑問,這一解法效率慢,正確率不高,而且即便正確解答出來,也有一種僥幸的感覺。之所以如此,根本的原因在于沒有抓住具體題目算法邏輯特征這一主線,因而單純的總結(jié)錯(cuò)誤類型的意義也就不大了。
為此,我們可以采用一種比較完善的改錯(cuò)題解法——“三步逐過程法”。
二、“三步逐過程法”解法說明
“三步逐過程法”核心是把握題目算法邏輯特征,按照“從整體到部分,再由部分到整體”的思路排查錯(cuò)誤,調(diào)試程序,具體步驟可分為三步:
步驟一:把握題意,泛讀程序,分析程序組成和各過程的功能;
步驟二:從通用過程入手, 逐過程輸入并逐過程調(diào)試;
步驟三:輸入并調(diào)試事件過程,完成對各通用過程調(diào)用和組裝。
下面,我們結(jié)合一道改錯(cuò)題來具體說明每個(gè)步驟中的方法和技巧。
三、“三步逐過程法”解改錯(cuò)題舉例
以江蘇省二級VB上機(jī)考試中的一道考題為例。
已知下面程序的功能是找出2000以內(nèi)這樣的正整數(shù)N: 它的不同值的因子(包括1和N在內(nèi))之和是一個(gè)素?cái)?shù)。 例如: 16: 1+2+4+8+16=31(下圖為程序正確執(zhí)行時(shí)的畫面)。
含有錯(cuò)誤的源程序如下:
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim I As Integer, K As Integer, Sum As Integer
Sum = 0
For I = 2 To 2000
Call Fctor(I, Sum)
If Prime(Sum) Then
K = K + 1
Text1 = Text1.Text & Str(I) & " "
If K Mod 5 = 0 Then Text1 = Text1 & Chr(13) & Chr(10)
End If
Next I
End Sub
Private Sub Fctor(N As Integer, S As Integer)
Dim I As Integer, J As Integer
Do While I < N
If N Mod I = 0 Then
S = S + I
End If
I = I + 1
Loop
End Sub
Private Function Prime(N As Integer) As Boolean
Dim m As Integer
For m = 2 To Sqr(N)
If N Mod m = 0 Then Exit Sub
Next m
Prime = True
End Function
相關(guān)推薦:2010年9月計(jì)算機(jī)等級考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |