導航:首頁 > 軟體知識 > vb改錯程序是什麼

vb改錯程序是什麼

發布時間:2022-11-05 19:02:07

❶ VB程序改錯請教

你這是個子程序或模塊,單獨看不出問題了,需要前後結合一下看錯在哪裡

❷ VB程序改錯 數組類 求助 100分懸賞

'數組a有9個元素,本程序按照序號依次將(a1,a2,a3),(a2,a3,a4),......,(a9,a1,a2)
'九組元素分別相加(每組三個元素),生成新數組b,然後找出b數組中最大元素。
'
'原程序如下,程序中有錯,修改時不得增加或者刪除語句。謝謝!
Private Sub Form_Click()
Dim i As Integer, a(9) As Integer, b(9) As Integer
Dim k As Integer, m As Integer
For i = 1 To 9
a(i) = i
Print a(i);
Next i
Print
For k = 3 To 11
s = 0
For i = 0 To -2 Step -1
'm = k + 1 '*******************
m = k - i - 2
'If m >= 9 Then m = m Mod 9 '***********
If m > 9 Then m = m Mod 9
s = s + a(m)
Next i
b(k - 2) = s
Print b(k - 2);
Next k
Print
Print "matrix b's max.element is :"; maxv(b)
End Sub
Private Function maxv(b() As Integer) As Integer
Dim i As Integer
maxv = b(1)
'For i = 2 To LBound(b) '***********
For i = 2 To UBound(b)
If maxv < b(i) Then maxv = b(i)
Next i
End Function

❸ vb程序改錯問題

Private Sub Form_Click()
Dim i%, j%, k%
For i = 0 To 3
For j = 0 To 2 - i
Print " ";'兩個空格或全形空格
Next j
'**********SPACE**********
For k = 0 To 2 * i
Print "*";
Next k
Print
Next i
For i = 0 To 2
For j = 0 To i
'**********SPACE**********
Print " ";'兩個空格或全形空格
Next j
For k = 0 To 4 - 2 * i
Print "*";
Next k
'**********SPACE**********
Print ""'沒有空格,列印空
Next i
End Sub

❹ vb改錯題技巧,急需

計算機等考二級VB改錯題技巧:三步過程法

一、改錯題解法現狀

許多同學為了掌握解決改錯題的技巧和方法,一方面著重熟練VB集成開發環境中調試工具的使用,另一方面歸納總結了近幾年來二級考試改錯題中涉及到的錯誤類型。這些對於提高應試能力無疑是有幫助的。但是在實際考試中,他們也發現,解答改錯題的方法淪為逐一去猜測錯誤類型,然後按模式來套解。毫無疑問,這一解法效率慢,正確率不高,而且即便正確解答出來,也有一種僥幸的感覺。之所以如此,根本的原因在於沒有抓住具體題目演算法邏輯特徵這一主線,因而單純的總結錯誤類型的意義也就不大了。

為此,我們可以採用一種比較完善的改錯題解法——「三步逐過程法」。

二、「三步逐過程法」解法說明

「三步逐過程法」核心是把握題目演算法邏輯特徵,按照「從整體到部分,再由部分到整體」的思路排查錯誤,調試程序,具體步驟可分為三步:

步驟一:把握題意,泛讀程序,分析程序組成和各過程的功能;

步驟二:從通用過程入手, 逐過程輸入並逐過程調試;

步驟三:輸入並調試事件過程,完成對各通用過程調用和組裝。

下面,我們結合一道改錯題來具體說明每個步驟中的方法和技巧。

三、「三步逐過程法」解改錯題舉例

以江蘇省二級VB上機考試中的一道考題為例。

已知下面程序的功能是找出2000以內這樣的正整數N: 它的不同值的因子(包括1和N在內)之和是一個素數。 例如: 16:
1+2+4+8+16=31

含有錯誤的源程序如下:

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

「三步逐過程法」解題步驟:

步驟一:把握題意,泛讀程序,分析程序組成和各過程的功能;

那麼,我們如何分析出各個過程的功能呢?

核心技巧是從輸出語句著手, 逆向推導, 分析各變數的含義, 進而根據過程的輸入參數及其輸出或者反饋, 分析出此過程的功能。

1. 標記出輸出語句

輸出語句有兩句:

(1)、Text1 = Text1.Text & Str(I) & " "

(2)、If K Mod 5 = 0 Then Text1 = Text1 & Chr(13) & Chr(10)

2. 逆向推導,分析各變數的含義

對於輸出語句(1),顯然是將符合條件的數I顯示到文本框。而根據題意,符合條件的數必須滿足:2000以內和因子和為素數兩個條件,因此,我們從語句(1)逆向推導,我們知道I是由2到2000的循環變數,並且只有滿足Prime(Sum)為True的才能顯示到文本框,因此,我們知道Sum應該是I的因子和;對於輸出語句(2),後半句的功能是為了實現回車和換行,結合K
Mod 5=0以及逆向找出的K=K+1,我們知道,K的功能是為了控制輸出按照每5個換行進行。

3. 分析過程功能

對於語句Call
Fctor(I,Sum),由於此時的I為2到2000的循環變數,Sum為I的因子和,因此我們可以判定Fctor的功能是求I的因子和,並將該和賦給Sum變數;根據Prime(Sum),我們可以判定Prime的功能是對Sum值進行是否是素數的判定,如果是,則返回True,否則返回False.

步驟二: 從通用過程入手, 逐過程輸入並逐過程調試。

核心技巧是將通用過程輸入後, 根據步驟一中分析出的各過程的功能,用含有具體參數值的過程調用語句來調試過程, 即: 給定確定的輸入,
看有無准確的輸出或者反饋。

那麼如何構造含有具體參數值的過程調用語句呢?

對於Function過程,由於有輸入參數和返回值,因此比較好構造調用調試語句。譬如,對於Prime過程,由步驟一中我們已經知道其作用是用於判斷輸入參數是否為素數,如果為素數則返回True,否則返回False.因此我們可以構造:

Print Prime(7);Prime(10)

為此,我們只要在窗體上放置一個按鈕Command1,在Command1_Click中輸入Print
Prime(7);Prime(10)即可,若輸出為「True False」,則該過程正確。如此操作,調試結果為:

由此,我們將Exit Sub修改為Exit Function,運行正確。

對於Sub過程,其沒有返回值,因此該過程的反饋信息將可以通過兩種方式得到,一種是直接在Sub中使用輸出語句顯示運行結果;一種是利用按地址傳遞的參數將反饋信息由被改變的實參帶出。對於Fctor(N,S)過程,根據步驟一,知其功能是,求N的因子和並由S帶出。為此,首先,我們根據給定的可以設定N為16.

1. 輸入Prime過程, 用print prime(7),prime(10)來調試;

2. 輸入fctor過程, 用

dim s as integer

call fctor(16,s)

print s

來調試。

步驟三: 對於事件過程, 若代碼較長, 則逐程序塊輸入並調試(程序塊通常以循環來區分)

核心技巧: 在事件過程中, 將完成對通用過程的調用組裝, 因此特別留意以下三點:

循環:注意循環變數的初值、終值和步長以及累積量的初值。

數組:元素從0開始還是從1開始。

過程:注意參數傳遞(Byval、 ByRef),返回值類型,調用形式,具體的說包括:

1. 實參與形參類型是否一致。

2. 參數傳遞方法(ByVal與ByRef)是否正確

3. 循環調用時, 同一變數調用前後值有無干涉,具體體現在: 前值沒有清空遺留在後值中或者動態數組元素未清空等, 此時錯誤表現在:
清空語句放置位置不對。

四、總結:

1. 思維過程是微觀到宏觀

體現在: 由題意及變數含義推斷過程作用; 逐過程輸入調試後再進行事件工程中的調用和組裝;

2. 在調試通用過程時, 應用了數學中的特殊值法;

3. 在組裝事件過程時, 應用了工程中的經驗法。

希望幫到你 望採納 謝謝 加油

❺ VB程序改錯... 拜託 謝謝.....

請問錯誤定位在哪裡?

Dim c As Single
c = Val(InputBox("請輸入口令:", "輸入口令", 0))
If c = 123 Then

這里 C 為 string字元型吧?改為

Dim c As String
c = InputBox("請輸入口令:", "輸入口令", 0)
If c = "123" Then

❻ VB程序設計改錯

只在Form_Load里寫只會在窗體打開時改變
建一個Timer1,Enable為True
interval為1000
然後
Private Sub Timer1_Timer()
Dim h As Integer
Dim m As Integer
Dim s As Integer
x = x + 1
h = x \ 3600
m = (x Mod 3600) \ 60
s = x Mod 60
Label1.Caption = h & ":" & m & ":" & s
End Sub

❼ VB屬性設置及程序改錯題

第二個問題似乎上樓的都回答了,還有第一個問題設置快捷鍵的那個,在「開始」的caption屬性里輸入:&Start在「結束」的caption屬性里輸入:&End以後你就可以用Alt+s,Alt+E來操作了你試試?

❽ VB改錯調試

'程序修改如下:
Option Explicit
Private Sub Command1_Click()
Dim A(30) As Integer, i As Integer, k As Integer
For i = 1 To 30
A(i) = Int(900 * Rnd + 100)
Picture1.Print A(i);
If i Mod 5 = 0 Then Picture1.Print
Next i
Picture1.Print "升序數:"
For i = 1 To 30
If SX(A(i)) Then
Picture1.Print A(i);
k = k + 1
End If
Next i
If k = 0 Then Picture1.Print "無升序數"
Picture1.Print
End Sub
Private Function SX(ByVal N As Integer) As Boolean
Dim i As Integer, S As String
Dim w1 As Integer, w2 As Integer
S = Trim(Str(N))
For i = 2 To Len(S)
w1 = Mid(S, i - 1, 1)
w2 = Mid(S, i, 1)
If w1 > w2 Then Exit Function
Next i
SX = True
End Function
'祝你成功!

❾ 簡單vb程序改錯

我來說說吧,你這個程序太亂了,是用VBE,還是VBA編的吧,但是代碼卻是亂用了VB的。滾動條的名稱都對應不起來。還有VBA里不是用userform_load來初始化的,是用userform_Initialize.代碼改過來了。

Private Sub ComboBox1_Change()
TextBox1.Font.Name = ComboBox1.Text ' 把組合框的字體名賦給textbox
End Sub

Private Sub ScrollBar1_Change()
TextBox1.Font.Size = ScrollBar1.Value ' 把滾動條的字體大小賦給textbox
Label4.Caption = Str$(ScrollBar1.Value) ' 把滾動條的字體大小賦給label4
End Sub

Private Sub UserForm_Initialize()
ComboBox1.AddItem "宋體"
ComboBox1.AddItem "黑體"
ComboBox1.AddItem "隸書"
ComboBox1.AddItem "幼圓"
ScrollBar1.Min = 8: ScrollBar1.Max = 72
End Sub

你復制運行一下,程序里的控制項名要和你窗體上控制項名完全一致。 我運行了一下,貌似沒問題。

❿ VB程序改錯題!!!求指點!!(在線等!!)

第一區域:
For i = 1 To n - 1中的i = 1改為i=2即
For i = 2 To n - 1

第二區域:
Print Tab((k Mod 5) * 8); i在最後邊加個冒號改為
Print Tab((k Mod 5) * 8); i;

第三區域:
If k Mod 4 = 0 Then Print ;改為
If k Mod 5 = 0 Then Print ;

閱讀全文

與vb改錯程序是什麼相關的資料

熱點內容
醫葯代理產品怎麼樣 瀏覽:74
庫茲馬怎麼一直不交易 瀏覽:39
江蘇技術erp系統哪個好 瀏覽:525
建行為什麼會暫停客戶渠道交易 瀏覽:389
什麼是貨物真實交易 瀏覽:42
qq賬號信息如何重置 瀏覽:12
接種完了為什麼不顯示第二針信息 瀏覽:461
賣家怎麼刪除淘寶交易記錄 瀏覽:802
新型菜市場怎麼改造 瀏覽:915
資本市場股價如何升值 瀏覽:408
拒收快遞多久可以查到信息 瀏覽:111
福鼎花茶代理要什麼條件 瀏覽:541
高級市場有哪些 瀏覽:20
通用技術表格中結構設計怎麼填 瀏覽:963
如何掃描鞋子防盜扣查看得物信息 瀏覽:463
太原最大菜市場在什麼地方 瀏覽:936
做程序的公司一般叫什麼名字 瀏覽:142
湖州市湖州市場在哪裡 瀏覽:595
如何選項目做代理商 瀏覽:425
如何做好企業信息安全防護工作 瀏覽:779