• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    VB程序的調(diào)試技術(shù)及應(yīng)用實例研究

    2016-02-06 00:49:14陳曉紅沈東華
    無線互聯(lián)科技 2016年24期
    關(guān)鍵詞:程序運行斷點表達(dá)式

    陳曉紅,沈東華

    (1.南通大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南通 226019;2.南通市公安局 港閘分局,江蘇 南通 226000)

    VB程序的調(diào)試技術(shù)及應(yīng)用實例研究

    陳曉紅1,沈東華2

    (1.南通大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南通 226019;2.南通市公安局 港閘分局,江蘇 南通 226000)

    在編寫程序的過程中,出現(xiàn)錯誤在所難免。文章介紹了如何根據(jù)VB的錯誤類型,準(zhǔn)確地發(fā)現(xiàn)并排除錯誤。最后,結(jié)合調(diào)試工具,文章分析了如何更好地對應(yīng)用實例進(jìn)行調(diào)試。

    錯誤類型;調(diào)試工具;調(diào)試窗口

    “高級語言程序設(shè)計VB”是非計算機(jī)類理工科本科生的基礎(chǔ)必修課。學(xué)生一般需要在一個學(xué)期內(nèi)掌握VB的基本理論知識,學(xué)會編寫簡單的程序,并需要通過全國或省級計算機(jī)等級考試(二級VB)。

    學(xué)好這門課的關(guān)鍵在于多上機(jī)實踐,多編寫程序。在編程過程中,代碼中存在錯誤是在所難免的。這些錯誤可能會阻礙程序的正常運行,有些可能不影響程序的運行卻得不到正確的結(jié)果。有些學(xué)生上機(jī)遇到錯誤,就一籌莫展了,對VB的學(xué)習(xí)也失去了信心,主要原因在于沒有學(xué)會VB調(diào)試技術(shù)。遵循VB的調(diào)試技術(shù),可以跟蹤到程序內(nèi)部,觀察程序的運行過程,觀察變量和屬性是如何隨著語句的執(zhí)行而改變,從而發(fā)現(xiàn)并排除程序中的錯誤。

    1 VB 錯誤類型

    編程時遇到的錯誤五花八門,為了更有效地運用調(diào)試手段排除錯誤,文章把遇到的錯誤分為以下3類。

    1.1 編譯錯誤

    編譯錯誤是由于違背了VB的語法規(guī)則,錯誤地書寫語句而造成的。例如,拼錯了某個關(guān)鍵字,表達(dá)式書寫不完整,英文標(biāo)點符號錯用為中文標(biāo)點符號,If語句沒有end if語句與之相對應(yīng)等。

    在編譯程序時,VB系統(tǒng)能夠進(jìn)行“自動語法檢測”,逐一發(fā)現(xiàn)程序中的語法錯誤,并彈出對話框,給出“編譯錯誤”的提示,以方便對出錯行進(jìn)行修改。

    1.2 運行錯誤

    運行錯誤是指在程序運行過程中,執(zhí)行非法語句而引發(fā)的錯誤。例如,數(shù)組下標(biāo)越界、數(shù)據(jù)溢出、類型不匹配、無效屬性值、除數(shù)為零等。

    這類錯誤在編寫形式上符合語法規(guī)則,所以不會在編譯時被發(fā)現(xiàn)。在程序運行時,系統(tǒng)一旦檢測到運行錯誤,就會顯示出相應(yīng)的錯誤信息,等待編程人員修改。

    1.3 邏輯錯誤

    如果程序在編譯和運行時均未發(fā)現(xiàn)錯誤,卻沒有得到預(yù)期的運行結(jié)果,那么,程序發(fā)生了邏輯錯誤。對于這類錯誤,VB系統(tǒng)通常無法自動檢測,也不會給出錯誤提示,需要借助調(diào)試工具,分析程序的運行過程才能排查出來,加以改正。

    2 VB調(diào)試工具

    2.1 斷點設(shè)置

    程序中的語句都可以設(shè)置為斷點,在一段程序中可以設(shè)置多個斷點。設(shè)置斷點的方法是:將光標(biāo)移至需設(shè)置斷點的程序行,按下F9鍵。

    程序運行到斷點語句處將暫停,進(jìn)入中斷狀態(tài),這時可以查看程序運行到此處的運行狀態(tài),查看變量和屬性的值,和預(yù)期的目標(biāo)值相比較,可以判斷這一部分程序的執(zhí)行是否符合用戶的意圖。

    2.2 單步調(diào)試

    單步調(diào)試就是以“逐語句”的方式執(zhí)行程序。單步調(diào)試的方法:在程序的設(shè)計態(tài)或運行態(tài)按下F8鍵。

    每執(zhí)行一次單步調(diào)試,程序的執(zhí)行就向前推進(jìn)一步,就中斷一次,因此,可以逐個語句地檢查每個語句的執(zhí)行狀態(tài),特別是遇到選擇或循環(huán)語句時,便于檢測這些語句中的條件判斷結(jié)果,便于發(fā)現(xiàn)程序中存在的邏輯錯誤。

    2.3 調(diào)試窗口

    調(diào)試工作的目標(biāo)十分明確,就是跟蹤程序的執(zhí)行過程,在中斷狀態(tài)下通過調(diào)試窗口來查看變量和屬性的值,以達(dá)到迅速發(fā)現(xiàn)錯誤位置的目的。VB中提供了以下幾種調(diào)試窗口。

    2.3.1 本地窗口

    在程序中斷時,本地窗口可以自動顯示當(dāng)前過程中過程級變量的值以及當(dāng)前模塊中模塊級對象、變量的值。

    在本地窗口中,允許修改變量的當(dāng)前值。這一技巧的使用,有時能提高調(diào)試的工作效率。例如,在if語句中,可以修改變量使之滿足判斷條件,調(diào)試then語句塊程序;然后,再修改變量使之不滿足判斷條件,調(diào)試else語句塊程序。

    2.3.2 立即窗口

    在程序中斷時,在立即窗口輸入變量名或表達(dá)式,并按Enter鍵,就可以查看其當(dāng)前值。本地窗口中無法查看的全局變量和表達(dá)式的值,在立即窗口中也能查看。但立即窗口查看變量或表達(dá)式時,每次都需要手動輸入,比起其他兩種調(diào)試窗口,略顯不便。

    2.3.3 監(jiān)視窗口

    在使用監(jiān)視窗口前,首先要添加需要監(jiān)視的表達(dá)式。在設(shè)計時,和程序中斷時,都可以進(jìn)行添加。在中斷時,使用監(jiān)視窗口,可以一目了然地監(jiān)測到指定的表達(dá)式的值、數(shù)據(jù)類型、所屬過程或模塊。監(jiān)視窗口的優(yōu)點在于,可以在一個界面上顯示所有過程中需監(jiān)測的表達(dá)式值;而本地窗口主要顯示的是當(dāng)前過程中的變量值。

    3 調(diào)試實例

    本文選取了江蘇省計算機(jī)等級考試(二級VB)的一條改錯真題,來詳細(xì)介紹調(diào)試工具的使用。

    題目如下:找到介于300~900之間的由3個不同數(shù)字組成的完全平方數(shù)。所謂完全平方數(shù)是指其平方根為整數(shù)的數(shù)。例如,324的各位數(shù)字不同,且平方根是18,所以324是符合要求的數(shù)。程序界面如圖1所示。

    圖1 程序運行界面

    拿到改錯題,首先要泛讀并分析一下,本程序中的pf ()函數(shù)過程用于判斷平方根是否為整數(shù),vf()函數(shù)過程用于判斷是否由不同數(shù)字組成。而Command1_Click()事件過程用于輸出在指定范圍內(nèi)符合要求的數(shù)。然后,進(jìn)入調(diào)試改錯。需要注意的是,在調(diào)試時,可能會刪除或者覆蓋掉部分必要的代碼,所以在調(diào)試前應(yīng)該先將程序備份。

    首先,單擊Command1,此時程序出現(xiàn)運行錯誤:溢出。究竟在何處產(chǎn)生“溢出”呢?需要深入到程序內(nèi)部監(jiān)測。選擇“單步調(diào)試”,配合“監(jiān)視窗口”的方法進(jìn)行調(diào)試。選擇Command1_Click()中的變量i,p,pf()過程中的變量n,vf()過程中的變量n,k,a(k),a(i),a(j)進(jìn)行監(jiān)測。

    開始單步運行前,可以使Command1_Click()中循環(huán)變量i的初值設(shè)置為符合條件的數(shù)324,來監(jiān)測輸入符合的數(shù),在哪一步出錯,致使得不到正確的輸出。就本題而言,需要發(fā)現(xiàn)pf()函數(shù)能正確執(zhí)行,而在vf()函數(shù)中無法執(zhí)行到n<0,所以,修改第一處,將n<0改為n=0。繼續(xù)單步運行,通過監(jiān)測窗口,觀察變量的變化,發(fā)現(xiàn)Command1_Click()中的i和vf()中的n同步變化,而本題中Command1_Click()中的i變量應(yīng)保留本身的值,所以修改第二處,將vf()過程中的形參n改為按值傳遞。這樣,符合條件的數(shù)324,就能得到正確輸出。

    保存修改后的程序,并將循環(huán)變量i恢復(fù)為300,然后運行,發(fā)現(xiàn)程序能運行,但輸出卻多了一些不符合要求的值,如400等。再使用技巧,將循環(huán)變量i,改為400,監(jiān)測為何能輸出。單步執(zhí)行到vf()中,發(fā)現(xiàn)是因為當(dāng)兩數(shù)相等時,未及時退出過程,導(dǎo)致一定會執(zhí)行到vf=True.。修改第三處,將Exit For改為Exit Function。最后,保存程序并運行,發(fā)現(xiàn)此時程序已能正確運行,調(diào)試成功。

    4 結(jié)語

    要想學(xué)好VB程序調(diào)試,需要不斷探究和摸索,在調(diào)試過程中積累經(jīng)驗。靈活地運用VB程序調(diào)試工具,可以快速地發(fā)現(xiàn)并排除程序中的錯誤。

    [1]成耀,鄭國平,魯松. 如何讓學(xué)生掌握VB上機(jī)調(diào)試之我見[J]. 山東工業(yè)技術(shù),2013(12):210.

    [2]吳中寧. VB程序調(diào)試[J].電腦知識與技術(shù),2007(11):749-751.

    [3]宋翔.VB程序?qū)Φ恼{(diào)試和常見錯誤的捕獲及錯誤處理方法[J].陜西教育(高教版),2011(7):208,214.

    Research on debugging technology of VB program and its application

    Chen Xiaohong1, Shen Donghua2
    (1.Computer Science and Technology College of Nantong University, Nantong 226019, China; 2.Gangzha Branch of Nantong Public Security Bureau, Nantong 226000, China)

    During the process of compiling programs, it is difficult to avoid errors.This article introduces how to find and eliminate errors according to the error types of VB. Finally, how to better debug the program instance combining with the debugging tools is analyzed in this paper.

    error type; debugging tools; debugging window

    2015年度省第四期“333工程”科研項目資助計劃;項目編號:BRA2015116。

    陳曉紅(1981— ),女,江蘇南通,碩士,講師;研究方向:數(shù)據(jù)挖掘。

    猜你喜歡
    程序運行斷點表達(dá)式
    一個混合核Hilbert型積分不等式及其算子范數(shù)表達(dá)式
    表達(dá)式轉(zhuǎn)換及求值探析
    行政公益訴訟訴前程序運行檢視
    法大研究生(2020年2期)2020-01-19 01:43:04
    一類無限可能問題的解法
    淺析C語言運算符及表達(dá)式的教學(xué)誤區(qū)
    主導(dǎo)電回路發(fā)生斷點故障判斷方法探討
    論刑事錯案的成因
    《刑事訴訟法》修改背景下刑事和解制度淺析
    議C語言中循環(huán)語句
    商(2012年11期)2012-07-09 19:07:55
    TKScope仿真調(diào)試Cortex-M3內(nèi)核的高級手段
    天峨县| 隆昌县| 商水县| 合山市| 乐山市| 涟源市| 木里| 临江市| 梅河口市| 望都县| 政和县| 井冈山市| 如皋市| 宁阳县| 泰宁县| 扶余县| 通海县| 剑河县| 富源县| 道孚县| 怀化市| 德化县| 敦化市| 甘谷县| 大足县| 卢氏县| 台安县| 环江| 南川市| 新竹市| 措勤县| 邹平县| 禄劝| 绵阳市| 沈丘县| 壤塘县| 阿克| 京山县| 桓仁| 永安市| 汶川县|