[关于一个简单的VB程序的设计]Dim Num1 As Integer Dim i As Long Private Sub Command1_Click() Randomize Num1 = Int(100 * Rnd) End Sub Private Sub Form_Load() Command1_Click End Sub Private Su...+阅读
分类:电脑IT 四、数组中常见错误和注意事项 1.静态数组声明下标出现变量 n = InputBox("输入数组的上界") Dim a(1 To n) As Integer 2.数组下标越界 引用的下标比数组声明时的下标范围大或小。 Dim a(1 To 30) As Long, I as integer a
(1) = 1: a
(2) = 1 For i = 3 To 30 a(i) = a(i - 2) + a(i - 1) Next I 3.数组维数错 数组声明时的维数与引用数组元素时的维数不一致。 Dim a(3, 5) As Long a(I)=10 4.Aarry函数使用问题 只能对Variant 的变量或动态数组赋值。 5.获得数组的上界、下界 UBound 、Lbound函数 1.Dim数组声明 有时用户为了程序的通用性,声明数组的上界用变量来表示,如下程序段: n=InputBox("输入数组的上界") Dim a(1 To n)As Integer 程序运行时将在Dim语句处显示"要求常数表达式"的出错信息。即Dim语句中声明的数组上、下界必须是常数,不能是变量。 解决程序通用的问题,一是将数组声明的很大,这样浪费一些存储空间;二是利用动态数组,将上例改变如下: Dim a()As Integer n=InputBox ("输入数组的上界") ReDim a(1 To n) As Integer 2.数组下标越界 引用了不存在的数组元素,即下标比数组声明时的下标范围大或小。例如,要形成有如下30项的斐波那契数列: 1,1,2,3,5,8,13,21,34,…,317811,514229,832040 正确的程序段如下: Dim a(1 To 30) As Long, i% 若将For i=3 To 30改为For i=1 To 30,程序运行时会显示"下标越界"的出错信息,因为开始循环时i=l,执行到循环体语句a(i)=a(i-2)+a(i-1),数组下标i-2、i-1均小于下界1。 同样若将上例:a(i)=a(i-2)+a(i-1)语句改为:a(i+2)=a(i)+a(i+1)。 程序运行时也会显示"下标越界"的出错信息,这时是数组下标大于上界30。 3.数组维数错 数组声明时的维数与引用数组元素时的维数不一致。例如,下程序段为形成和显示3*5的矩阵: Dim a(3,5) As Long For i=1 To 3 For j=1 To 5 a(i)=i*j Print a(i);""; Next j Print Next i 程序运行到a(i)=i*j语句时出现"维数错误"的信息,因为在Dim声明时是二维数组,引用时的一个下标。 4.Array函数使用问题 Array函数可方便地对数组整体赋值,但此时只能声明Variant的变量或仅由括号括起的动态数组。赋值后的数组大小由赋值的个数决定。 例如,要将1,2,3,4,5,6,7这些值赋值给数组a,表2.5.1列出了三种错误及相应正确的赋值方法。 表2.5.1 Array函数表示方法 错误的Array函数赋值 改正的Aarry函数赋值 Dim a(1 To 8) a=Array(1,2,3,4,5,6,7,8) Dim a( ) a=Array(1,2,3,4,5,6,7) Dim a As Integer a=Array(1,2,3,4,5,6,7) Dim a a=Array(1,2,3,4,5,6,7) Dim a a()=Array(1,2,3,4,5,6,7) Dim a a=Array(1,2,3,4,5,6,7) 5.如何获得数组的上界、下界 Array函数可方便地对数组整体赋值,但在程序中如何获得数组的-上界、下界,以保证访问的数组元素在合法的范围内,可使用UBound和LBound函数来决定数组访问。 在上例中,若要打印a数组的各个值,可通过下面程序段实现: For i=Lbound(A) To Ubound(A) Print a(i) Next i 6.给数组赋值 VB6.0提供了可对数组整体赋值的新功能,方便了数组对数组的赋值操作。但真正使用不那么方便,有不少限制。数组赋值形式如下: 数组名2=数组名1 我们就此形式作讨论:这里的数组名2,实际上在前面的数组声明时,只能声明为Variant的变量,赋值后的数组2的大小、维数、类型同数组名1;否则,若声明成动态或静态的数组,例如: Dim数组名2()或Dim数组名2 (下标) 程序在运行到上述赋值语句时显示"不能给数组赋值"的出错信息。 所以,为了程序的安全、可靠,建议读者还是忍痛割爱,少用VB6.0的这一新功能,使用传统的循环结构来给数组赋值。基于此原因,我们也就在教程中不作展开。 五、过程中常见错误和注意事项 1.程序设计算法问题 该章程序编写难度较大,主要是算法的构思有困难,这也是程序设计中最难学习的阶段。经验告诉每一位程序设计的初学者,没有捷径可走,多看、多练、知难而进。上机前一定要先编写好程序,仔细分析、检查,才能提高上机调试的效率。每当一个程序通过艰苦的努力调试通过时,那苦尽甘来的喜悦令你一言难尽。 2.确定自定义的过程是子过程还是函数过程 实际上过程是一个具有某种功能的独立程序单位,供多次调用。子过程与函数过程的区别是前者子过程名无值,后者函数过程名有值。若过程有一个返回值,则习惯使用函数过程;若过程无返回值,则使用子过程,若过程返回多个值,一般使用子过程,通过实参与形参的结合带回结果,当然也可通过函数过程名带回一个,其余结果通过实参与形参的结合带回。 3.过程中形参的个数和传递方式的确定 对初学者,在定义过程时不能确定形参的个数和传递方式。 过程中参数的作用是实现过程与调用者的数据通信。一方面,调用者为子过程或函数过程提供初值,这是通过实参传递给形参实现的,另一方面,子过程或函数过程将结果传递给调用者,这是通过地址传递方式实现的,因此,决定形参的个数就是由上述两方面决定的。对初学者,往往喜欢把过程体中用到的所有变量作为形参,这样就增加了调用者的负担和出错概率,也有的初学者全部省略了形参,...
以下为关联文档:
设计一个简单的VB程序Public Class Form1 Dim w As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Timer1.Enable...
关于简单VB程序设计Dim a() As Integer Private Sub Command1_Click() Dim i As Integer Dim j As Integer Dim x As Integer For i = 0 To 4 ReDim Preserve a(i) a(i) = Rnd * 100 Next i i...
VB请高手设计一个简单的程序例子:爱以下代码在VS2005环境中成功运行: Dim Tall(34) As Integer Dim i, SunAddTime As Integer Dim j As Integer For j = 1 To 35 Tall(j - 1) = j Next For i = 0 To Tall。 Le...
怎么用vb做一个简单的程序加入标签Label1,Caption设置为“你好,请输入你的姓名” 加入文本框Text1,用来输入姓名的 加入标签Label2,按照你的要求设置字体属性,autosize属性设成true 分别加入确定,继续,结束...
vb做一个游戏怎样做一个应用程序标准的答案!比喻的软件,玩游戏,但他们的编程,但在游戏中参与更多:首先必须熟悉的3DMAS,图片或动画更逼真的3D效果,而不是图片或动画,但一组或几组,甚至几十个团体,有些游戏可能达到几...
求一个简短的VB小游戏程序代码紧急!展开全部 Private Sub Command1_Click() Dim a As Integer, b As Integer, s As String MsgBox "我记住一个数,你根据我的提示猜猜是这个数是几" Randomize a = Int(Rnd * 100)...
编写一个简单VB程序可能字数太多,发不上来,我分开发。这是第一部分。关键函数在第2部分。 楼上的方法都不可用,因为计算结果太大。用双精度无法显示最后0的位数。所以,需要使用String类型来进行单...
如何用VB程序设计打地鼠游戏下面是源代码:Form1: Private Sub Form_Load() Dim temp As Integer Randomize temp = Int(Rnd * 3) + 1 Form1.Picture = LoadPicture("C:\Users\Administrator\Desktop\打地...
简单VB程序设计分太低,不过还是给你做了 Option Base 1 Private Type Stu StuName As String StuEnglish As String StuMath As String StuChem As String StuPhys As String End Type Dim...