版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 数据块数组,数组是具有相同名字、不同下标的一组变量。使用数组可以缩短和简化程序,可以利用索引值设计循环,高效处理各种程序运行需要。数组包括固定大小的数组和动态数组。学习本章,读者可以了解两种数组的定义和使用方法。,6.1 定长数据固定数组,固定数组,顾名思义就是固定元素数量的数组。固定数组包括一维数组和多维数组。固定数组中使用一个下标就能确定数组元素在数组中的位置称为一维数组。具有两个或多个下标的变量数组称为二维或多维数组。本节将介绍固定数组的定义和使用方法。,6.1.1 声明数组,数组和变量使用方法不完全相同。变量可以隐式声明,而数组必须显式声明后使用。声明数组的标准语法如下: Pu
2、blic|Dim|private|static arraryname(Num1 to Num2) as type 参数说明: Public为可选项,表示在模块的声明段建立公用数组。 Private为可选项,表示在模块的声明段建立模块级数组。 Dim为可选项,表示只能在窗体或标准模块的声明段建立模块数组。 Static为可选项,表示在模块或窗体中创建数组。 Arrayname为必需项,表示数组名称在同一范围内必须为唯一名称。 Num1为可选项,表示数组元素下标数值下界。 Num2为必需项,表示数组元素下标数值上界。 Type为可选项,默认为变体型Variant。可以为任何数据类型。 初始声明数组
3、时,数值类型数组全部为0,字符串型数组全部为空字符串。,【示例6-1】,声明数值和字符串数组。用Dim关键字表明为局部变量数组。只能在窗体或过程中使用该数组。 Dim Counters(14) As Integer 15个初始值为0元素 Dim Strs(20) As string 21个初始值为空字符串元素 用Public关键字表明为公共变量数组。可以在程序中使用该数组。 Public Counters(14) As Integer 15个初始值为0元素 Public Strs(20) As string 21个初始值为空字符串元素,6.1.2 设定上下界,Visual Basic声明数组时
4、,在数组名之后跟一个用括号括起来的上界。上界不得超过长整型Long数据类型的范围(2 147 483 648到2 147 483 647)。默认下标下界为0。如果希望下标下界从1开始,可以通过Option Base语句来声明。该语句用来指定数组下标默认下界。,【示例6-2】,声明数组上下界,代码如下: Dim Numbers(10) As Integer声明整数数组包含11个元素 Dim Sums(20) As Double声明双精度数组包含21个元素 说明:第一个声明建立了一个有11个元素的数组,其索引号从0到10。第二个声明建立了一个有21个元素的数组,其索引号从0到20,默认的下界为0。
5、,如果添加Option base关键字,上述数组下界将发生变化。 Option base 1数组下界从1开始 Dim Numbers(10) As Integer数组包含10个元素 Dim Sums(20) As Double数组包含20个元素 第一个声明建立了一个有10个元素的数组,其索引号从1到10。第二个声明建立了一个有20个元素的数组,其索引号从1到20。,为了规定下界,用关键字To显式提供数组下界(Long数据类型): Dim Numbers (1 To 15) As Integer下界为1,15个元素 Dim Sums (100 To 120) As String下界为100,20
6、个元素 在前述声明中,变量Counters的索引值范围从1到15,而变量Sums的索引值范围从100到120。,如果需要在程序中判断数组的上界和下界,需要使用以下2个函数。 (1)Lbound()函数 LBound(arrayname, Dimension) 返回一个Long型数据,其值为指定数组维可用的最小下标。 (2)Ubound()函数 UBound(arrayname, Dimension) 返回一个Long型数据,其值为指定的数组维可用的最大下标。 参数说明: Arrayname为必需项,表示数组名称。 Dimension为可选项,表示数组中维的数值。如果为一维数组,维可以省略;如果
7、为多维数组,维不可以省略。,【示例6-3】,声明一个数组。代码如下: Dim Numbers(12) as integer声明数组为整数型,包含13个元素 Dim n1 as integer声明变量 Dim n2 as integer n1=LBound(Numbers)取得数组维可用最小下标 n2=UBound(Numbers)取得数组维可用最大下标 说明:n1返回值为Numbers数组的下标下界,n2返回值为Numbers数组的下标上界。以上两个参数在Visual Basic应用程序开发中具有非常重要的作用。,【示例6-4】,计算数组中最大数值。 (1)新建一个工程,并新建一个窗体。 (2
8、)双击工具箱中的CommandButton图标,窗体自动添加一个CommandButton控件,设置caption属性为“求最大值”。 (3)双击“求最大值”按钮,弹出代码编辑窗口。在左侧对象下拉列表框中选择Command1选项,右侧过程下拉列表框中选择Click事件。输入代码如下: 说明:首先声明数组num(2)和变量m,i为整数型。为num(2)数组赋值。然后在for循环中判断数组数值是否大于m。如果大于m,将m赋值为当前数组值。最后在窗体显示数组中最大值。,6.1.3 数组的数组多维数组,多维数组与一维数组相对应。多维数组在现实生活中具有很重要的意义。如屏幕坐标、三维动画数据的设定值等是
9、典型的多维数组。声明多维数组与一维数组完全相同。,【示例6-5】,声明两个多维数组,代码如下: Dim matrix(9,9) as integer 说明:声明一个1010的二维数组。 Dim matrix(9,9,9) as integer 说明:声明一个101010的三维数组。 注意:声明多维数组占用较大的存储空间。应用程序开发中慎用多维数组。,【示例6-6】,编程计算二维数组的最后结果matrix(i,j)=i*10+j。 (1)新建一个工程,并新建一个窗体。 (2)双击工具箱中的CommandButton图标,窗体自动添加一个CommandButton控件,设置caption属性为“多
10、维数组计算”。双击“多维数组计算”按钮,弹出代码编辑窗口。在左侧对象下拉列表框中选择Command1选项,右侧过程下拉列表框中选择Click事件。 (3)输入以下代码: 说明:首先声明变量i、j和二维数组matrix,然后套用二层for循环,依次将数组数值赋值为i*10+j,最后依次在窗体中显示计算结果。,6.2 不定长数据动态数组,动态数组可以在程序运行时动态改变数组大小。Visual Basic应用程序开发中需要动态数组来保存多维数组数值。动态数组具有灵活方便管理数组的能力。本节介绍动态数组的定义和使用方法。,6.2.1 创建动态数组,声明动态数组和普通数组基本相同。根据不同关键字定义不同
11、作用域范围。为数组赋予一个空维数表,将该数组声明为动态数组。 Public|Private|Static|Dim arr() 参数说明: Public在模块的声明段建立公用数组。 Private在模块的声明段建立模块级数组。 Dim在窗体或标准模块的声明段建立模块数组。 Static在模块或窗体中创建数组。,使用ReDim关键字将分配实际数组元素个数。其标准语法如下: ReDim Preserve varname(subscripts) As type 参数说明: ReDim为必需项,该关键字只能出现在过程中作为一个可执行语句运行。 Preserve为可选项,当改变原有数组最末维的大小时,使用
12、此关键字可以保持数组中原来的数据。 Varname为必需项,表示数组名称。 Subscripts为必需项,表示数组下标。,【示例6-7】,声明动态数组的标准语法如下: ReDim arr(20),6.2.2 使用动态数组,动态数组使用ReDim关键字。每次使用ReDim关键字,以前数组内容全部自动清空。,【示例6-8】,编程将动态数组重新定义为二维数组,并将每个元素赋值为下标的乘积。 (1)新建一个工程,并新建一个窗体。 (2)双击工具箱中的CommandButton图标,窗体自动添加一个CommandButton控件,设置caption属性为“动态数组”。双击“动态数组”按钮,弹出代码编辑窗口。在左侧对象下拉列表框中选择Command1选项,右侧过程下拉列表框中选择Click事件。 (3)输入以下代码:,说明:该代码使用Dim语句声明一个空动态二维数组。使ReDim语句重新声明使用动态数组。使用for语句建立两层循环计算二维数组的下标乘积。最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年波浪能驱动海工支持船行业深度调研及发展战略咨询报告
- 2026年宪法安全教育知识
- 2026年小学信息技术教学设计题
- 2026年中医预防流感知识讲座课件
- 2026年销售主管笔试模拟题及答案解析
- 2026年幼师招聘面试幼儿园教育理论题库
- 初中环保专题探究说课稿2025年地球日
- 2026年村干部招聘笔试题库含答案
- 高中2025信任他人主题班会说课稿
- 2026年电子商务运营管理测试题集
- 奥氏体不锈钢焊管固溶热处理工艺规范(征求意见稿)
- HGT 6188-2023 聚丙烯共聚反应器 (正式版)
- 锂电池充放电循环测试课件
- DL∕T 2009-2019 超高压可控并联电抗器继电保护配置及整定技术规范
- 2024年贵州匀影文旅投资集团有限公司招聘笔试参考题库含答案解析
- 基于STM32智能台灯的设计与实现
- 九年级道德与法治的知识竞赛题
- 基于PLC控制的机械手设计
- DB4206-T 60-2023 实验室气瓶安全管理规范
- 输配电线路单线图绘制要求
- 高危药品专题知识宣讲培训课件
评论
0/150
提交评论