vb计算机二级考试.ppt

上传人:叶*** 文档编号:67324445 上传时间:2022-12-24 格式:PPT 页数:32 大小:578KB
返回 下载 相关 举报
vb计算机二级考试.ppt_第1页
第1页 / 共32页
vb计算机二级考试.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《vb计算机二级考试.ppt》由会员分享,可在线阅读,更多相关《vb计算机二级考试.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、vbvb计算机二级考试计算机二级考试计算机二级考试计算机二级考试12021/2/21第五章第五章 数组和自定义类型数组和自定义类型5.1 概概 述述 数组的概念:数组并不是一种数据类型,数组的概念:数组并不是一种数据类型,而是一组一样类型数据的集合。用一个统而是一组一样类型数据的集合。用一个统一的名字数组名代表逻辑上相关的一一的名字数组名代表逻辑上相关的一批数据,每个元素用下标变量来区分;下批数据,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。标变量代表元素在数组中的位置。其表示形式:其表示形式:A(1),A(10)X(1,1),X1(1,10),X(2,10)Y(0,0,0),Y

2、(1,2,5)22021/2/21VisualBasic中中的的数数组组,按按不不同同的的方方式式可可分分为为以以下几类:下几类:按按数数组组的的大大小小元元素素个个数数是是否否可可以以改改变变来来分分为:定长数组、动态可变长数组。为:定长数组、动态可变长数组。按按元元素素的的数数据据类类型型可可分分为为:数数值值型型数数组组、字字符符串数组、日期型数组、变体数组等。串数组、日期型数组、变体数组等。按按数数组组的的维维数数可可分分为为:一一维维数数组组、二二维维数数组组、多维数组。多维数组。对象数组:菜单对象数组、控件数组。对象数组:菜单对象数组、控件数组。32021/2/215.2 一维数组

3、一维数组 5.2.1 一维数组的声明一维数组的声明(无隐式声明无隐式声明)形式:Dim数组名数组名(to)As或:或:Dim数组名数组名(to)例:Dim a(1 to 10)As Integer 声明了a数组有10个元素与上面声明等价形式:Dim a%(1 to 10)1是下标的下界10是下标的上界数组元数的数据类型42021/2/21说明:说明:1数组名的命名规那么与变量的命名一样。数组名的命名规那么与变量的命名一样。2数组的元素个数:上界数组的元素个数:上界-下界下界+1。3缺缺省省为为0,假假设设希希望望下下标标从从1开开场场,可可在在模模块块的的通通用用部部分分使使用用Option

4、Base语语句句将将设设为为1。其使用格式是:其使用格式是:Option Base 0|1 后后面面的的参参数数只只能能取取0或或1例如:例如:Option Base 1 将将数数组组声声明明中中缺缺省省下下标设为标设为14和和不不能能使使用用变变量量,必必须须是是常常量量,常量可以是直接常量、符号常量,一般是整型常量。常量可以是直接常量、符号常量,一般是整型常量。52021/2/215假如省略假如省略As子句,那么数组的类型为变体类型。子句,那么数组的类型为变体类型。6数数组组中中各各元元素素在在内内存存占占一一片片连连续续的的存存储储空空间间,一一维维数数组组在在内内存存中中存存放放的的顺

5、顺序序是是下下标标大大小小的的顺顺序序,如图如图5-1所示:所示:62021/2/215.2.2一维数组元素的引用一维数组元素的引用数组必须先定义后使用数组必须先定义后使用使用形式:使用形式:数组名数组名(下标下标)其中:下标可以是整型变量、常量或表达式。其中:下标可以是整型变量、常量或表达式。例如:例如:设有下面的数组设有下面的数组B(10)AsInteger那么下面的语句都是正确的。那么下面的语句都是正确的。A(1)=A(2)+B(1)+5取数组元素运算取数组元素运算A(i)=B(i)下标使用变量下标使用变量B(i+1)=A(i+2)下标使用表达式下标使用表达式引用不能下标越界,引用不能下

6、标越界,P113例例72021/2/215.2.3 5.2.3 一维数组的根本操作一维数组的根本操作 1.1.可通过循环给数组元素的初值可通过循环给数组元素的初值 For i=1 To 10 For i=1 To 10 A A数组的每个元素数组的每个元素值为值为1 1 A(i)=1 A(i)=1 Next i Next i 2.2.数组的输入数组的输入For i=1 To 4For i=1 To 4 For j=1 To 5 For j=1 To 5 sc(i,j)=InputBox(sc(i,j)=InputBox(输入输入sc(sc(&i&,&j&)&i&,&j&)的值的值)Next j

7、Next j Next I Next I82021/2/213.3.数组的输出数组的输出 输出如以下图所示的下三角数据输出如以下图所示的下三角数据Dimsc(5,5)AsInteger,i%,j%Fori=1To5Forj=1Toisc(i,j)=i*5+jPrintsc(i,j);NextjPrint换行换行NextI92021/2/214.求数组中最大元素及所在下标求数组中最大元素及所在下标DimMaxAsInteger,iMaxAsIntegerMax=A(1):iMax=1Fori=2To10IfA(i)MaxThenMax=A(i)iMax=iEndIfNextI5.将数组元素倒置将

8、数组元素倒置Fori=1To102t=A(i)A(i)=A(10-i+1)A(10-i+1)=tNextI例例5.1102021/2/215.2.4一维数组的应用一维数组的应用一、分类统计一、分类统计例例在例中假如还要统计在例中假如还要统计09,1019,2020,.8089,9099分数段及分数段及100分的学生人。分的学生人。那么可另用数组那么可另用数组bn来存各分数段的人数,来存各分数段的人数,并用并用bn(0)存存09分的人数,分的人数,bn(1)存存1019分分的人数,的人数,bn(9)存存9099分的人数,分的人数,bn(10)存存100分的人数。分的人数。112021/2/21二

9、、二、排序问题排序问题1选择法排序选择法排序算法思想:算法思想:1对有对有n个数的序列存放在数组个数的序列存放在数组a(n)中,中,从中选出最小升序或最大降序的数,从中选出最小升序或最大降序的数,与第与第1个数交换位置;个数交换位置;2除第除第1个数外,其余个数外,其余n-1个数中选最小或个数中选最小或最大的数,与第最大的数,与第2个数交换位置;个数交换位置;3依次类推,选择了依次类推,选择了n-1次后,这个数列已次后,这个数列已按升序排列。按升序排列。122021/2/21132021/2/21For i=1 To n-1For i=1 To n-1 p=i p=i For j=i+1 To

10、 nFor j=i+1 To n If a(p)a(j)Then p=j If a(p)a(j)Then p=j Next j Next j temp=a(i)temp=a(i)a(i)=a(p)a(i)=a(p)a(p)=temp a(p)=tempNext iNext i选择法排序升序的选择法排序升序的VB程序:程序:142021/2/212冒泡法排序递增冒泡法排序递增算算法法思思想想:(将将相相邻邻两两个个数数比比较较,小小的的调调到到前头前头)1有有n个个数数存存放放在在数数组组a(n)中中,第第一一趟趟将将每每相相邻邻两两个个数数比比较较,小小的的调调到到前前头头,经经n-1次次两两

11、两两相相邻邻比比较较后后,最最大大的的数数已已“沉沉底底,放在最后一个位置,小数上升放在最后一个位置,小数上升“浮起;浮起;2第第二二趟趟对对余余下下的的n-1个个数数最最大大的的数数已已“沉沉底底按按上上法法比比较较,经经n-2次次两两两两相相邻邻比较后得次大的数;比较后得次大的数;3依依次次类类推推,n个个数数共共进进展展n-1趟趟比比较,在第较,在第j趟中要进展趟中要进展n-j次两两比较。次两两比较。152021/2/21162021/2/21For i=1 To n-1For i=1 To n-1 For j=1 To n-i For j=1 To n-i If a(j)a(j+1)T

12、hen If a(j)a(j+1)Then temp=a(j)temp=a(j)a(j)=a(j+1)a(j)=a(j+1)a(j+1)=temp a(j+1)=temp End if End if Next j Next jNext iNext i冒泡法排序升序的冒泡法排序升序的VB程序:程序:172021/2/21例例5.3用用随随机机函函数数产产生生50个个10,100的的随随机机整整数数,并并按按照由小到大的顺序打印出来。照由小到大的顺序打印出来。程序界面如下:程序界面如下:182021/2/215.3二维数组及多维数组二维数组及多维数组5.3.1二维数组的声明二维数组的声明声明格式如

13、下:声明格式如下:Dim数数组组名名(to,to)As其中的参数与一维数组完全一样。其中的参数与一维数组完全一样。例如:例如:Dima(2,3)AsSingle二二维维数数组组在在内内存存的的存存放放顺顺序序是是“先先行行后后列列。例例如如数数组组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)192021/2/215.3.2二维数组的引用二维数组的引用引用形式:引用形式:数组名数组名(下标下标1,下标,下标2)例如:例如:a(1,2)=1

14、0 a(i+2,j)a(2,3)*2 在程序中常常通过二重循环来操作使用二维数组元素。在程序中常常通过二重循环来操作使用二维数组元素。5.3.3二维数组的根本操作二维数组的根本操作1.二维数组数据的输入二维数组数据的输入2.2.求最大元素及其所在的行和列求最大元素及其所在的行和列3.3.计算两矩阵相乘计算两矩阵相乘4.4.矩阵的转置矩阵的转置202021/2/21例例5.4设某一个班共有设某一个班共有60个学生,期末考试个学生,期末考试5门课程,请编一程序评定学生的奖学金,要门课程,请编一程序评定学生的奖学金,要求打印输出一、二等奖学金学生的学号和各门求打印输出一、二等奖学金学生的学号和各门课

15、成绩。奖学金评定标准是:总成绩超过全课成绩。奖学金评定标准是:总成绩超过全班总平成绩班总平成绩20%发给一个奖学金,超过全班总发给一个奖学金,超过全班总平成绩平成绩10%发给二个奖学金。发给二个奖学金。212021/2/215.3.5多维数组的声明和引用多维数组的声明和引用定义多维数组的格式如下:定义多维数组的格式如下:Dim数数组组名名(to,to,)As例如:例如:Dim a(5,5,5)As Integer 声明声明a是三维数组是三维数组Dimb(2,6,10,5)AsInteger声明声明b是四维数组是四维数组222021/2/215.4动态数组动态数组动态数组:在声明时未给出数组的大

16、动态数组:在声明时未给出数组的大小。定长数组是在程序编译时分配存储小。定长数组是在程序编译时分配存储空间,而动态数组是在程序执行时分配空间,而动态数组是在程序执行时分配存储空间。存储空间。5.4.1动态数组的建立及使用动态数组的建立及使用建立动态数组包括声明和大小说明两建立动态数组包括声明和大小说明两步:步:1在使用在使用Dim、Private或或Public语句声语句声明括号内为空的数组。明括号内为空的数组。格式:格式:Dim|Private|Public数组名数组名As数据类型数据类型例:例:Dima()AsInteger2在过程中用在过程中用ReDim语句指明该数组的语句指明该数组的大小

17、。大小。格式:格式:ReDimPreserve数组名下数组名下标标1,下标,下标2Preserve参数:保存数组中原来的数据参数:保存数组中原来的数据例:例:RedimA(10)RedimPreserveA(20)232021/2/21说明:说明:1ReDim语句是一个可执行语句,只能出语句是一个可执行语句,只能出如今过程中,并且可以屡次使用,改变数组的如今过程中,并且可以屡次使用,改变数组的维数和大小。维数和大小。2定长数组声时中的下标只能是常量,而定长数组声时中的下标只能是常量,而动态数组动态数组ReDim语句中的下标是常量,也可语句中的下标是常量,也可以是有了确定值的变量。以是有了确定值

18、的变量。例:例:PrivateSubForm_Click()DimNAsIntegerN=Val(InputBox(“输入输入N=?)Dima(N)AsInteger.Endsub242021/2/213在过程中可以屡次使用在过程中可以屡次使用ReDim来改变数组的大小,也来改变数组的大小,也可可改变数组的维数。改变数组的维数。例:例:ReDimx(10)ReDimx(20)x(20)=30Printx(20)ReDimx(20,5)x(20,5)=10Printx(20,5)4每次使用每次使用ReDim语句都会使原来数组中值丧失,可以语句都会使原来数组中值丧失,可以在在ReDim后加后加Pr

19、eserve参数来保存数组中的数据。但此时参数来保存数组中的数据。但此时只只能改变最后一维的大小。能改变最后一维的大小。例例252021/2/215.4.2与数组操作有关的几个函数与数组操作有关的几个函数1.Aarry函数函数2.Aarry函数可方便地对数组整体赋值,但它只能给声明函数可方便地对数组整体赋值,但它只能给声明Variant的变量或仅由括号括起的动态数组赋值。赋值后的数的变量或仅由括号括起的动态数组赋值。赋值后的数组大小由赋值的个数决定。组大小由赋值的个数决定。例如,要将例如,要将1,2,3,4,5,6,7这些值赋值给数组这些值赋值给数组a,可使用下面,可使用下面的方法赋值。的方法

20、赋值。Dim a()A=array(1,2,3,4,5,6,7)Dim a A=array(1,2,3,4,5,6,7)262021/2/212求数组的上界求数组的上界Ubound()函数、函数、下界下界Lbound()函数函数Ubound()函数和函数和Lbound()函数函数分别用来确定数组某一维的上界和下界值。分别用来确定数组某一维的上界和下界值。使用形式如下:使用形式如下:UBound(,)LBound(,)其中:其中:必需的。数组变量的名称,遵循标准变量命名:必需的。数组变量的名称,遵循标准变量命名约定。约定。:可选的;一般是整型常量或变量。指定返回哪一:可选的;一般是整型常量或变量

21、。指定返回哪一维的上界。维的上界。1表示第一维,表示第一维,2表示第二维,如此等等。假如表示第二维,如此等等。假如省略默认是省略默认是1。272021/2/215.5 5.5 控件数组控件数组 5.5.1控件数组的概念控件数组的概念一组一样类型的控件组成。一组一样类型的控件组成。它们共用一个控件名,它们共用一个控件名,具有一样的属性,建立时系统给每个元素赋一个唯一具有一样的属性,建立时系统给每个元素赋一个唯一的索引号的索引号(Index)。控件数组共享同样的事件过程,控件数组共享同样的事件过程,通过返回的下标值区分控件数组中的各个元素。通过返回的下标值区分控件数组中的各个元素。例:例:Priv

22、ateSubcmdName_Click(IndexAsInteger)IfIndex=3then处理第四个命令按钮的操作处理第四个命令按钮的操作EndIfEndSub282021/2/215.5.2控件数组的建立控件数组的建立一、在设计时建立控件数组的步骤:一、在设计时建立控件数组的步骤:1窗体上画出控件,进展属性设置,这是窗体上画出控件,进展属性设置,这是建立的第一个元素;建立的第一个元素;2选中该控件,进展选中该控件,进展“Copy操作假设干操作假设干次和次和“Paste操作假设干次建立了所需个操作假设干次建立了所需个数的控件数组元素。数的控件数组元素。3进展事件过程的编程。进展事件过程的

23、编程。二、运行时添加控件数组的步骤如下二、运行时添加控件数组的步骤如下:292021/2/211在在窗窗体体上上画画出出某某控控件件,设设置置该该控控件件的的Index值值为为0,表表示示该该控控件件为为数数组组,这这是是建建立立的的第第一一个个元元素素,并并可可对对一一些些取取值值一一样样的的属属性性进进展展设设置置,如如所所有有文文本本框框的的字字体体都都取取一一样样大小。大小。2在在编编程程时时通通过过Load方方法法添添加加其其余余的的假假设设干干个个元元素素,也也可以通过可以通过Unload方法删除某个添加的元素。方法删除某个添加的元素。Load方法和方法和Unload方法的使用格式:方法的使用格式:Load控件数组名控件数组名()Unload控件数组名控件数组名()其中,其中,为整型数据。表示控件数组的某个元素。为整型数据。表示控件数组的某个元素。3通通过过Left和和Top属属性性确确定定每每个个新新添添加加的的控控件件数数组组元元素素在在窗体的位置,并将窗体的位置,并将Visible属性设置为属性设置为True。302021/2/21通过例来说明数组控件的使用:通过例来说明数组控件的使用:例例5.6为例的学生成绩处理设计如以下图成绩输入界面为例的学生成绩处理设计如以下图成绩输入界面312021/2/21谢谢!322021/2/21

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁