- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2)数组名:需遵循变量命名约定。 3)“维数定义”: [下界1 To] 上界1,[下界2 To] 上界2,…
如果下界省略,则使用默认下界 定义默认下界: Option Base {0|1} 不加任何定义时,默认下界为0 数组元素个数:
(上界1-下界1+1)*(上界2-下界2+1)*…
如: G(8) B(I) C(3+K)
下标还可以是下标变量
如: A(A(5)) 令A(5)=4 则
A(A(5))=A(4)
下标的取值范围是:下界To上界,缺省下界 时,系统默认取 0 。
Visual Basic 程序设计
数组分类
Visual Basic 程序设计
一维数组
只用一个下标就 能确定某个数组 元素在数组中的 位置,这样的数 组称为一维数组。
数组特点
Visual Basic 程序设计
1)、数组是一组相同类型的元素的集合;
2)、数组中各元素有先后顺序,它们 在内存中按排列顺序连续存储在一起;
3)、所有的数组元素是用一个变量名命名的一个 集合体,而且每一个数组元素在内存中独占一个内 存单元,可视为同一个内存变量。为了区分不同的 数组元素,每一个数组元素都是通过数组名和下标 来访问的,如A(1,2),B(5)。
组类型为Variant时,可包含不同类型的数据。
数组的定义方式:
Visual Basic 程序设计
◆Dim:用在窗体模块或标准模块及过程中,定义窗体或标准模块级数组; ◆ReDim:用来重新定义动态数组; ◆Static:用来说明该数组为静态数组; ◆Global(Public):用在全局模块中(标准模块)中,说明数组为全局的;
二维数组
用两个(多个) 下标才能确定某 个数组元素在数 组中的位置,则 数组称为二维 (多维)数组。
Visual Basic 程序设计
数组声明
数组必须先声明后使用。声明数组的 目的是通知计算机为其留出所需要的 空间,用来存储数组元素。在计算机 中,数组占据一块连续的内存区域, 数组名是这个区域的名称,区域的每 个单元都有自己的地址,该地址用下 标表示。可声明的内容包括数组名、 类型、维数、数组大小。
设计界面:
Text 1
Text 2
Text 3 Text 4
分析:
Visual Basic 程序设计
假设运行时输入到文本框Text1中的各成绩之间用逗号分隔。代 码首先使用Split函数将文本框Text1中输入的成绩分离开,保存 到数组A中,然后进行求值。
求平均分时只需先求数组所有元素之和,再除以数组元素的个数 即可。求最高分、最低分的问题实际上就是求一组数据的最大值 、最小值问题。
mark数组内存分配示意图:
mark(1) mark(2)
······ mark(i)
······ mark(99) mark(100)
Visual Basic 程序设计
每组数组元素有一个唯一的顺序号,下标不能超出数 组声明时的上、下界范围。
一个下标表示一维数组;多个下标,表示多维数组。 下标可以是整型的常数、变量、表达式; 一般情况下,数组中的各元素类型必须相同;但若数
4)<类型>:
Integer Long Single Double
Boolean String String*n Curency
Byte
Date
Βιβλιοθήκη BaiduVariant Object
用户定义类型……
Visual Basic 程序设计
Visual Basic 程序设计
5)数组在定义后自动被初始化 例如: 将数值型数组元素值置为0; 将字符串类型数组元素值置为零长度字符串 6) 静态数组被定义后, VB为其分配固定大小的存储 空
在VB中,把一组相互关系密切的数 据放在一起并用一个同意的名字作为标 志,这就是数组。
数组概念
Visual Basic 程序设计
在VB中,把一组具有同一名字、不同下标的下标变量称为数 组。一个数组可遗憾又若干个下标变量。下标用来指出某个数组 元素在数组中的位置。如S(1 to 100)中S是数组名,可以表示 逻辑上相关的一组数,其中,“1 to 100”称为下标,可以表示 该数组中的各个元素。
Visual Basic 程序设 计
Visual Basic 程序设计
——数组及应用
学习目标
01
掌握数组的定义
Visual Basic 程序设计
02 重点掌握一维数组的定义、引用 和应用
03 掌握控件数组的定义和应用
Visual Basic 程序设计
在 实 际 应 用 中 , 常 常
实
需要处理类型相同的一
求最大值的方法:
Visual Basic 程序设计
1)设一个存放最大值的变量MaxNum,其初 值为数组的第一个元素,即MaxNum=A(0);
2)依次将MaxNum与A(1)到A(N)的所有数据 进行比较,如果数组中的某个数A(I)大于MaxNum, 则用该数替换MaxNum,即MaxNumx=A(I),所有 数据比较完后,MaxNum中存放的数即为整个数 组的最大数。 求最小值的方法与求最大值的方法类似。
Dim G( 1 To 40) As Integer
Visual Basic 程序设计
3. 说明 1) Public|Private|Dim: 在标准模块的通用声明段使用Public语句建立一个全局级数组; 在模块的通用声明段使用Private语句或Dim语句建立一个模块级数组; 在过程中用Dim语句建立一个过程级数组。
Visual Basic 程序设计
1、一维数组:
一个数组若只有一个下标就能确定一个数组元素的数组中的位置
定义形式:
Dim 数组名([下标下界 To ]下标上界 ) As 类型名称
如:Dim a(1 to10) as integer
Dim b(10) as integer
例: Dim C(9) As Integer
“求值”按钮Command1的Click事件过程:
Private Sub Command1_Click() Dim A, N As Integer Dim MaxNum As Integer, MinNum As _ Integer, Average As Single A = Split(Text1.Text, “,”) N = UBound(A) Total = 0 MaxNum = Val(A(0)) MinNum = Val(A(0))
一维整型数组;下界0,上界为9
元素:C(0) C(1) C(2) …… C(9)
例: Dim A(-4 TO 10) As Integer
一维整型数组;下界 -4,上界 10
元素 A(-4) A(-3) ... A(0) A(1) ... A(10)
例: DIM M(-3 TO 10)
引入计数变量—设两个计数变量num1和num2,分别用来保存 不及格学生人数和优秀学生人数。将计数变量初始化为0,
统计过程—逐一取数组元素进行判断,如果数组元素的值小 于60,则让num1累加1,如果数组元素的值大于或等于90,则 让num2累加1。
代 码 设 计
Private Sub Command1_Click()
由数组元素中下标 的个数决定,一个 下标表示一维数组 (下面将会重点学 习),两个下标表 示二维数组。VB中 有一维数组,二维 组······最多60维数 组。
按数组占用存储空间的 方式不同,分为两种数 组:静态数组和动态数 组。两种数组的定义方 法不同,使用方法也略 有不同。
注意
下标可以是整形的常数、变量、表达式。
间,在运行期大小不能改变。
数组概念释义
Visual Basic 程序设计
dim mark( 1 to 100) as integer
声明了一个一维定长数组,数组的名字为mark,类型为整型;
共有100个元素,下标的取值范围:1~100。
mark的数组元素依次为mark(1)、mark(2)、…mark(100);
Visual Basic 程序设计
例【7-2】输入若干个学生的成绩,统计不及格人数和优秀人数。
设计界面:
Text 1 Command 1 Picture 1
分析:
Visual Basic 程序设计
设运行时学生成绩直接输入到文本框Text1中,各成绩之间用 逗号分隔。代码首先使用Split函数将文本框Text1中输入的成 绩分离开,保存到数组A中。
一维可变类型数组
例: CONST Y1=10
CONST Y2=50
DIM ABC(Y1 TO Y2) AS INTEGER
Visual Basic 程序设计
Visual Basic 程序设计
一维数组 应用实例
实例一 分类统计
Visual Basic 程序设 计
例【7-1】利用一维数组统计一个班学生的成绩在0-9、10-19、20-29、…、90- 99以及100各分数段的人数分布
解题思路:定义一个有11个元素的一维数组a( 0 to 10),
a(0):0-9分的学生人数;
a(1):10-19分的学生人数;
a(2):20-29分的学生人数;
…
a(9):90-99分的学生人数;
a(10):100分的学生人数;
根据学生成绩score,计算int(score/10),将其分类到相应的数组元素中。
Picture1.CurrentY = 100
Picture1.Print "不及格人数:"; num1; _
Tab(18); "优秀人数:"; num2
End Sub
Visual Basic 程序设计
运行界面:
实例二 求平均分,最高分,最低分
Visual Basic 程序设计
例【7-3】输入若干名学生的成绩,求平均分、最高分、最低分 。
Visual Basic 程序设计
Visual Basic 程序设计
运行界面:
Visual Basic 程序设计
实例三 数组排序
排序就是将一组数按递增或递减的次序重新排 列。
排序的方法:选择法、冒泡法、插入法和合并 排序。
4)、使用数组时必须对数组进行“声明”,即 先声明后使用。所谓声明,就是对数组名、数组元 素的数据类型、数据元素的个数进行定义。
一维数组的定义
Visual Basic 程序设计
1. 格式 Public|Private|Dim 数组名(维数定义)
[As 类型],… 2. 功能
声明数组名称、维数、维大小、类型。 为数组分配存储空间。 例:定义数组G保存全班40名同学的英语成绩
数组并不是一种数据类型,而是一组有序的同类型数据的集 合。利用数组,可以方便的组织和使用数据。
有关基本概念
Visual Basic 程序设计
数组元素
下标
数组维数
数组类型
数组中的每一 个数据称为数 组元素。用数 组名和该数据 在数组中的序 号来标识。
下标表示顺序 号(即序号), 每个数组有唯 一的顺序号, 下标不能超过 数组声明的上、 下界范围。
Dim A, N As Integer
Dim num1 As Integer, num2 As Integer
A = Split(Text1.Text, ",")
N = UBound(A)
num1 = 0: num2 = 0
For i = 0 To N
Select Case Val(A(i))
例
批数据。
概
例如,为了处理 100个员工的工资,可
述
以用S(1),S (2), S
(3) ,······S(100)来分
别代表每个员工的工资
,其中S(1)代表第一
个员工的工资,S (2
)代表第二个员工的工
资,以此类推······
Visual Basic 程序设计
由生活中的实例,我们不难得出,像 员工和员工工资一样的类似的很多数据, 都具有相互密切关系。
Case Is < 60
num1 = num1 + 1
Case Is >= 90
num2 = num2 + 1
End Select
Next i
Visual Basic 程序设计
' 显示统计结果 Picture1.Cls ' 定义打印位置
Picture1.CurrentX = 100