计算机VB05数组
Vb实验五数组的应用

《Visual Basic 6.0程序设计》实验报告(五)一、实验名称:数组的应用(4学时)二、实验目的:1.掌握数组的声明和数组元素的引用;2.掌握静态数组和动态数组的声明和使用;3.学会应用数组解决与数组有关的常用算法问题;4.掌握控件数组的建立和应用。
三、实验环境多媒体计算机WindowsXP操作系统Visual Basic 6.0四、实验内容及实验步骤(或记录)1.输入10名同学的成绩,求平均分、最高分和最低分。
设计步骤如下:①在窗体上添加3个标签(Label1、Label2和Label3)和3个文本框(Text1、Text2和Text3),设计界面如图7.2所示。
各控件的主要属性和作用如表1所示。
控件的属性和作用②编写程序代码如下:Private Sub Command1_Click()Dim Score(1 To 10) As Integer '声明存放成绩的数组ScoreDim i As Integer,Max As Integer,Min As Integer,Average As SingleFor i = 1 To 10 '逐一输入每个同学的成绩Score (i) = Val (InputBox ("输入第" & Str(i)& "个学生的成绩","成绩统计",""))Next iEnd SubPrivate Sub Command2_Click()Dim i As IntegerDim sum As Single, aver As Singlesum = Score (1) ' sum 用于存放总成绩,初值为数组中的第一个元素Max = Score (1) ' 设变量Max的初值为数组中的第一个元素Min = Score (1) ' 设变量Min的初值为数组中的第一个元素For i = 2 To 10 ' 通过循环依次比较,求最大、最小值;求总和If Score(i) > Max Then Max = Score(i)If Score(i) < Min Then Min = Score(i)sum = sum + Score(i)Next iaver = sum / 10 ' 求平均值Text1.Text = Format (Average, "0.00 " ) ' 以两位小数显示平均值Text2.Text = MaxText3.Text = MinEnd Sub2.生成20个0到100之间的随机整数存于数组A,然后将这20个数按递增顺序排序。
计算机应用VB-数组

5.3.4 与数组有关的几个函数
其中: <数组名>:必需的。数组变量的名称,遵循标 准变量命名约定。 <N> :可选的,一般是整型常量或变量。指定 返回哪一维的上界。1 表示第一维,2 表示第 二维,如此等等。如果省略默认是1。
5.3.4 与数组有关的几个函数
例如: Dim A(-5 To 50,20,7 To 65) As Integer UBound(A,3)=65 LBound(A)=-5
计算机中的“数组”是一群在内存中占用连续 地址的同性质的变量的集合,这些变量具有相 同的名称和数据类型,我们将数组中的每一个 数据称为“数组元素”,数组中的每个数组元 素相当于一个变量,数组元素通过下标进行区 分,下标代表数组元素在数组中的顺序(位置)。
5.1数组的基本概念
下面简要介绍有关数组的基本概念: (1) 数组:是具有相同数据类型的变量的一个有 序的集合。 如,Dim A(1 To 100) As Integer表示一个包含 100个数组元素、数组名为A、数据类型为整 型的数组。
5.2.2 动态数组的声明
说明: (1) ReDim语句是一个可执行语句,只能出现在过程中, 并且可以多次使用,改变数组的维数和大小,但不能 改变数组的数据类型。 例如:以下语句 Dim x() As Integer ReDim x(10) ReDim x(20) x(20) = 30 Print x(20) ReDim x(20, 7) x(20, 7) = 10 Print x(20, 7) 是正确的,而语句Redim x(34,20) As Long是错误的。
5.2 数组的定义
【例5-3】用循环方式对数组赋值。 Sub Form_Click() Dim i as Integer Dim A(5) As Integer For i=0 To 5 A(i)=i Next i For i=0 To 5 Print A(i) Next i End Sub
VB语言数组专题讲解

该数组可以存放5个成绩,分别用下标变量表示: score(1),…,score(5)。
3
5.1数组的概念及其声明
5.1.1数组与数组元素
1. 数组概念 数组就是一组相同类型数据的集合,这一组数
中的每一个组成元素就叫做数组元素。 用一个统一的名字(数组名)代表逻辑上相关的一 批数据,每个元素用下标变量来区分;下标变量代 表元素在数组中的位置。 例如:dim mark(1 to 100) As Integer
例如x(3.6)取整后为x(4)
5.1.1数组与数组元素
7
5. 数组的类型
Visual Basic中的数组,按不同的方式可分为以下几类: 按数组的大小(元素个数)是否可以改变来分为:
定长数组、动态(可变长)数组,也称为静态数组或 动 态数组。 按元素的数据类型可分为:数值型数组、字符串数组、
引用数组元素需要注意的问题:
引用数组元素的方法:在数组名后的括号中指
明下标
例如a(5),b(3,4)
引用数组元素时,数组名、数组类型必须与数组
声明时一致
引用数组元素时,下标值应在数组声明时所指定 的范围内 在同一过程中,数组与简单变量不能同名
15
1. 数组元素的输入(赋初值)
(1)赋值语句
日期型数组、变体数组等。
按数组的维数可分为:一维数组、二维数组、多维数组。
对象数组:菜单对象数组、控件数组。
8
5.2 静态数组
静态数组是指固定大小的数组,类型、维数 和大小将不得改变。 5.2.1 静态数组及声明 下界 to 上界 语法: Dim 数组名(下标1[,下标2…]) [As 类型]
1
VB课件--第5讲 数组

---------------------------------------------------------------最新资料推荐------------------------------------------------------VB课件--第5讲数组第 5 讲数组 5. 1 数组 5. 1. 1 数组的概念数组不是一种数据类型,而是一组相同类型的变量的集合。
数组必须先声明后使用,用声明语句声明数组时要声明:5. 1. 2 定长数组及声明 1. 一维数组 Dim 数组名(下标上界) [As 类型] Dim 数组名(下标下界 To 上界) [As 类型] 下标必须为常数,不能是表达式或变量;下标下界默认为 0;一维数组的大小为:上界-下界+1 Dim mark(99) As Integer ConstN=10 声明一个符号常量 N; Dim s!( N ) 用符号常量代表下标 2. 多维数组 Dim 数组名(下标 1,下标 2) [As 类型] 下标个数决定了数组的维数;每一维的大小=上界-下界+1;其大小为各维大小的乘积。
5. 1. 3 动态数组及声明建立动态数组分两步:(1) 用 Dim 语句声明数组,但不能指定数组大小 Dim 数组名( ) As 数据类型 (2) 在过程中用 ReDim 语句动态地分配元素个数 ReDim 数组名 (下标[, 下标 2]) 定义动态数组大小注意:说明语句,可出现在程序的任何地方。
而 ReDim 是执行语句,只能出现在过程代码中。
Redim 语句中的下标可以是常量,也可以是已赋值的变量。
1 / 15过程中可多次使用 ReDim 语句来改变数组的大小,但每次使用都会使数组中原有数据丢失。
可在 ReDim 后加 Preserve 参数用来保留数组中的数据,若使用 Preserve 参数后,只能改变最后一维的大小。
5. 2 数组的基本操作 1. 与数组相关的函数和设置 (1) Array 函数变量名=Array(常量数据列表) Aarry 函数将常量列表的各项值分别赋给一个一维数组。
VB程序设计第五章 数组

5. 求数组中最大元素和所在下标及各元素之和
方法:先假设第一个元素及下标为所求结 果,然后依次比较。 利用循环结构进行
Dim Max As Integer, iMax As Integer, sum As Integer Max=iA(1):iMax=1: sum=iA(1) For i = 2 To 10 sum = sum + iA(i) If iA(i) > Max Then Max = iA(i) iMax = i End If 求最小值同样方法进行 Next i
(a) 利用Array()函数,可以直接给数组赋值; (b) 数组的声明必须是动态数组或者省略圆 括号,且其类型必须为 Variant (c) 数组的下界默认为0,也可以通过 Option Base 语句确定 (d) 上界由 Array() 函数括号内参数个数确定, 或者由 UBound() 函数确定。
赋值时注意: (1) 赋值号两边的上界类型必须一致 (2) 如果赋值号左边是一个动态数组,则赋值后数组 大小与右边一致。 (3) 如果左边是静态数组,则数组赋值出错!
4. 数组的输出
数组的输出,采用循环输出即可 例:输出方阵sC中的下三角元素
For i = 0 To 4
For j = 0 To i sc(i, j) = i * 5 + j Print sc(i, j); " "; Next j Print ' 换行 Next I (参见P93的代码。)
下标可以是整型的常数、变量、表达式, 也可以是又一个数组元素。 数组元素的使用规则和同类型的简单变量 相同。 一般情况下,数组元素类型必须相同。 但当数组类型定义为 “variant” 时,可以包 含不同类型的元素。
VB第5章 数组(8)

10
3
数组的基本操作
数
3.1 数组元素的输入与输出 数组输入: 数组输入 赋值 IntputBox Array函数 仅用于一维数组 函数(仅用于一维数组 函数 仅用于一维数组) 数组输出: Print、Label、 ListBox、 数组输出: 用Print、Label、TextBox 、ListBox、 Combox等 等 输入10个单词 个单词, 例: 输入 个单词,按相反的次序输出
数 组
例: Dim A() As Integer Private Sub Command1_Click() N=4 ReDim A(N) For I = 0 To N A(I) = 1: Print A(I); Next I Print N=8 ReDim A(N, N) For I = 0 To N For J = 0 To N A(I, J) = 2: Print A(I, J); Next J Print Next I End Sub
6
数 组
例: Dim A(-4 TO 10) As Integer 一维整型数值数组 下界 -4,上界 10 , 元素 A(-4) A(-3) ... A(0) A(1) ... A(10) 例: Dim B(0 to 8,0 to 3) As String → DIM B(8,3) As String 二维字符串类型 字符串类型数组 二维字符串类型数组 第一维: 下界0, 第一维 下界 ,上界 8 第二维: 下界0, 第二维 下界 ,上界 3 元素 B(0,0) B(0,1) B(0,2) B(0,3) B(1,0) B(1,1) B(1,2) B(1,3) ... B(8,0) B(8,1) B(8,2) B(8,3)
12
数 组
VB5

5.3.2与动态数组操作相关的函数 5.3.2与动态数组操作相关的函数
1.Array函数(p98) 1.Array函数(p98) 使用格式:Array(参数列表) 使用格式:Array(参数列表) 说明: (1)用Array函数给动态数组赋值后,该数组被确定为一维数组,其下标下界由Option )用Array函数给动态数组赋值后,该数组被确定为一维数组,其下标下界由Option Base n语句决定,下标上界由参数个数决定。 n语句决定,下标上界由参数个数决定。 (2)用Array函数也可给Variant类型的变量赋值,此时该变量也表示一个Variant类型的动 )用Array函数也可给Variant类型的变量赋值,此时该变量也表示一个Variant类型的动 态数组。 例如:Dim 例如:Dim a() As Variant ,b As Variant a=Array(1,”abc” a=Array(1,”abc”,3) b=Array(5,6) a=Array(9,8,7,6) ‘重新改变数组a的元素个数 重新改变数组a ReDim Preserve a(2),b(1 To 5): 改变数组a、b的大小,并保留原来的数据。 5): 改变数组a 2.Lbound()函数和Ubound()函数 2.Lbound()函数和Ubound()函数 Lbound()函数和Ubound()函数帮助用户确定数组每一维下标的变化范围,Lbound()函数返回 Lbound()函数和Ubound()函数帮助用户确定数组每一维下标的变化范围,Lbound()函数返回 数组的下界,Ubound()函数返回数组上界。 数组的下界,Ubound()函数返回数组上界。 a=array(3,4,5) 使用格式:Lbound(数组名,n)和Ubound(数组名,n i=Lbound (a) To Ubound(a) 使用格式:Lbound(数组名,n)和Ubound(数组名,n) For 说明:n表示第几维,默认为1(第一维),即省略参数n 说明:n表示第几维,默认为1(第一维),即省略参数n时,默认数组为一维数组。 Print a(i) 例如:输出动态一维数组a 例如:输出动态一维数组a中的各元素 Next i For i=Lbound (a) To Ubound(a) a=array(12,43,56,86,87) Print a(i) For i=Lbound (a) To Ubound(a) Next i
VB程序设计--数组

2.数组的逻辑结构和存储结构
例如:声明一维整型数组N(8) N(8)在内存中排列示意图:
N(1) N(2) N(3) N(4) N(5) N(6) N(7) N(8)
Dim N%(8)
例:从键盘随意 输入8个数,将 这8个数从大到 小排列输出。
二维数组的逻辑结构
二维数组的逻辑结构:可以看成一个二维表格或看成 一个矩阵。数组元素的第一个下标值表示该元素在表 格中的行号,第二个下标值表示该元素在表格中的列 号。 例如:声明二维数组:DIM W%(4,3)
交换后
9 7 5 3 1 10 8 6 4 2
3. 二维数组的输入和输出
Dim a%(4, 2) For i = 0 To 4 For j = 0 To 2
a(i, j) = Val(InputBox("请输入第(" & i + 1 & "," & j + 1 & ")元素"))
Picture1.Print Format(a(i, j), "@@@@@"); Next j Picture1.Print Next i
Hale Waihona Puke 数组的概念整型一维数组 N(1)
• 具有相同类型的一组变量作为一个整体,N称(2为) 数组。 ┋
• 数组占据一块内存区域,数组名是这个区域的名称,
区域中的每个内存单元都有自己的地址,该地址用 ┋
下标表示,即标识了数组中的每个元素。
• 定义数组的目的就是通知系统为其留 出所需要的空间,且同名数组中的元 素按一定的顺序连续存放。
x(10)=100
' 对x(10)这个数组元素赋值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
示例3 第三步: 示例3:第三步:求最大值及出现次数
iMax=A(0):P=0 For I=1 To 25 if A(I)>iMax Then iMax=A(I) P=I End if Next I Print iMax, Chr(p+65) End Sub
Visual Basic程序设计
主要内容 (main contents)
数组的声明
方法一: 数组名(下标上界) 方法一 Dim 数组名(下标上界) As 数据类型
例 如
Dim A(4) as Integer
A(0) A(1) A(2) A(3) A(4)
0
0
0
0
0
默认下标从0 开始,数值型数组默认值为0, 默认下标从0 开始,数值型数组默认值为0,字符为空 0,字符为空
16
0 2 1 0 1 0 2 1 0 1 0 3 2 1 0 1 0 0 0 1
X=1 X=2 X=3 X=4 X=5 X=6
X=9
Private Sub Command1_Click() Dim A(9) As Integer For i = 1 To Len(Text1.Text) x = Val(Mid(Text1.Text, i, 1)) A(x) = A(x) + 1 Next i For j = 0 To 9 Print j; "的出现次数 的出现次数="; A(j) 的出现次数 Next j End Sub
分析: 利用数组的下标和循 环相结合,不但能保 存所有数据, 而且编 程更方便。
10
Visual Basic程序设计
作业评讲
2、定义一个 个元素的数组,将10个[0~100]的 定义一个10个元素的数组 定义一个 个元素的数组, 个 的 随机数赋值给数组的各个元素。求出10个随机 随机数赋值给数组的各个元素。求出 个随机 数的平均值,然后找出最接近平均值的元素。 数的平均值,然后找出最接近平均值的元素。
…
一维数组应用
对数组中的元素求和及平均值 求数组中的最大值及所在位置 随机产生N 随机产生N个”A”~”Z”组成的字符串,计算 组成的字符串, 其中出现频率最高的字符及出现的次数 将包含任意数量元素的一维数组A 将包含任意数量元素的一维数组A的所有元素赋 予随机整数,并在窗体上显示, 予随机整数,并在窗体上显示,然后将它们按相 反顺序排列,并在窗体上显示成另外一行。 反顺序排列,并在窗体上显示成另外一行。
多维数组的声明及使用(重点) 多维数组的声明及使用(重点) 动态数组(重点) 动态数组(重点) 与数组有关的函数(难点) 与数组有关的函数(难点) 控件数组
26
Visual Basic程序设计
5.2 多维数组
定义: 定义:
一维数组:只有一个下标的数组,如X(8)。 多维数组:有两个或以上下标的数组,如X(5,4)
分析: 分析:
产生数组a(1 ① 产生数组a(1 To 10) ② 对数组求和 求平均值 ③ 怎样才是最接近平均值的数? 怎样才是最接近平均值的数?
11
Visual Basic程序设计
①
产生数组a(1 To 10) 产生数组
Private Sub Command1_Click() Dim a(1 To 10) As Integer For i = 1 To 10 a(i) = Int(Rnd * 101) Print a(i); Print "a(" & i & ")=" & a(i); " "; s = s + a(i) Next i aver = s / 10 Print Print "平均值:"; aver
13
Visual Basic程序设计
作业评讲
14
Visual Basic程序设计
作业评讲: 作业评讲:分类统计数字的出现次数
分别统计文本框Text1中各个数字出现的次数
15
Visual Basic程序设计
分类统计数字的出现次数 A(0) 0 31415926535897932384626
A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9)
分析: 分析: 1、主对角线和次对 角线上的元素值为1 角线上的元素值为1 其余元素值为0 2、其余元素值为0
32
Visual Basic程序设计
方阵的应用
Private Sub Form_Click() Dim a(6, 6) As Integer For i = 0 To 6 For j = 0 To 6 If i = j Or i + j = 6 Then a(i, j) = 1 Else a(i, j) = 0 End If Print a(i, j); Next j Print Next i End Sub
8
数组的操作
初始化
For I=0 to 4 A= Int(100*Rnd)
数组的输出
For I=0 to 4
×
Print A Print A(I) B=B+A(I) Next I
×
A(I)=Int(100*Rnd) Next I
Visual Basic程序设计
作业评讲
1、随机产生30~100(包括30、100)的10 个正整数,求最大值、最小值、平均值, 并显示数组的值和结果。
数组下标下界默认值的定义
Option Base 1 ‘设置该模块中所有数组的默认 下界为1。
该语句的位置? 该语句的位置?
例 如:
Option Base 1 Dim A(4)as Integer
A(1) A(2) A(3) A(4)
0 0 0 0
Visual Basic程序设计
数组的操作
数组的初始化 数组输入、 数组输入、数组输出 求数组中的最大(最小)元素及下标、 求数组中的最大(最小)元素及下标、 求和、平均值、 求和、平均值、排序和查找
示例3 示例3
A(0) A(1) A(2) A(3) A(4) A(5) ..
A B B CH J GY F OU I
A B C D E F
..
1 2 1 0 0 0 ..
第二步:计数 第二步: For I=1 To N Ch=Mid(S ,I, 1) J= Asc(Ch)-Asc(“A”) Asc(Ch)A(J)=A(J)+1 Next I
12
Visual Basic程序设计
②求数组中的每一个元素与平均值的差值 d = Abs(a(1) - aver) p=1 For i = 2 To 10 If Abs(a(i) - aver) < d Then d = Abs(a(i) - aver) p=i End If 提问:这里能否用a(i) ? Next i Print "最接近平均值的数是:"; "a("; p; ")="; a(p) Print "最接近平均值的数是第"; p; "个数:"; a(p) End Sub
示例2 示例2:求对数组中的最大值及所在位置
iMax=A(1) P=1 ‘P表示该元素位置 For i=2 to 10 if A(i)>iMax Then iMax=A(i) P=i End if Next I Print iMax, P End Sub
示例3 随即产生N 示例3:随即产生N个“A” “Z”组成的字符 串,计算机中出现频率最高的字符及次数
声明方法: 声明方法:
Dim 数组名(第一维上界,第二维上界) As 数据类 例如: 例如:Dim A(1,4) as Integer Dim 数组名(第一维下界 To 上界,第二维下界 to 上界) As 数据类型 例如: 例如:Dim A( 0 to 1, 0 to 4)as Integer
27Biblioteka 组的声明数组名( 上界) 方法二: 方法二 Dim 数组名(下界 To 上界) As 数据类型
例 如
Dim A(2 to 5) as Integer
数组名A包含了4个元素(变量),分别是 数组名A包含了4个元素(变量),分别是 ),
A(2) A(3) A(4) A(5)
0
0
0
0
Dim A(-2 to 5) as String*3
示例1 示例1:对数组中的元素求和及平均值
Dim A(10) as Integer Private Sub Command1_Click() Dim I as Integer,Sum as Integer Integer, Sum=0 For I=0 To10 Sum=Sum+A(i) Next I Print Sum End Sub
Visual Basic程序设计
分类统计字母的出现次数
A(0) A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9)
17
0 0 0 0 0 0 0 0 0 0
The quick brown fox jumps over a lazy dog Dim A(25) As Integer For i = 1 To Len(Text1.Text) x = Asc(UCase(Mid(Text1.Text, i, 1))) - 65 If x>=0 And x<=25 Then A(x) = A(x) + 1 Next i For j = 0 To 25 Print Chr(j+65);”的出现次数 的出现次数=”;A(j) 的出现次数 Next j
示例2 示例2
A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9) A(10 )