版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Vb数组基础,主讲人:陈柳斌,数组是有序的数据的集合。在其它语言中,数组中的所有元素都属于同一个数据类型,而在Visual Basic中,一个数组中的元素可以是相同类型的数据,也可以是不同类型的数据。,8.1 数组的概念,8.2 静态数组与动态数组,8.3 数组的基本操作,8.4 数组的初始化,8.5 控件数组,8.1 数组的概念,数组用于表示一组性质相同的有序的数,这一组数用一个统一的名称来代替,称为数组名。 数组中的每一个元素称为数组元素。数组中的每一个元素可以用数组名和下标唯一地表示。 数组中下标的个数称为数组的维数。,8.1.1 数组的定义,数组应当先定义后使用。在计算机中,数组占据一
2、块内存区域,数组名是这个区域的名称,区域的每个单元都有自己的地址,该地址用下标表示。定义数组的目的就是通知计算机为其留出所需要的空间。,Visual Basic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范围不一样: Dim ReDim Static Public 以上4个语句都可以用来定义数组,下面以Dim语句为例来说明数组定义的格式,当用其他语句定义数组时,其格式是一样的。,在定义数组时,VB提供了两种格式: 1.第一种格式:,定义了一个一维数组,该数组的名字为ArrayDemo,类型为Integer(整型),共有6个数组元素。,定义了一个二维数组,该数组的名字为Test,类型
3、为Integer(整型),共有3行,4列,12个数组元素。,第0行,第1行,第2行,第0列,第1列,第2列,第3列,说明: (1)数组名的命名规则,与简单变量相同 (2)数组必须先定义,后使用 (3)当用Dim 语句定义数组时,会进行数组元素初始化 (4)默认下标下界为0,可通过Option Base语句来设置 (5)要注意区分“可以使用的最大下标值”和“元素个数”,1.第二种格式:,在某些情况下,使用To能更好地反映对象的特性。,说明: (1)数组名要做到见名知义。 (2)数组名不能与变量名相同。 (3)在定义数组时,元素下标必须是常数,不能是变量 或表达式,即使事先给出变量的值也是错误的。
4、 (4)可以定义数据后再指定数组的类型。 (5)数组的下界都必须小于上界。,8.1.2 默认数组,在Visual Basic中,允许定义默认数组。所谓默认数组,就是数据类型为Variant(变体型)的数组。,相当于,对于默认数组来说,同一个数组中可以存放各种不同的数据。,8.2 静态数组与动态数组,在VB中,根据数组元素的个数能否变化,数组分为静态数组和动态数组。 静态数组:数组元素的个数固定不变。 动态数组:数组元素的个数在运行时可以改变。 使用动态数组就可以在任何时候改变其大小,并且可以在不需要时清除动态数组所占的存储空间。因此,使用动态数组更加灵活、方便,并有助于高效管理内存。,8.2.
5、1 动态数组的定义,(2)在过程级使用下面的ReDim语句分配数组的实际元素个数。,这里的通常包含变量或表达式,但其中的变量或表达式应有明确的值。,定义动态数组需要分以下两步进行: (1)在模块级或过程级按以下格式定义一个没有下标的数组。,说明 1)ReDim语句只能出现在过程中。与Dim语句不同, ReDim语句是一个可执行语句。 2)可以用ReDim语句反复改变数组元素及维数的数目。 3)在定义动态数组的两个步骤中,如果用步骤(1)定义了 数组的类型,则不允许用步骤(2)改变类型。 4)每次执行ReDim语句时,当前存储在数组中的值会全 部丢失。VB重新对数组元素进行初始化,即将可变类 型
6、数组元素值置为Empty,将数值型数组元素值置为 0,将字符串类型数组元素值置为零长度字符串。,8.2.2 数组的清除和重定义,要清除数组的内容或对数组重新定义,这可以用Erase语句来实现。其格式如下:,注意,在Erase语句中,只给出要刷新的数组名,不带括号和下标。例如:,几点说明: (1)当把Erase语句用于静态数组时,则清空数组元 素的值 (2)当把Erase语句用于动态数组时,则删除数组 (3)当把Erase语句用于变体数组时,则每个元素重 置为空 (4) Erase释放动态数组所使用的内存。,8.3 数组的基本操作,建立一个数组之后,可以对数组或数组元素进行操作。数组的基本操作包
7、括输入、输出及复制,这些操作都是对数组元素进行的。For EachNext语句可用于对数组的操作。,8.3.1 数组元素的输入、输出和复制,1.数组的引用 数组的引用通常是指对数组元素的引用,其方法是,在数组后面的括号中指定下标,例如:,要注意区分数组定义和数组元素!,在引用数组时,应注意以下几点: (1)在引用数组元素时,数组名、类型和维数必须与定 义数组时一致。 (2)如果建立的是二维或多维数组,则在引用时必须给 出两个或多个下标。 (3)引用数组元素时,其下标值应在建立数组时所指定 的范围内。,2.数组元素的输入 (1)通过赋值语句来实现数组元素的输入。 (2)通过循环语句来实现数组元素
8、的输入。 (3)通过InputBox函数输入。,3.数组元素的输出 数组元素的输出可用Print方法来实现。,4.数组元素的复制 单个数组元素可以像简单变量一样从一个数组复制到另一个数组。为了复制整个数组,仍要使用For循环语句。,例8.2从键盘上输入10个整数,用冒泡排序法进行排序。,8.3.2 For EachNext语句,For EachNext循环可以用来对数组中的所有元素重复进行类似的操作,语法格式为:,例如:,例 用For EachNext语句,求1+2+3+100的值。,8.4 数组的初始化,所谓数组的初始化,就是给数组的各元素赋初值。为此,Visual Basic提供了Arra
9、y函数。利用该函数,可以使数组在程序运行之前初始化,得到初值。,Array 函数用来为数组元素赋值,其格式为:,这里的“数组变量名”是预先定义的数组名,在“数组变量名”之后没有括号。之所以称为“数组变量”,是因为它作为数组使用,但作为变量定义,它既没有维数,也没有上下界。“数组元素值”是需要赋给数组各元素的值,各值之间以逗号分开。,注意,数组变量不能是具体的数据类型,只能是变体(Variant)类型。 一般来说,数组变量可以通过以下方法定义: (1)显式定义为Variant变量。 (2)在定义时不指明类型 (3)不定义而直接使用。,Array函数只适用于一维数组,即只能对一维数组进行初始化,不
10、能对二维数组或多维数组进行初始化。,8.5 控件数组,控件数组是由一组相同类型的控件组成,这些控件共用一个相同的控件名字,具有相同的属性设置。数组中的每个控件都有一个唯一索引号,其所有元素的Name属性,8.5,1 基本概念,同一控件数组名称相同,各控件(数组元素)的索引(下标)不同,该索引由控件的Index属性决定。控件数组中可用的最大索引值为32767。同一控件数组中的不同控件可以有自己的属性设置值。,应用程序中对于一些类型相同、功能相似的控件,可将其定义成一个控件数组来实现。和数组变量一样,控件数组中的每一个控件是该控件数组的一个元素,表示为:,在设计时,使用控件数组添加控件所消耗的资源比直接向窗体添加多个相同类型的控件消耗的资源要少。 当希望若干控件共享代码时,控件数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中级审计师考试试题及答案第8
- 预防中心静脉导管感染相关知识试题及答案
- 医院感染预防与控制评价规范试题(含答案)
- AI技术还原古代建筑文化与历史价值
- 无锡保安员考试题答案
- 尿路感染的预防和控制考核试题及答案
- 静脉输血操作法并发症的预防及处理考核试题及答案
- 国家保安员资格考试题及答案
- 标准预防与额外预防试题及答案
- 2026年重庆化工职业学院单招职业技能考试题库及答案
- 2026及未来5-10年红外线烘漆机项目投资价值市场数据分析报告
- 2026儿童书法教育行业市场需求变化与教学创新趋势报告
- 2026年省旅游投资集团招聘考试笔试试题(含答案)
- 药事管理与药物疗效学委员会工作总结总结
- 内蒙古科技大学《劳动与社会保障法》2025-2026学年期末试卷
- 雨课堂学堂在线学堂云《舰载机结构与系统(中国人民解放军海军航空)》单元测试考核答案
- 家庭教育指导师培训课件
- 2025年南京工业大学辅导员考试真题
- (2025)一级消防工程师继续教育题库及参考答案
- 外周T-细胞淋巴瘤护理措施
- 2026年蔬菜种植公司种植生产成本核算与控制制度
评论
0/150
提交评论