VB语言数组专题讲解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
必须为常数。
(1) 如果在数组声明的时候,没有给出下标下界,则下界 由Option Base <n>语句控制,默认值为0。
例如:Dim b(2,4,3) Option Base 1
Dim a(2,0 to 4, 3)
精选ppt课件
5.2.1 静态数组及声明
10
Dim lArray( 0 To 3, 0 To 4) As Long 等价于: Dim lArray(3, 4) As Long
精选ppt课件
5
5.1.1数组与数组元素
4. 数组元素
如何确定100个学生和这个数据组中的各个成绩对应关系呢? 给数组中的数据编号,也就是顺序号,从而出现了数组中 的下标变量,所以数组元素也称为下标变量.数组元素表示 为: <数组名> (<下标表>) 例如:mark(1)、mark(99) 例如: c(2,3) 表示数组c中第2行第3列的那个元素 对于数组中下标的使用说明: (1)下标放在数组名后的括号内
选择法排序,将这些数按递增的顺序排列。(纠正课本错
误)
For i = 1 To 9
例如x(3.6)取整后为x(4)
精选ppt课件
5.1.1数组与数组元素
7
5. 数组的类型
Visual Basic中的数组,按不同的方式可分为以下几类: ❖ 按数组的大小(元素个数)是否可以改变来分为:
定长数组、动态(可变长)数组,也称为静态数组或 动 态数组。 ❖ 按元素的数据类型可分为:数值型数组、字符串数组、
声明Variant的变量或仅由括号括起的动态数组赋值。 <数组名>=Array(<数组元素值>)
(2)数组的下界由option base控制语句决定,上界由Array 函数括号内的参数个数决定,也可通过函数Ubound获得
例如,要将1,2,3,4,5,6,7 这些值赋值给数组a,可使用下面 的方法赋值。Dim a()
➢ 在同一过程中,数组与简单变量不能同名
精选ppt课件
15
1. 数组元素的输入(赋初值)
(1)赋值语句 Dim iA(1 To 10) As String iA(1)=“张三”: iA(2)=“李四”… 再如:for i=1 to 10 a(i)=int(Rnd*90)+10 ‘循环加赋值 next i
1
第5章 数 组
本章重点介绍 : 1. 静态数组 2. 动态数组 3. 控件数组
精选ppt课件
2
第5章 数 组
一个人N门课的成绩怎样存储和处理? 一个班N门课的成绩怎样存储和处理?......
这些数据的特点:具有相同的数据类型。 为了方便地使用这些数据,VB语言提供了一种 构造数据类型:数组 例如:存储学生成绩用实型数组 score(1 to 5 ) 其中:score是数组名。 该数组可以存放5个成绩,分别用下标变量表示: score(1),…,score(5)。
精选ppt课件
25
2> 选择法改进
输入n个数据给a(1)到 a(n) For i= 1 to n-1
imin =i
For j=i+1 to n
Y
a(j)<a(imin)
N
imin=j
交换a(i)和a(imin)
打印输出a(1)到a(n)
精选ppt课件
26
例5-3 由计算机产生10个0~100之间的随机整数,使用
End Sub
精选ppt课件
19
例5.2 Fibonacci数列问题
其中第n项的计算公式为:
Fib(n)=Fib(n-1)+Fib(n-2)
编程求出fibonacci数列的前15项
声明数组f(ห้องสมุดไป่ตู้5)
Dim f( 1 to 15) as Integer
f(1)=1:f(2)=1 i从3到15
f(i)=f(i-1)+f(i-2) 输出f(i)
LBound(<数组名> [, <N>]) UBound(score,2) 4
其中:
LBound(score,2) 0
<数组名>:必需的,遵循标准变量命名约定。
<N> :可选的;一般是整型常量或变量。指定返回哪一 维的上界。1 表示第一维,2 表示第二维,如此等等。
如果省略默认是1。
精选ppt课件
14
(2) 考虑:下面对数组的声明是否正确?
n =Inputbox(“输入n”)
错误的声 明,下标
Dim x(n) As Single
是变量
精选ppt课件
5.2.1 静态数组及声明
11
(3) 例如:考虑两个x(10)的区别?
Dim x(10) As Integer ' 声明了x数组有11个元素
x(10)=100
f(1)=1: f(2)=1
For i=3 to 15 f(i) =f(i-1)+f(i-2) print f(i)
Next i
精选ppt课件
20
5.2.3 数组的应用
1.数组元素的交换
For i =1 To 10\2 t=iA(i) iA(i)=iA(10-i+1) iA(10-i+1)=t
Next i
(2)在运行时通过 inputbox函数输入 for i=1 to 10 a(i)= inputbox(“请输入”) next i
精选ppt课件
16
1. 数组元素的输入(赋初值)
(3)用循环 For i = 1 To 10 a(i)=0 Next i
(4) Array函数 Dim ib() ‘用array函数给动态数组赋值时不能指定数组类型 ib = Array("abc", "def", "67") For i = 0 To UBound(ib) form1.Print ib(i); " "; Next i
5.2.2 数组的引用
使用数组就是对数组元素进行操作,对数组元
素的操作类似于对简单变量的操作。
引用数组元素需要注意的问题:
➢ 引用数组元素的方法:在数组名后的括号中指
明下标
例如a(5),b(3,4)
➢ 引用数组元素时,数组名、数组类型必须与数组
声明时一致
➢ 引用数组元素时,下标值应在数组声明时所指定 的范围内
' 对x(10)这个数组元素赋值
在数组声明中的下标说明了数组的整体,即每一维 的大小; 而在程序其他地方出现的下标表示数组中 的一个元素。两者写法形式相同,但意义不同。
声明数组:声明了数组的名、维数、大小、 类型,并且对数组进行初始化
精选ppt课件
12
补充 与数组操作有关的几个函数
1. Array函数 2. (1) Array函数可方便地对数组整体赋值,但它只能给
a=array(1,2,3,4,5,6,7) Dim a a =array(1,2,3,4,5,6,7)
精选ppt课件
13
补充 与数组操作有关的几个函数
2. 求数组的上界Ubound( )函数、 下界 Lbound( )函数
作用:分别用来确定数组某一维的上界和下界值。
使用形式如下:
UBound(<数组名>[, <N>]) Dim score(3,4) as integer
精选ppt课件
3
5.1数组的概念及其声明
5.1.1数组与数组元素 1. 数组概念 数组就是一组相同类型数据的集合,这一组数
中的每一个组成元素就叫做数组元素。 用一个统一的名字(数组名)代表逻辑上相关的一 批数据,每个元素用下标变量来区分;下标变量代 表元素在数组中的位置。 例如:dim mark(1 to 100) As Integer 第一个学生成绩用mark(1)来表示,其值为95 第二个学生成绩用mark(2)来表示,其值为80
精选ppt课件
21
Private Sub Form_Load() Private Sub Command1_Click()
iA(1) = 2 :iA(2) = 4 ‘交换前
iA(3) = 6 :iA(4) = 8 Text1.FontSize = 20
iA(5) = 10 :iA(6) = 1 For i = 1 To 10
精选ppt课件
18
Private Sub Form_Click() Dim a(1 To 10) As Integer Dim min As Integer, p As Integer For i = 1 To 10 a(i) = Val(InputBox("请输入一个数", "输入数", 0)) Next i min = a(1) :p = 1 For i = 2 To 10 If a(i) < min Then min = a(i) p=i End If Next i Print "数组第" & p & "个元素是最小值" & min
精选ppt课件
4
5.1.1数组与数组元素
2. 数组的命名
命名规则和简单变量的命名规则相同。例如:用 mark 来代表100个学生的成绩
3. 数组维数
数组中下标的个数称为数组的维数 一维数组:例如mark(100) 二维数组:有两个下标 例如: x(2,3) 二维数组相当于一个矩阵 三维数组:有三个下标,例如:m(3,4,5)
外重循环变量i:比较的趟数,n个数需要n-1趟比较,n从1变化 到n-1 内重循环j:每一趟比较的次数,j从i+1变化到n
精选ppt课件
输入n个数据给a(1)到 a(n) For i= 1 to n-1
24
这个算法能 化简吗
For j=i+1 to n
a(j)<a(i) Y
N
交换a(i)和a(j) 打印输出a(1)到a(n)
精选ppt课件
17
1. 数组元素的输入(赋初值)
一维数组在输入时可用一重循环, 二维数组要用二重循环,多维数组用多重循环。 在VB中,数据按行存储,所以一般将数组第一维的循环 变量放在外重循环中 例5.1 求数组中的最小元素及下标 要求: 创建一个包含10个元素的数组,从键盘输入10个 数,找出其中最小的数,并且输出最小数的下标。 数据分析:除了声明包含 10个元素的数组外,还应该声明几 个变量,分别是什么类型? 求最大值最小值算法分析:?
精选ppt课件
23
1>选择法
原始数据 8 6 9 3 2 7 a(1) a(2) a(3) a(4) a(5) a(6) 第1趟交换后 2 6 9 3 8 7
a(2) a(3) a(4) a(5) a(6) 第2趟交换后 2 3 9 6 8 7 a(3) a(4) a(5) a(6) 第3趟交换后 2 3 6 9 8 7 a(4) a(5) a(6) 第4趟交换后 2 3 6 7 8 9 a(5) a(6) 第5趟无交换 2 3 6 7 8 9 图1.3.25 排序过程示意图
mark1, mark2, mark(1)
精选ppt课件
5.1.1数组与数组元素
6
(2)下标可以是常量、变量或者表达式
mark(1)=60 for i=2 to 100
mark(i)=cint(inputbox(“输入”))
next i
mark(i+1)=0
(3)下标反映的是数据在数组中的位置,应该为整 数,如为非整数,要四舍五入取整
维数:几个下标为几维数组,最多60维 例:Dim mark(1 to 100) As Integer Dim c(0 to3,0 to 4) As Integer
精选ppt课件
5.2.1 静态数组及声明
9
每一维大小: 上界-下界+1 数组大小: 每一维大小的乘积
Dim lArray( 0 To 3, 0 To 4) As Long 共有 4×5个元素 下标: [下界 To ] 上界,下界可以省略,当缺省时, 下标的下界由Option Base n语句控制 ,给出的上下界
iA(7) = 3 : iA(8) = 5
Text1.Text = Text1.Text & _
iA(9) = 7 :iA(10) = 9
iA(i) & " "
End Sub
Next i
演示
End Sub
精选ppt课件
22
2. 排序问题
排序算法 1〉用选择法对n个数进行由小到大排序
需反复进行求最小值与交换两个数这两种基本操作 (1) 从n个数的序列中选出最小的数(递增), 与第1个数交 换位置; (2)除第1个数外,其余n-1个数再按(1)的方法选出次小的数, 与第2个数交换位置; (3)重复(1)n-1遍,最后构成递增序列。
日期型数组、变体数组等。 ❖ 按数组的维数可分为:一维数组、二维数组、多维数组。
❖ 对象数组:菜单对象数组、控件数组。
精选ppt课件
8
5.2 静态数组
静态数组是指固定大小的数组,类型、维数和 大小将不得改变。 5.2.1 静态数组及声明 下界 to 上界 语法: Dim 数组名(下标1[,下标2…]) [As 类型]
(1) 如果在数组声明的时候,没有给出下标下界,则下界 由Option Base <n>语句控制,默认值为0。
例如:Dim b(2,4,3) Option Base 1
Dim a(2,0 to 4, 3)
精选ppt课件
5.2.1 静态数组及声明
10
Dim lArray( 0 To 3, 0 To 4) As Long 等价于: Dim lArray(3, 4) As Long
精选ppt课件
5
5.1.1数组与数组元素
4. 数组元素
如何确定100个学生和这个数据组中的各个成绩对应关系呢? 给数组中的数据编号,也就是顺序号,从而出现了数组中 的下标变量,所以数组元素也称为下标变量.数组元素表示 为: <数组名> (<下标表>) 例如:mark(1)、mark(99) 例如: c(2,3) 表示数组c中第2行第3列的那个元素 对于数组中下标的使用说明: (1)下标放在数组名后的括号内
选择法排序,将这些数按递增的顺序排列。(纠正课本错
误)
For i = 1 To 9
例如x(3.6)取整后为x(4)
精选ppt课件
5.1.1数组与数组元素
7
5. 数组的类型
Visual Basic中的数组,按不同的方式可分为以下几类: ❖ 按数组的大小(元素个数)是否可以改变来分为:
定长数组、动态(可变长)数组,也称为静态数组或 动 态数组。 ❖ 按元素的数据类型可分为:数值型数组、字符串数组、
声明Variant的变量或仅由括号括起的动态数组赋值。 <数组名>=Array(<数组元素值>)
(2)数组的下界由option base控制语句决定,上界由Array 函数括号内的参数个数决定,也可通过函数Ubound获得
例如,要将1,2,3,4,5,6,7 这些值赋值给数组a,可使用下面 的方法赋值。Dim a()
➢ 在同一过程中,数组与简单变量不能同名
精选ppt课件
15
1. 数组元素的输入(赋初值)
(1)赋值语句 Dim iA(1 To 10) As String iA(1)=“张三”: iA(2)=“李四”… 再如:for i=1 to 10 a(i)=int(Rnd*90)+10 ‘循环加赋值 next i
1
第5章 数 组
本章重点介绍 : 1. 静态数组 2. 动态数组 3. 控件数组
精选ppt课件
2
第5章 数 组
一个人N门课的成绩怎样存储和处理? 一个班N门课的成绩怎样存储和处理?......
这些数据的特点:具有相同的数据类型。 为了方便地使用这些数据,VB语言提供了一种 构造数据类型:数组 例如:存储学生成绩用实型数组 score(1 to 5 ) 其中:score是数组名。 该数组可以存放5个成绩,分别用下标变量表示: score(1),…,score(5)。
精选ppt课件
25
2> 选择法改进
输入n个数据给a(1)到 a(n) For i= 1 to n-1
imin =i
For j=i+1 to n
Y
a(j)<a(imin)
N
imin=j
交换a(i)和a(imin)
打印输出a(1)到a(n)
精选ppt课件
26
例5-3 由计算机产生10个0~100之间的随机整数,使用
End Sub
精选ppt课件
19
例5.2 Fibonacci数列问题
其中第n项的计算公式为:
Fib(n)=Fib(n-1)+Fib(n-2)
编程求出fibonacci数列的前15项
声明数组f(ห้องสมุดไป่ตู้5)
Dim f( 1 to 15) as Integer
f(1)=1:f(2)=1 i从3到15
f(i)=f(i-1)+f(i-2) 输出f(i)
LBound(<数组名> [, <N>]) UBound(score,2) 4
其中:
LBound(score,2) 0
<数组名>:必需的,遵循标准变量命名约定。
<N> :可选的;一般是整型常量或变量。指定返回哪一 维的上界。1 表示第一维,2 表示第二维,如此等等。
如果省略默认是1。
精选ppt课件
14
(2) 考虑:下面对数组的声明是否正确?
n =Inputbox(“输入n”)
错误的声 明,下标
Dim x(n) As Single
是变量
精选ppt课件
5.2.1 静态数组及声明
11
(3) 例如:考虑两个x(10)的区别?
Dim x(10) As Integer ' 声明了x数组有11个元素
x(10)=100
f(1)=1: f(2)=1
For i=3 to 15 f(i) =f(i-1)+f(i-2) print f(i)
Next i
精选ppt课件
20
5.2.3 数组的应用
1.数组元素的交换
For i =1 To 10\2 t=iA(i) iA(i)=iA(10-i+1) iA(10-i+1)=t
Next i
(2)在运行时通过 inputbox函数输入 for i=1 to 10 a(i)= inputbox(“请输入”) next i
精选ppt课件
16
1. 数组元素的输入(赋初值)
(3)用循环 For i = 1 To 10 a(i)=0 Next i
(4) Array函数 Dim ib() ‘用array函数给动态数组赋值时不能指定数组类型 ib = Array("abc", "def", "67") For i = 0 To UBound(ib) form1.Print ib(i); " "; Next i
5.2.2 数组的引用
使用数组就是对数组元素进行操作,对数组元
素的操作类似于对简单变量的操作。
引用数组元素需要注意的问题:
➢ 引用数组元素的方法:在数组名后的括号中指
明下标
例如a(5),b(3,4)
➢ 引用数组元素时,数组名、数组类型必须与数组
声明时一致
➢ 引用数组元素时,下标值应在数组声明时所指定 的范围内
' 对x(10)这个数组元素赋值
在数组声明中的下标说明了数组的整体,即每一维 的大小; 而在程序其他地方出现的下标表示数组中 的一个元素。两者写法形式相同,但意义不同。
声明数组:声明了数组的名、维数、大小、 类型,并且对数组进行初始化
精选ppt课件
12
补充 与数组操作有关的几个函数
1. Array函数 2. (1) Array函数可方便地对数组整体赋值,但它只能给
a=array(1,2,3,4,5,6,7) Dim a a =array(1,2,3,4,5,6,7)
精选ppt课件
13
补充 与数组操作有关的几个函数
2. 求数组的上界Ubound( )函数、 下界 Lbound( )函数
作用:分别用来确定数组某一维的上界和下界值。
使用形式如下:
UBound(<数组名>[, <N>]) Dim score(3,4) as integer
精选ppt课件
3
5.1数组的概念及其声明
5.1.1数组与数组元素 1. 数组概念 数组就是一组相同类型数据的集合,这一组数
中的每一个组成元素就叫做数组元素。 用一个统一的名字(数组名)代表逻辑上相关的一 批数据,每个元素用下标变量来区分;下标变量代 表元素在数组中的位置。 例如:dim mark(1 to 100) As Integer 第一个学生成绩用mark(1)来表示,其值为95 第二个学生成绩用mark(2)来表示,其值为80
精选ppt课件
21
Private Sub Form_Load() Private Sub Command1_Click()
iA(1) = 2 :iA(2) = 4 ‘交换前
iA(3) = 6 :iA(4) = 8 Text1.FontSize = 20
iA(5) = 10 :iA(6) = 1 For i = 1 To 10
精选ppt课件
18
Private Sub Form_Click() Dim a(1 To 10) As Integer Dim min As Integer, p As Integer For i = 1 To 10 a(i) = Val(InputBox("请输入一个数", "输入数", 0)) Next i min = a(1) :p = 1 For i = 2 To 10 If a(i) < min Then min = a(i) p=i End If Next i Print "数组第" & p & "个元素是最小值" & min
精选ppt课件
4
5.1.1数组与数组元素
2. 数组的命名
命名规则和简单变量的命名规则相同。例如:用 mark 来代表100个学生的成绩
3. 数组维数
数组中下标的个数称为数组的维数 一维数组:例如mark(100) 二维数组:有两个下标 例如: x(2,3) 二维数组相当于一个矩阵 三维数组:有三个下标,例如:m(3,4,5)
外重循环变量i:比较的趟数,n个数需要n-1趟比较,n从1变化 到n-1 内重循环j:每一趟比较的次数,j从i+1变化到n
精选ppt课件
输入n个数据给a(1)到 a(n) For i= 1 to n-1
24
这个算法能 化简吗
For j=i+1 to n
a(j)<a(i) Y
N
交换a(i)和a(j) 打印输出a(1)到a(n)
精选ppt课件
17
1. 数组元素的输入(赋初值)
一维数组在输入时可用一重循环, 二维数组要用二重循环,多维数组用多重循环。 在VB中,数据按行存储,所以一般将数组第一维的循环 变量放在外重循环中 例5.1 求数组中的最小元素及下标 要求: 创建一个包含10个元素的数组,从键盘输入10个 数,找出其中最小的数,并且输出最小数的下标。 数据分析:除了声明包含 10个元素的数组外,还应该声明几 个变量,分别是什么类型? 求最大值最小值算法分析:?
精选ppt课件
23
1>选择法
原始数据 8 6 9 3 2 7 a(1) a(2) a(3) a(4) a(5) a(6) 第1趟交换后 2 6 9 3 8 7
a(2) a(3) a(4) a(5) a(6) 第2趟交换后 2 3 9 6 8 7 a(3) a(4) a(5) a(6) 第3趟交换后 2 3 6 9 8 7 a(4) a(5) a(6) 第4趟交换后 2 3 6 7 8 9 a(5) a(6) 第5趟无交换 2 3 6 7 8 9 图1.3.25 排序过程示意图
mark1, mark2, mark(1)
精选ppt课件
5.1.1数组与数组元素
6
(2)下标可以是常量、变量或者表达式
mark(1)=60 for i=2 to 100
mark(i)=cint(inputbox(“输入”))
next i
mark(i+1)=0
(3)下标反映的是数据在数组中的位置,应该为整 数,如为非整数,要四舍五入取整
维数:几个下标为几维数组,最多60维 例:Dim mark(1 to 100) As Integer Dim c(0 to3,0 to 4) As Integer
精选ppt课件
5.2.1 静态数组及声明
9
每一维大小: 上界-下界+1 数组大小: 每一维大小的乘积
Dim lArray( 0 To 3, 0 To 4) As Long 共有 4×5个元素 下标: [下界 To ] 上界,下界可以省略,当缺省时, 下标的下界由Option Base n语句控制 ,给出的上下界
iA(7) = 3 : iA(8) = 5
Text1.Text = Text1.Text & _
iA(9) = 7 :iA(10) = 9
iA(i) & " "
End Sub
Next i
演示
End Sub
精选ppt课件
22
2. 排序问题
排序算法 1〉用选择法对n个数进行由小到大排序
需反复进行求最小值与交换两个数这两种基本操作 (1) 从n个数的序列中选出最小的数(递增), 与第1个数交 换位置; (2)除第1个数外,其余n-1个数再按(1)的方法选出次小的数, 与第2个数交换位置; (3)重复(1)n-1遍,最后构成递增序列。
日期型数组、变体数组等。 ❖ 按数组的维数可分为:一维数组、二维数组、多维数组。
❖ 对象数组:菜单对象数组、控件数组。
精选ppt课件
8
5.2 静态数组
静态数组是指固定大小的数组,类型、维数和 大小将不得改变。 5.2.1 静态数组及声明 下界 to 上界 语法: Dim 数组名(下标1[,下标2…]) [As 类型]