数组的概念数组并不是一种数据类型.ppt

上传人:牧羊曲112 文档编号:5059062 上传时间:2023-06-01 格式:PPT 页数:32 大小:271.50KB
返回 下载 相关 举报
数组的概念数组并不是一种数据类型.ppt_第1页
第1页 / 共32页
数组的概念数组并不是一种数据类型.ppt_第2页
第2页 / 共32页
数组的概念数组并不是一种数据类型.ppt_第3页
第3页 / 共32页
数组的概念数组并不是一种数据类型.ppt_第4页
第4页 / 共32页
数组的概念数组并不是一种数据类型.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《数组的概念数组并不是一种数据类型.ppt》由会员分享,可在线阅读,更多相关《数组的概念数组并不是一种数据类型.ppt(32页珍藏版)》请在三一办公上搜索。

1、第七章 数 组,7.1 概 述 数组的概念:数组并不是一种数据类型,而是一组相同类型数据的集合。用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。,其表示形式:A(1),A(10)X(1,1),X1(1,10),X(2,10)Y(0,0,0),Y(1,2,5),Visual Basic中的数组,按不同的方式可分为以下几类:按数组的大小(元素个数)是否可以改变来分为:定长数组、动态(可变长)数组。按元素的数据类型可分为:数值型数组、字符串数组、日期型数组、变体数组等。按数组的维数可分为:一维数组、二维数组、多维数组。对象数组:菜单对象数

2、组、控件数组。,7.2 一维数组 7.2.1 一维数组的声明(无隐式声明)形式:,Dim 数组名(to)As 或:Dim 数组名(to)例:Dim a(1 to 10)As Integer 声明了a数组有10个元素与上面声明等价形式:Dim a%(1 to 10),1是下标的下界,10是下标的上界,数组元数的数据类型,说明:1数组名的命名规则与变量的命名相同。2数组的元素个数:上界-下界+1。3缺省为0,若希望下标从1开始,可在模块的通用部分使用Option Base语句将设为1。其使用格式是:Option Base 0|1 后面的参数只能取0或1例如:Option Base 1 将数组声明中

3、缺省下标设为1 4和不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。,5如果省略As子句,则数组的类型为变体类型。6数组中各元素在内存占一片连续的存储空间,一维数组在内存中存放的顺序是下标大小的顺序,如图5-1所示:,7.2.2 一维数组元素的引用数组必须先定义后使用,使用形式:数组名(下标)其中:下标可以是整型变量、常量或表达式。例如:设有下面的数组B(10)As Integer 则下面的语句都是正确的。A(1)=A(2)+B(1)+5 取数组元素运算 A(i)=B(i)下标使用变量 B(i+1)=A(i+2)下标使用表达式引用不能下标越界,P113例,7.2.3 一

4、维数组的基本操作 1.可通过循环给数组元素的初值 For i=1 To 10 A数组的每个元素值为1 A(i)=1 Next i 2.数组的输入For i=1 To 4 For j=1 To 5 sc(i,j)=InputBox(输入sc(&i&,&j&)的值)Next j Next I,3.数组的输出 输出如下图所示的下三角数据,Dim sc(5,5)As Integer,i%,j%For i=1 To 5 For j=1 To i sc(i,j)=i*5+j Print sc(i,j);Next j Print 换行 Next I,4.求数组中最大元素及所在下标 Dim Max As In

5、teger,iMax As Integer Max=A(1):iMax=1 For i=2 To 10 If A(i)Max ThenMax=A(i)iMax=i End If Next I5.将数组元素倒置,For i=1 To 102 t=A(i)A(i)=A(10-i+1)A(10-i+1)=tNext I,例5.1,7.2.4 一维数组的应用 一、分类统计 例7.2 在例5.1中如果还要统计09,1019,2020,.8089,9099分数段及100分的学生人。则可另用数组bn来存各分数段的人数,并用bn(0)存09分的人数,bn(1)存1019分的人数,bn(9)存9099分的人数,

6、bn(10)存100分的人数。,二、排序问题 1选择法排序算法思想:1)对有n个数的序列(存放在数组a(n)中),从中选出最小(升序)或最大(降序)的数,与第1个数交换位置;2)除第1 个数外,其余n-1个数中选最小或最大的数,与第2个数交换位置;3)依次类推,选择了n-1次后,这个数列已按升序排列。,For i=1 To n-1 p=i For j=i+1 To n If a(p)a(j)Then p=j Next j temp=a(i)a(i)=a(p)a(p)=tempNext i,选择法排序(升序)的VB程序:,2冒泡法排序(递增)算法思想:(将相邻两个数比较,小的调到前头)1)有n个

7、数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”;2)第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的数;3)依次类推,n个数共进行n-1趟比较,在第j 趟中要进行n-j次两两比较。,For i=1 To n-1 For j=1 To n-i If a(j)a(j+1)Then temp=a(j)a(j)=a(j+1)a(j+1)=temp End if Next jNext i,冒泡法排序(升序)的VB程序:,例7.3 用随机函数产生50个10,100

8、)的随机整数,并按照由小到大的顺序打印出来。,程序界面如下:,7.3 二维数组及多维数组,7.3.1 二维数组的声明,声明格式如下:Dim 数组名(to,to)As 其中的参数与一维数组完全相同。,例如:Dim a(2,3)As Single 二维数组在内存的存放顺序是“先行后列”。例如数组a的各元素在内存中的存放顺序是:a(0,0)a(0,1)a(0,2)a(0,3)a(1,0)a(1,1)a(1,2)a(1,3)a(2,0)(2,1)a(2,2)a(2,3),7.3.2 二维数组的引用,引用形式:数组名(下标1,下标2)例如:a(1,2)=10 a(i+2,j)a(2,3)*2 在程序中常

9、常通过二重循环来操作使用二维数组元素。,7.3.3 二维数组的基本操作,二维数组数据的输入 2.求最大元素及其所在的行和列 3.计算两矩阵相乘 4.矩阵的转置,例7.4 设某一个班共有60个学生,期末考试5门课程,请编一程序评定学生的奖学金,要求打印输出一、二等奖学金学生的学号和各门课成绩。(奖学金评定标准是:总成绩超过全班总平成绩20%发给一个奖学金,超过全班总平成绩10%发给二个奖学金。),7.3.5 多维数组的声明和引用,定义多维数组的格式如下:Dim 数组名(to,to,)As 例如:Dim a(5,5,5)As Integer 声明a是三维数组 Dim b(2,6,10,5)As I

10、nteger 声明b是四维数组,7.4 动态数组 动态数组:在声明时未给出数组的大小。定长数组是在程序编译时分配存储空间,而动态数组是在程序执行时分配存储空间。7.4.1 动态数组的建立及使用 建立动态数组包括声明和大小说明两步:1在使用Dim、Private或Public语句声明括号内为空的数组。格式:Dim|Private|Public 数组名()As 数据类型 例:Dim a()As Integer2在过程中用ReDim语句指明该数组的大小。格式:ReDim Preserve 数组名(下标1,下标2),Preserve参数:保留数组中原来的数据,例:Redim A(10)Redim Pr

11、eserve A(20),说明:(1)ReDim语句是一个可执行语句,只能出现在过程中,并且可以多次使用,改变数组的维数和大小。(2)定长数组声时中的下标只能是常量,而动态数组ReDim 语句中的下标是常量,也可以是有了确定值的变量。例:Private Sub Form_Click()Dim N As Integer N=Val(InputBox(“输入N=?”)Dim a(N)As Integer.End sub,(3)在过程中可以多次使用ReDim来改变数组的大小,也可 改变数组的维数。例:ReDim x(10)ReDim x(20)x(20)=30 Print x(20)ReDim x(

12、20,5)x(20,5)=10 Print x(20,5)(4)每次使用ReDim语句都会使原来数组中值丢失,可以在ReDim后加Preserve 参数来保留数组中的数据。但此时 只能改变最后一维的大小。,例5.5,7.4.2 与数组操作有关的几个函数,Aarry函数Aarry函数可方便地对数组整体赋值,但它只能给声明Variant的变量或仅由括号括起的动态数组赋值。赋值后的数组大小由赋值的个数决定。,例如,要将1,2,3,4,5,6,7 这些值赋值给数组a,可使用下面的方法赋值。Dim a()A=array(1,2,3,4,5,6,7)Dim a A=array(1,2,3,4,5,6,7)

13、,2 求数组的上界Ubound()函数、下界 Lbound()函数,Ubound()函数和Lbound()函数分别用来确定数组某一维的上界和下界值。使用形式如下:UBound(,)LBound(,)其中:必需的。数组变量的名称,遵循标准变量命名约定。:可选的;一般是整型常量或变量。指定返回哪一维的上界。1 表示第一维,2 表示第二维,如此等等。如果省略默认是1。,3Split函数,使用格式:Split(,)说明:使用Split函数可从一个字符串中,以某个指定符号为分隔符,分离若干个子字符串,建立一个下标从零开始的一维数组。,7.5 控件数组,7.5.1 控件数组的概念 一组相同类型的控件组成。

14、它们共用一个控件名,具有相同的属性,建立时系统给每个元素赋一个唯一的索引号(Index)。控件数组共享同样的事件过程,通过返回的下标值区分控件数组中的各个元素。例:Private Sub cmdName _Click(Index As Integer)If Index=3 then 处理第四个命令按钮的操作 End If End Sub,7.5.2 控件数组的建立一、在设计时建立控件数组的步骤:1窗体上画出控件,进行属性设置,这是建立的第一个元素;2选中该控件,进行“Copy”操作若干次和“Paste”操作若干次建立了所需个数的控件数组元素。3进行事件过程的编程。二、运行时添加控件数组的步骤如下:,1在窗体上画出某控件,设置该控件的Index值为0,表示该控件为数组,这是建立的第一个元素,并可对一些取值相同的属性进行设置,如所有文本框的字体都取一样大小。2在编程时通过Load方法添加其余的若干个元素,也可以通过Unload方法删除某个添加的元素。Load方法和Unload方法的使用格式:Load 控件数组名()Unload 控件数组名()其中,为整型数据。表示控件数组的某个元素。3通过Left和Top属性确定每个新添加的控件数组元素在窗体的位置,并将Visible 属性设置为True。,通过例7.6来说明数组控件的使用:例7.6 为例5.4的学生成绩处理设计如下图成绩输入界面,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号