VB第6章 数组
VB程序设计教程 第四版 第6章

a
10
执行过程体
x a
20 10
返回
返回
20 Integer a = = : y b10 的地址 b 10 = 20 : b 10 aCall = Swap 10 : y b 的地址 2(a, b 10 = b) 20 : 10 b Call a = Text Swap b
汉字的机内码最高位为1,Asc函数码值为小于0(补码)
西文字符的最高位为0,Asc函数求其码值为大于0
Function CountC%(ByVal s$) Dim i%, k% Dim c As Char For i = 1 To Len(s) c = Mid(s, i, 1) If Asc(c) < 0 Then k = k + 1 Next CountC = k End Function Sub Command1_Click() Dim c1% c1 = CountC(Text1.Text) 显示 Text1.Text 和 C 1 End Sub
Functioc Count%(st$) Dim i% Count = 0 i = InStr(st, “ the ") Do While (i > 0) Count = Count + 1 st = Mid(st, i + 1) i = InStr(st, “ the ") Loop VB 程序设计教程 End Function
Z←gcd
例6.2 设断点演示过程
调用形式:函数过程名([参数列表])
参数列表(称为实参或实元):必须与形参个数相同,位置与 类型一一对应。可以是同类型的常量、变量、表达式。
vb最全最经典课件

本章目录
第二章 简单的程序设计
2.1 2.2 2.3 2.4
对象的概念 建立简单的应用程序 窗体和基本控件 综合应用
本章目录
2.1 Visual Basic对象的概念
2.1.1 对象和类 1.对象 对象就是日常生活中的某个实在的物体 例如,一个人、一辆汽车、一台电脑。 对象都具有各自的特征(属性)、行为(方法) 。 人有身高、体重、听力等特征;也具有起立、 行走、说话、踢足球等行为。
窗体窗口 属性窗口
输出窗口
本章目录
1.2.2主窗口
1.三种工作模式 设计模式 界面的设计和代码的编制 运行模式 运行应用程序 中断模式 暂时中断程序运行,调试程序 2. 菜单栏 包.2.3 窗体设计/代码设计窗口
1.窗体设计器窗口 建立应用程序的界面(一个应用程序可以 有多个窗体,通过“项目|添加Windows窗体” 命令增加新窗体)。 2.代码设计窗口 专门用来进行代码设计,包括各种事件过程、过 程和类等源程序代码的编写和修改。 打开代码设计窗口的方法:双击窗体、控件或单 击代码窗口上方的选项卡组对应项。
1 引例 例1.1简单的动画演示。 一行文字“欢迎使用 ” 在具有背 景图案的窗体中上、下移动。 移动方法有两种:单击手动按钮,移动5 个像素单位 ;单击自动按钮,按定时器 触发频率连续移动;当内容超出窗体范 围时,进行反弹。
本章目录
引例
根据要求, 用工具箱上 的Label、 Button、 Timer等控 件,在窗体 上建立控件 对象,进行 有关的属性 设置。
End Sub
Val( )函数
将数字字符转换成数值型
本章目录
保存程序和文件组成
程序存盘后将建立一个文件夹,包含如下内容: (1)xxx.sln 项目关联、配置等的信息 (2) xxx.suo 开发环境选项的信息 (3) xxx.vbproj 项目文件 (4)Form1.vb 窗体文件 (5)AssemblyInfo.vb 项目集合信息(系统自动建立) (6) xxx.exe 可执行文件(在Bin文件夹) (7)Bin 文 件 夹 可执行文件的默认路径, 可用 Application.StartupPath()获得该路径。 (8)Debug 文件夹 存放程序调试产生的信息
VB6.0教程

2、工程的组成
应用程序建立在工程的基础之上,一个工程是各种类型文件的集合,它包括工程文件 (Vbp)、窗体文件(Frm)、标准模块文件(Bas)、类模块文件(Cls)、资源文 件(Res)和ActiveX的文件(Ocx)。 1.工程文件 存储了与该工程有关的所有文件和对象的清单,这些文件和对象自动链接到工程文件 上,每次保存工程时,其相关文件信息也随之更新。当然,某个工程下的对象和文件 也可供其他工程共享使用。在工程的所有对象和文件被汇聚在一起并完成编码后,就 可以编译工程,生成可执行文件。 2.窗体文件 存储了窗体上使用的所有控件对象、对象的属性、对象相应的事件工程和程序代码。 一个应用程序至少包含一个窗体文件。 3.标准模块文件 存储了所有模块级变量和用户自定义的通用过程。通用过程是指可以被应用程序各处 调用的过程。 4.类模块文件 用来建立用户自己的对象。类模块包含用户对象的属性及方法,但不包含事件代码。
二、面向过程的语言
用计算机能够理解的逻辑来描述需要解决的问题和解决问题的具体方法、步骤。 面向过程的程序设计的核心是数据结构和算法,其中数据结构用来量化描述需要解决 的问题,算法则研究如何用更快捷、高效的方法来组织解决问题的具体过程。面向过 程的程序设计语言主要有BASIC、FORTRAN、PASCAL、C等。
下面简单介绍如何安装Visual Basic 6.0企业版。 1.将Visual Basic 6.0安装盘放入光躯中,浏览安装盘,双击 “SETUP.EXE” 文件,进入安装向导。 2.直接点击“下一步” 按钮,在“最终用户协议”对话框中仔细阅读 其协议,若确实无疑义,选中“接受协议”,再点击“下一步” 按钮。 3.输入产品的ID号。 4.选中“安装Visual Basic 6.0中文企业版” ,再点击“下一步” 按钮。 在弹出的菜单中点击“继续” 按钮,再点击“确定” 按钮,等待片 刻。 5.一般情况下使用默认安装文件夹即可,当然也可以点击“浏览”按钮 自由更改安装文件夹。 6.点击“典型安装”左边的图标按钮,等待拷贝文件。 7.点击“重新启动Windows” ,重新启动计算机后,在出现的窗体中把 “安装 MSDN”项去掉,再点击“下一步” 按钮,再点击“是”。 8.直接点击“下一步” 按钮 ,把弹出的窗体中的“现在注册”项去掉, 再点击“完成”按钮,即完成了VB的安装。
VB教程第6章数组

第6章 数组和用户自定义类型 章
6.2定长数组和动态数组的定义 定长数组和动态数组的定义
■动态数组的定义
建立动态数组一般包括声明和大小确定两步: 建立动态数组一般包括声明和大小确定两步: 语句声明括号内为空的数组。 (1)用Public、Static或Dim语句声明括号内为空的数组。 ) 、 或 语句声明括号内为空的数组 格式: 数组名() 数据类型>] 格式:Dim 数组名() [ As <数据类型 数据类型 语句指明该数组的大小。 (2)在过程中用 )在过程中用Redim语句指明该数组的大小。 语句指明该数组的大小 格式: 数组名( 维数定义〉 数据类型 数据类型]) 格式:Redim [Preserve] 数组名(〈维数定义〉[数据类型 )
第6章 数组和用户自定义类型 章
6.2定长数组和动态数组的定义 定长数组和动态数组的定义
■定长数组的定义
在定义数组时,已确定数组元素个数的数组都是定长数组。 在定义数组时,已确定数组元素个数的数组都是定长数组。 如下: 定长数组的定义格式如下: Public|Static|Dim <数组名 数组名>[(<维数定义 维数定义>)] [As <数组类型 数组名 维数定义 数组类型 >],…,
第6章 数组和用户自定义类型 章
6.1数组的概念 ■数组、数组元素 数组、
需要说明的是: 需要说明的是: (1)数组的命名和简单变量的命名规则相同。 )数组的命名和简单变量的命名规则相同。 (2)数组元素的下标必须用括号括起来。不能把 )数组元素的下标必须用括号括起来。不能把a(5)写成 写成 a5,a5会被认为是一个简单变量。 会被认为是一个简单变量。 , 会被认为是一个简单变量 (3)数组元素的下标必须是常量,常量可以是直接常量、 )数组元素的下标必须是常量,常量可以是直接常量、 符号常量或常量表达式,一般是整型常量。 符号常量或常量表达式,一般是整型常量。 (4)数组元素的下标必须是整数,如果是小数,系统会自 )数组元素的下标必须是整数,如果是小数, 动按四舍五入取整。 将被视为a(5)。 动按四舍五入取整。如a(4.6)将被视为 将被视为 。
vb6 数组 维数 -回复

vb6 数组维数-回复VB6 数组的维数在VB6中,数组是一种存储多个相同类型的元素的数据结构。
数组的维数指的是数组中的维度数,即数组元素的分布情况。
VB6中的数组可以是一维,二维,多维甚至是动态数组。
在本文中,将一步一步回答关于VB6数组维数的问题,以帮助读者了解并使用VB6数组。
第一步:了解一维数组一维数组是VB6中最简单的数组形式。
它由一列连续的元素组成,每个元素可以通过数组名和索引来访问。
在VB6中,一维数组的索引从0开始,表示第一个元素,依次递增。
下面是一个示例的一维数组声明和初始化:Dim myArray(4) As Integer这样的声明创建了一个包含5个整数元素的一维数组。
访问数组中的元素可以使用索引值:myArray(0) = 10myArray(1) = 20这些语句将分别向数组的第一个和第二个元素赋值。
第二步:应用二维数组在VB6中,可以使用二维数组来表示表格、矩阵、棋盘等具有二维结构的数据。
二维数组可以通过行和列两个索引来访问其元素。
下面是一个示例的二维数组声明和初始化:Dim myArray(2, 3) As Integer这样的声明创建了一个包含3行4列的整数二维数组。
访问数组中的元素可以使用两个索引值:myArray(0, 0) = 10myArray(1, 2) = 20第一个语句将第一行第一列的元素赋值为10,第二个语句将第二行第三列的元素赋值为20。
第三步:理解多维数组在VB6中,还可以创建多维数组,用于表示更高维度的数据结构。
多维数组有多个索引,每个索引对应一个维度。
下面是一个示例的三维数组声明和初始化:Dim myArray(2, 3, 4) As Integer这样的声明创建了一个包含3个平面,每个平面有3行4列的整数三维数组。
访问数组中的元素可以使用三个索引值:myArray(0, 1, 2) = 10myArray(2, 2, 3) = 20第一个语句将第一个平面第二行第三列的元素赋值为10,第二个语句将第三个平面第三行第四列的元素赋值为20。
vb中数组的定义

vb中数组的定义VB中数组的定义在VB中,数组是一种特殊的数据结构,它可以存储多个相同类型的元素。
数组在编程中非常常见,可以用于存储和处理大量的数据。
本文将详细介绍VB中数组的定义及相关知识。
1. 数组的定义在VB中,可以使用Dim语句来定义一个数组。
语法如下:Dim arrayName(index) As dataType其中,arrayName是数组的名称,index是数组的索引(从0开始),dataType是数组中元素的数据类型。
例如,我们可以定义一个包含5个整数的数组:Dim numbers(4) As Integer2. 数组的初始化在定义数组后,我们可以对数组进行初始化。
有两种常用的方法来初始化数组:(1) 使用赋值语句逐个为数组元素赋值。
例如:numbers(0) = 1numbers(1) = 2numbers(2) = 3numbers(3) = 4numbers(4) = 5(2) 使用数组初始化列表来初始化数组。
例如:Dim numbers() As Integer = {1, 2, 3, 4, 5}3. 数组的访问可以使用数组的索引来访问数组中的元素。
索引从0开始,通过数组名称和索引组合使用来访问数组元素。
例如,要访问数组numbers中的第一个元素,可以使用以下语句:Console.WriteLine(numbers(0))4. 数组的长度可以使用数组的Length属性来获得数组的长度。
例如,要获取数组numbers的长度,可以使用以下语句:Console.WriteLine(numbers.Length)5. 多维数组在VB中,还可以定义多维数组。
多维数组是一个表格,可以有多个行和列。
以下是一个二维数组的示例:Dim matrix(2, 2) As Integermatrix(0, 0) = 1matrix(0, 1) = 2matrix(1, 0) = 3matrix(1, 1) = 46. 动态数组除了静态数组,VB还支持动态数组。
VB-第6章 数组与自定义类型
数组的概念
数组并不是一种数据类型,而是一组相同类型数据的 集合。用一个统一的名字(数组名)代表逻辑上相 关的一批数据,每个元素用下标变量来区分;下标 变量代表元素在数组中的位置。 其表示形式: A(1),A(10) X(1,1), X1(1,10), X(2,10) Y(0,0,0), Y(1,2,5) Dim mark(1 to 100) as integer
4 4
若要求一个班100个学生的平均成绩,然后 统计高于平均分的人数。
aver = 0 :sum = 0 For i = 1 To 100 mark = InputBox("输入" + i + "位学生的成绩") sum = sum + mark Next i aver = sum / 100
mark是一个简单变量,存放的是最后一个学生的成绩。 已有知识解决方法:再重复输入成绩,带来两个问题: (1)输入数据的工作量成倍增加; (2)若本次输入的成绩与上次不同,则统计的结果不正确。 解决此问题的根本方法,引入数组,始终保持输入的数据, 一次输入,多次使用。
7 7
数组的概念
Visual Basic中的数组,按不同的方式分为以下几类:
按数组的大小(元素个数)是否可以改变来分为: 静态(定长)数组、动态(可变长)数组。 按元素的数据类型可分为: 数值型数组、字符串数组、日期型数组、变体数组等。 按数组的维数可分为: 一维数组、二维数组、多维数组。 对象数组:菜单对象数组、控件数组。
Preserve参数:保留数组中原来的数据
24
24
说明
(1)ReDim语句是一个可执行语句,只能出现在过程中,并且 可以多次使用,改变数组的维数和大小。 (2)定长数组声时中的下标只能是常量,而动态数组ReDim 语 句中的下标是常量,也可以是有了确定值的变量。 例: Private Sub Form_Click() dim a() Dim N As Integer N=Val(InputBox(“输入N=?”)) reDim a(N) As Integer „„. End sub
06 VB程序设计语句
说明: ⑴语句执行过程。
【例6.15】从键盘输入字符并统计字符个数,当输入字符为“?”时,停止计数。 【例6.16】用Do语句编写程序,求1到100的累加和。
退出
第23页
⑵ Do循环需要有能够改变循环条件表达式值的语句,否则循环永远不会 结束,即死循环。
⑶ Exit Do语句用于强制跳出循环。 ⑷ Do...Loop 语句的另一种形式格式:
退出
第16页
3 .当程序中依赖某个单独的关键变量或表达式作判断条件时,Select Case语句效率更高,可读性好。
4.如果测试表达式的值能与多个Case子句表达式的值相匹配,只执行第一 个匹配的Case子句下面的语句块。
【例6-10】用Case语句改写例6.7,将输入成绩转换为相应学分。 注意值列表顺序的合理性。
退出
3.If 语句的嵌套 格式:
If<条件1>Then <语句块1>
ElseIf<条件2>Then <语句块2> …
[Else 语句块n+1]
End If
第11页
退出
第12页
If语句多分支结构流程图
真 语句块1
假 条件
1真
条件 假
语句块2
2
真
语句块n
条件 n
假 语句块n+1
退出
第13页
If语句的嵌套可以用于条件比较复杂的多分支情况。 【例6-6】已知分段函数: 编写程序,输入自变量x的值,计算并输出函数y的值。
退出
For…Next语句 第19页
格式:
For <循环变量> = <初值> To <终值> [Step步长]
第六章 数组.
sc(i, j) = InputBox("输入sc(" &i & "," & j & ") 的值") Next j Next I
3、数组在内存中存放的顺序 数组在内存中存放时,首先变化的是最后一维的 下标,然后变化倒数第二维的下标…(按行存放)。 例如,数组A(4,3)在内存中的分配如下:
A(0,0) A(1,0)
其表示形式: A(1),A(6) X(1,1), X1(1,6), X(2,6)
Y(0,0,0), Y(1,2,5)
6.2 一维数组
一、 一维数组的声明 (无隐式声明)
形式:
Dim 数组名([<下界>to]<上界>)[As <数据类型>] 或: Dim 数组名[<数据类型符>]([<下界>to]<上界>) ‘ 声明了a数组有6个元素 数组元数的数据类型
二、 访问整个数组
对于数组中的各个元素,我们可以用数组名称 (索引值)进行访问。然而,是无法只用数组名称就 对所有的元素进行计算。
例如:要把数组中的各元素值都加上1 这是错误的! Dim X(4)
X=X+1 For I=0 to 4 x(i)=x(i) +1 这是正确的!
Next
无法对数组中的所有元素同时进行运算处理。 但是,可以一次“读取”整个数组本身。
6.4 数据排序与查找
数据交换
将A和B两个变量中的数值交换
A=B B=A Temp=A
A=B
B=Temp
一、选择排序
算法思想:
1)对有n个数的序列(存放在数组a(n)中),从中选 出最小(升序)或最大(降序)的数,与第1个数交 换位置;
VB6.0详细讲义(VB6实用教程_VB6从入门到精通)
第一章Visual Basic介绍第二章用户界面设计第三章编程的基础(含变量,常量,条件语句,循环语句,自定义变量,自定义过程,对象和类等基础)第四章Windows 95的新控件Visual Basic的输入输出第五章Visual Basic的鼠标事件和绘图第六章Visual Basic的数据库、报表、预览、打印第七章从文件中存取资料第八章发行应用程序第九章使用Windows API和用Visual Basic建立自己的屏幕保护程序第十章创建ActiveX控件第十一章ActiveX文档第十二章用对象链接与嵌入(OLE)扩展Visual Basic第十三章使用资源文件第十四章用Visual Basic建立ActiveX DLL第十五章用Winsock控件进行Internet通信第十六章Web浏览控件第一章Visual Basic介绍§2 窗体和命令钮介绍一、窗体窗体是Windows的基本组成部分,这也是为什么这个操作系统叫Windows的原因。
它的主要属性除上面介绍的以外,还包括:1,Appearance属性这个属性用来决定控件是否采用三维效果。
2,BorderStyle属性这个属性决定了窗体的边框形式,共有6种属性值。
改变窗体的BordrStyle 属性后,窗体在屏幕上没有变化,它只在运行时才变为你所要求的样子。
3,ControlBox属性程序员用来决定采用不采用控制框的属性,仅在程序运行时才有效。
4,Font属性程序员可以改变该窗体上显示信息的字体,它控制着直接在窗体上打印的文本显示。
5,Icon属性这个属性是用户经常要使用的一种属性。
当用户的应用程序在工具条上最小化或在Windows桌面上变为一个独立应用程序时,该属性决定将采用何种图标,窗体控制框里的图标也由它决定。
为自己的窗体设置该属性时,要控制住自己挑三拣四的冲动。
6,Visible属性该属性决定窗体是否可见。
错误地改变其值是很危险的,窗体会从眼前消失,这种莫名其妙的事情会使用户惊惶失措,所以肩负重任的程序员一定要慎重哟!7,WindowState属性指定窗体在运行时的三种状态:正常、最小化、最大化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教案讲稿第六章数组[旧课复习]:复习内容:1.循环语句2.多重循环使用复习目的:学生掌握两种基本循环结构语句的使用以便在数组中能正确使用循环语句复习时长:大约5分钟[新课导入]:导入方式:引入日常生活中的实例让学生理解数组的功能导入目的:增强学生的理解能力导入时长:大约10分钟[新课讲授]:重点:静态数组、动态数组的基本操作及列表框和组合框的使用难点:控件数组方法:运用多媒体辅助教学,采用讲授法和启发式教学法6.1数组的概念6.1.1数组概念数组并不是一种数据类型,而是一组相同类型数据的集合。
用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。
数组中的各个变量称为数组元素,数组中的每个元素用一个唯一的下标(索引)来标识。
如m(5),表示名为m的数组中下标为5的那个元素。
数组元素的个数称为数组的长度(大小)。
数组的各个元素在内存中是连续存放的,如图6-1所示。
数组名表示这个连续数据区域的起始位置,下标表示对应元素在内存区域中的相对位置。
图6-1 数组在内存中的存放方式6.1.2数组的分类Visual Basic中的数组,按不同的方式可分为以下几类:按数组的大小(元素个数)是否可以改变分为:静态(定长)数组、动态(可变长)数组。
按元素的数据类型可分为:数值型数组、字符串数组、日期型数组、变体数组等。
按数组的维数可分为:一维数组、二维数组、多维数组。
对象数组:菜单对象数组、控件数组。
6.2静态数组6.2.1 静态数组的声明1.一维数组静态一维数组的声明格式如下:Dim数组名(下标) [ As <类型> ]说明:(1)数组的命名与简单变量的命名规则相同。
(2)下标的格式为:[<下界> to <上界>]<下界>和<上界>不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。
若省略下界,则默认为0。
(4)数组的元素个数=上界−下界+1。
(5)如果省略As子句,则数组的类型为变体类型。
2.多维数组静态多维数组的声明格式如下:Dim数组名(下标1[,下标2…]) [As类型]说明:(1)下标个数决定数组的维数,VB允许声明的维数最多为60维。
(2)每一维的大小=上界-下界+1;数组的大小=各维大小的乘积。
例:Dim C(-1 To 5,4)As Long声明的数组名是C,类型为长整型、二维数组,第一维下标范围为-1~5,第二维下标的范围是0~4,占据7×5个长整型变量的空间。
(3)在数组声明中的下标关系到每一维的大小,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。
(4)在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量或表达式。
6.2.2 数组的基本操作1.数组的输入数组元素可以通过赋值语句输入,元素过多且输入较有规律时,可借助循环语句输入。
例如:Dim A(1 To 10) As IntegerFor i=1 To 10A(i)=1Next i2.数组的输出数组的输出方式有很多种,可以输出在标签、文本框、列表框中,也可以使用Print方法输出在窗体或图片框中。
【例6-1】随机产生10个两位整数,找出10个数中最大值、最小值,并计算10个数的总和。
分析:先10次随机取数,得到10个不相同的两位数,用数组存储起来。
然后对数组中的数进行查找,找出最大值、最小值,最后计算出10个数之和,并输出在文本框中。
设计步骤如下。
(1)建立如图6-1所示的界面。
添加一个框架Frame1,然后再添加一个标签Label1用来输出随机取出的10个数字。
图6-1 求最大值、最小值及所有数字总和(2)编写代码。
由于数组需要在不同的过程中使用,所以在通用段中声明数组:Dim s(1 To 10) As Integer窗体加载时,随机取数并显示输出在窗体上:Private Sub Form_Load()Dim p As StringRandomizep = ""For I = 1 To 10s(I) = Int(Rnd * 90) + 10If I Mod 5 <> 0 Thenp = p & Str(s(I)) & ","Elsep = p & Str(s(I)) & Chr(13) End IfNext ILabel1.Caption = LTrim(p)End Sub单击“确认”按钮,求数组中的最大值、最小值、总和:Private Sub Command2_Click()Dim max As Integer, min As Integer, x As Integermax = s(1): min = s(1): x = 0For I = 1 To 10 '从第二个数组元素开始比较If max < s(I) Then max = s(I)If min > s(I) Then min = s(I)x = x + s(I)NextText1.Text = maxText2.Text = minText3.Text = xEnd Sub6.2.3 与数组相关的函数1.数组初始化函数ArrayVB中给数组的各个元素赋初值,就称为数组的初始化。
不进行赋初值,则在定义的时候自动初始化为0或者空串。
如果数组是一维数组,则可使用VB提供的Array函数。
其语法格式为:<数组名>=Array(<数组元素值1>,<数组元素值2>,<数组元素值3>,…)说明:(1)<数组名>是预先定义的Variant类型变量。
赋值时,只需要数组变量名,不需要添加数组的下标。
(2)数组元素值的列表按下标顺序排列,以逗号分隔开,连续赋值。
如果不提供参数,则创建一个长度为0的数组。
(3)使用Array函数创建的数组的下界可由Option Base语句指定的下界来决定。
换句话说,下界值只有0和1两种情况。
(4)Array函数返回的是一组Variant类型的值。
该数组为一维,二维或多维数组不适用。
2.用UBound()和LBound()函数确定数组的上、下界若不知道数组的上、下界,则可通过UBound()和LBound()函数获得。
函数格式为:UBound(数组名, [N]) 求数组中第N维的上界值LBound(数组名, [N]) 求数组中第N维的下界值例如:Option Base 1Dim S(1, 3, 2) As Integera = UBound(S, 2) 'a得到数组S第二维的上界值3b = LBound(S, 3) 'b得到数组S第三维的下界值16.3 动态数组在数组的使用中,有时在程序设计阶段暂时不能确定数组所需的大小,而无法再声明数组的大小。
若在程序一开始就声明一个较大的数组,则保存该数组的内存长期被占用,浪费系统资源。
若使用动态数组,则数组大小不固定,可以在任何时候根据需要改变大小,从而有效利用系统资源。
6.3.1 建立动态数组要创建动态数组,可按照以下步骤进行。
(1)首先用Dim语句在过程中声明一个数组,只定义其数组名,不指定数组的大小。
例如:Dim A () As Integer(2)在程序执行过程中,使用ReDim语句修改数组的大小或数组的上界。
格式为:ReDim [Preserve] 数组名(<维数定义>) [As <类型>]例如:在通用声明段中第一次声明建立动态数组C:Dim C() As Long然后,在过程中给数组分配相应空间:Private Sub Command1_Click()…ReDim C(19, 9)…End Sub这里的ReDim语句给C分配了一个20×10的长整型的整数矩阵。
【例6-2】编写程序,按照用户输入的行数输出相应大小的杨辉三角。
分析:杨辉三角中的每行是按照(a+b)n二项式展开式中各项的系数。
由图6-10所示的排列格式可看出,杨辉三角每行的第一列和斜边上的元素均为1,其余各项的值都是其上一行中前一列元素与上一行同一列元素之和,即第i行,第j列上的元素为 A(i,j)= A(i-1,j-1)+ A(i-1,j),若该行同一列没有元素时则认为是0。
设计步骤如下。
(1)程序界面的建立与各控件属性的设置如图6-2所示。
(2)编写代码。
编写Command1的Click事件代码:Private Sub Command1_Click()Dim a()ClsDim n As Integern = Val(Text1.Text)ReDim a(n, n)For i = 1 To na(i, 1) = 1: a(i, i) = 1NextFor i = 3 To nFor j = 2 To i - 1a(i, j) = a(i - 1, j - 1) + a(i - 1, j)Next jNext iFor i = 1 To nFor j = 1 To iPrint Tab(6 * j); a(i, j);Next jPrintNext iEnd Sub6.4 控件数组6.4.1 控件数组的概念一组相同类型的控件组成。
它们共用一个控件名,具有相同的属性,建立时系统给每个元素赋一个唯一的索引号(Index)。
控件数组共享同样的事件过程,通过返回的下标值区分控件数组中的各个元素。
例: Private Sub command1 _Click(Index As Integer)…If Index=3 then‘处理第四个命令按钮的操作End If…End Sub6.4.2 控件数组的建立一、在设计时建立控件数组的步骤:1.窗体上画出控件,进行属性设置,这是建立的第一个元素;2.选中该控件,进行“Copy”操作若干次和“Paste”操作若干次建立了所需个数的控件数组元素。
3.进行事件过程的编程。
【例6-3】利用文本框控件组,对已经给定的10个两位数演示冒泡排序法的排序过程。
设计步骤如下。
(1)建立如图6-3所示的界面,添加控件并设置其相关属性。
(2)编写代码。
在通用段中声明n 为常量,方便在不同过程中使用:Const n = 10在Form_Load 事件中编写代码,随机取出10个数字。
Private Sub Form_Load()Dim p As StringRandomizep = ""For i = 1 To 10s(i) = Int(Rnd * 90) + 10Text1(i).Text = s(i)Next iEnd Sub单击“排序”按钮的代码如下:Private Sub Command1_Click()For i = 1 To n - 1MsgBox "现在进行第" & i & "轮比较,将找出" & n - i + 1 & "数中最大的" & _"放置在下方" 图6-3 演示冒泡排序法的过程For j = 1 To n - iText1(j).BackColor = RGB(0, 255, 0)Text1(j + 1).BackColor = RGB(0, 255, 0)MsgBox "现在将相邻的两个数进行比较"If Val(Text1(j).Text) > Val(Text1(j + 1).Text) ThenMsgBox "数字较大的将放在下方,现在将相邻的两个数进行交换"t = Text1(j).TextText1(j).Text = Text1(j + 1).TextText1(j + 1).Text = tMsgBox "交换完毕,准备下次比较"ElseMsgBox "不交换"End IfText1(j).BackColor = RGB(255, 255, 255)Text1(j + 1).BackColor = RGB(255, 255, 255)Next jText1(n - i + 1).BackColor = RGB(255, 0, 0)MsgBox n - i + 1 & "个数中最大的是" & Text1(n - i + 1).Text Next iMsgBox "排序完毕"Text1(1).BackColor = RGB(255, 0, 0)End Sub“重置”按钮的代码如下:Private Sub Command2_Click()Form_LoadEnd Sub6.5 列表框与组合框6.5.1 列表框能将多个项目列出;供用户从中作出选择,当用户单击某一项目时,该项目反背景显示出来,VB会表示选中.当列表框中列出的项目很多超出列表框,会自动给列表框加上垂直滚动条。