导航:首页 > 软件知识 > 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改错程序是什么相关的资料

热点内容
拒收快递多久可以查到信息 浏览:110
福鼎花茶代理要什么条件 浏览:541
高级市场有哪些 浏览:20
通用技术表格中结构设计怎么填 浏览:962
如何扫描鞋子防盗扣查看得物信息 浏览:462
太原最大菜市场在什么地方 浏览:935
做程序的公司一般叫什么名字 浏览:140
湖州市湖州市场在哪里 浏览:594
如何选项目做代理商 浏览:424
如何做好企业信息安全防护工作 浏览:778
农业装备技术是什么期刊 浏览:477
币圈交易所怎么成为商户 浏览:842
cnc在机床上怎么弄字母程序 浏览:313
怎么把任务栏程序并排显示 浏览:789
数据字典符号都有哪些 浏览:381
新房代理公司怎么做 浏览:592
车载视觉技术的功能有哪些 浏览:410
美国程序员多少美金一个月 浏览:164
我在昌吉职业技术学院英语怎么说 浏览:170
招商银行有哪些产品 浏览:486