数组与自定义类型.ppt
《数组与自定义类型.ppt》由会员分享,可在线阅读,更多相关《数组与自定义类型.ppt(48页珍藏版)》请在三一办公上搜索。
1、1,计算机应用教研室,第07章 数组及自定义类型,主讲教师:董小艳联系电话:87092417,2,引例,求某门课6个学生成绩中的高于平均分的学生人数 方法一:用一个变量来接收6个学生的成绩(多次赋值)。缺点:已处理过的数值不保存,再次对数据处理时,要重新输入。方法二:用6个变量分别存放6个学生的成绩。缺点:如果处理的数据增多,需要使用很多变量,给程序的编写带来极大的不方便。方法三:利用数组,Private Sub Command1_Click()Dim avg As Single,x As Single,i As Integer,sum As Single,n As Integer For i
2、=1 To 6 x=Val(InputBox(请输入第 Next i avg=sum/6 For i=1 To 6 x=Val(InputBox(请输入第&i&个学生的成绩,输入,0)If x avg Then n=n+1 Next i Print Print 平均成绩为:&avg Print 高于平均成绩的有:&n&人End Sub,Private Sub Command2_Click()Dim x As Single,y As Single,z As Single,u As Single,v As Single,w As Single,avg As Single,n As Integer
3、x=Val(InputBox(请输入第1个学生的成绩,输入,0)y=Val(InputBox(请输入第2个学生的成绩,输入,0)z=Val(InputBox(请输入第3个学生的成绩,输入,0)u=Val(InputBox(请输入第4个学生的成绩,输入,0)v=Val(InputBox(请输入第5个学生的成绩,输入,0)w=Val(InputBox(请输入第6个学生的成绩,输入,0)Print x;y;z;u;v;w avg=(x+y+z+u+v+w)/6 If x avg Then n=n+1 If y avg Then n=n+1 If z avg Then n=n+1 If u avg T
4、hen n=n+1 If v avg Then n=n+1 If w avg Then n=n+1 Print 平均成绩为:;avg Print 高于平均成绩的有&n&人End Sub,3,本章主要内容,1、数组的概念 2、一维数组 3、二维数组 4、控件数组 5、自定义数据类型,4,7.1 数组,1、数组的有关概念(1)数组:是一个由多个同类型变量组成的集合。(2)数组名:这组变量有统一的名称,就是数组名。(3)数组元素:构成数组的成员。每个数组元素和一个普通变量一样能存放一个数据。(4)下标:用来标识数组中的每一个元素在数组中的位置。如,有一个数组a,数组元素可分别表示为:a(1),a(2
5、),a(3),a(4),5,7.1 数组,2、数组的特点(1)数组由若干个数组元素组成,数组元素的数据类型一致。(2)数组元素和简单变量作用相似,可存储一个数据。(3)数组中各元素之间有内在联系,在内存中占连续的一段存储单元。,6,7.1 数组,3、数组的分类(1)按照定义时数组元素个数确定与否,数组可分为:静态数组:定义时数组元素的个数就已经确定动态数组:定义时数组元素的个数不确定,在程序运行时根据需要才确定数组元素的多少(2)按照数组元素下标的个数,数组可分为:一维数组:数组元素有一个下标二维数组:数组元素有两个下标多维数组:数组元素有多个下标,7,一维静态数组,1、一维静态数组的定义 D
6、im 数组名(下界 To 上界)As 其中:(1)数组名:数组的名称,命名要符合变量命名规则。(2)下界 To 上界:维说明,确定数组元素下标的取值范围及数组元素的个数(上界-下界+1)。(3)As:用来指明数组元素的类型,默认为变体类型。,8,7.2.1 一维静态数组,举例:定义一个用来存放10个整数的数组。Dim a(1 To 10)As Integer说明:(1)定义一个数组,数组名为a。(2)数组中有10个数组元素,数组元素分别表示为:a(1),a(2),a(10)。(3)数组元素的数据类型为整型,在内存中占2个字节。,9,一维静态数组,2、注意事项(1)维说明中下界和上界只能取直接常
7、量或直接常量表达式,符号常量和符号常量表达式,不能为变量或包含变量的表达式。(2)维说明中下界可以省略,默认为0。Dim x(6)As integer,定义数组x是有x(0)到x(6)连续的7个数组元素,Dim n As Integern=10Dim a(1 To n)As Single,Const n As Integer=6 Dim x(1 To n)As Double Dim y(1 To n+6),10,7.2.1 一维静态数组,(3)用“Option Base 1”可设定数组元素下界为1,以改变下界默认值为0,该语句必须放在窗体或模块的通用声明段中。(4)一维静态数组在同一过程中只能
8、声明一次。(5)声明数组后,各数组元素的初值与声明普通变量相同。(6)声明数组和声明变量一样,数组也有作用范围。,Dim a(1 To 6)As Integer.Dim a(8)As Single,11,7.2.1 一维静态数组,3、使用数组编程的一般步骤:(1)定义数组(2)为数组元素赋值(3)处理数组中的数据(4)输出结果,12,7.2.1 一维静态数组,例 统计某门课6个学生成绩中高于平均分的学生人数。编程步骤(1)定义一个数组用来存放6个学生的成绩(2)给数组赋值,将6个学生的成绩存入数组(3)求平均成绩,比较,统计出高于平均分的学生人数(4)将结果输出,Private Sub Com
9、mand1_Click()Dim cj(1 To 6)As Single,avg As Single,i As Integer,t As Integer For i=1 To 6 cj(i)=Val(InputBox(请输入第 Next i Print Print 平均分为:&avg Print 高于平均分的学生有&n&个End Sub,Private Sub Command1_Click()Dim cj(1 To 60)As Single,avg As Single,i As Integer,n As Integer For i=1 To 60 cj(i)=Val(InputBox(请输入第
10、 Next i Print Print 平均分为:&avg Print 高于平均分的学生有&n&个End Sub,13,7.2.1 一维静态数组,例:用数组求某门课10个学生中的最低成绩、最高成绩。编程步骤(1)定义一个数组用来存放10个学生的成绩(2)给数组赋值,将10个学生的成绩存入数组(3)求最高成绩、最低成绩(4)将结果输出,如果在编写程序时学生人数不确定,该如何解决?,Private Sub Command1_Click()Dim cj(1 To 10)As Single,avg As Single,i As Integer Dim max As Single,min As Sing
11、le For i=1 To 10 cj(i)=Val(InputBox(请输入第 Next i Print Print 最高成绩为&max Print 最低成绩为&minEnd Sub,Private Sub Command1_Click()Dim cj(1 To 10)As Single,avg As Single,i As Integer Dim max As Single,min As Single for i=1 to 10 cj(i)=Val(InputBox(请输入第 Next i Print Print 最高成绩为&max Print 最低成绩为&minEnd Sub,14,7.
12、2.2 一维动态数组,1、概念:动态数组是指在声明数组时不给出数组的大小,而是在程序执行到ReDim语句时才确定大小。2、定义 创建动态数组通常分为两步:第一步:在标准模块、窗体的通用程序段或过程中,声明一个省略维说明的数组,格式为:Dim 数组名()As第二步:根据应用需要,用ReDim声明大小,格式为ReDim Preserve 数组名(下界 To 上界)As,第一步可以省略,15,7.2.2 一维动态数组,3、注意事项(1)Dim和ReDim语句中数组元素的数据类型必须一致(2)声明动态数组的ReDim语句可以使用变量(3)同一个动态数组可以多次重复声明,重复声明时数组元素的值均被初始化
13、,若想保留原来的值,可以在ReDim语句中加关键字Preserve,Dim a()As Integer.ReDim a(1 To 8)As Integer,Dim a()As Integer.ReDim a(1 To 8)As Single,Dim a()As Integer,n As Integer n=9 ReDim a(n)As Integer,16,7.2.2 一维动态数组,Dim a()As Integer,n As Integern=6ReDim a(1 To n)As IntegerFor i=1 To 6 a(i)=8Next i,ReDim a(1 To 8)As Integ
14、er,ReDim Preserve a(1 To 8)As Integer,17,7.2.2 一维动态数组,例 求某门课程n个同学最高成绩和最低成绩。分析:(1)学生人数在编写程序时不能确定(2)用于存储学生成绩的数组元素的多少随学生人数的不同而异 编程步骤:(1)定义一个动态数组,用来存放n个学生的成绩(2)给数组赋值,将学生成绩存入数组(3)对数组中的数据进行计算、比较(4)输出结果,Private Sub Command2_Click()Dim cj()As Single,n As Integer,i As Integer Dim avg As Single,max As Single,
15、min As Single n=Val(InputBox(请输入学生人数,输入,0)ReDim cj(1 To n)As Single For i=1 To n cj(i)=Val(InputBox(请输入第 Next i Print Print 最高成绩为&max Print 最低成绩为&minEnd Sub,18,7.2.2 一维动态数组,例:某门课n个学生中,将高于平均分的成绩输出。解题步骤:(1)定义一个动态数组,用来存放n个学生的成绩(2)给数组赋值,将学生成绩存入数组,并实现求总成绩(3)求出平均分,然后比较,将高于平均分的学生成绩输出,Private Sub Command2_C
16、lick()Dim cj()As Single,n As Integer,i As Integer,s as single Dim avg As Single,max As Single,min As Single n=Val(InputBox(请输入学生人数,输入,0)ReDim cj(1 To n)As Single For i=1 To n cj(i)=Val(InputBox(请输入第 Next iEnd Sub,19,7.2.3 数组基本操作,1.为数组元素赋值 1)通过赋值语句 通过一层For循环給一维数组元素赋值产生-5到+5范围内的随机整数存放到数组中 例 将010101010
17、1这10个数存放到数组中,Dim i%Dim a(1 To 10)For i=1 To 10 a(i)=IIf(i Mod 2=0,1,0)Next i,20,2)通过InputBox函数 如果数组元素的值无法预先确定,需要在运行时通过键盘输入,可通过InputBox函数赋值 使用InputBox()函数每次只能提供一个数据,对大量的数据输入则是非常不方便的 3)使用Array函数 格式:数组名=Array()Array函数可对变体类型的一维动态数组赋值 数组元素的个数由中数据个数决定,数组下标下界可由LBound函数得到,下标上界可由UBound函数得到。,Dim score(1 To 30
18、)For i=1 To 30 score(i)=InputBox(请输入第&i&个同学成绩)Next i,7.2.3 数组基本操作,Score=Array(20,30,40,50,60),21,4)使用文本框和split函数 格式:=Split(,分隔符)这种方法是将文本框中输入的内容用Split函数分离成一个个数据,存放到数组中。是实际应用中常用到的一种处理大量数据的方法 注意:用Split函数赋值的数组的最小下标均从0开始,下标上界可用ubound函数得到 2.数组输出 可用一层for循环实现,a=Split(Text1,)For i=LBound(a)To UBound(a)Print
19、a(i)Next i,7.2.3 数组基本操作,a=Split(Text1,),22,课堂练习:1.以下有关数组定义的语句序列中,错误的是 A)dim arr1(3)arr1(1)=100 arr1(2)=Hello arr1(3)=123.45 B)Dim arr2()As Integer Dim size As Integer Private Sub Command2_Click()size=InputBox(输入:)ReDim arr2(size)End Sub,23,C)Option Base 1 Private Sub Command3_Click()Dim arr3(3)As In
20、teger End Sub D)Dim n As Integer Private Sub Command4_Click()Dim arr4(n)As Integer End Sub,24,2、如果在程序中没有特别声明,即程序中没有使用Option Base 1 语句,缺省下界和关键字TO时,则表示下标的取值。,A、从0开始,等价于0 to 上界 B、从2开始C、从1开始,等价于1 to 上界D、等价于 n to 上界,3、使用下列语句定义数组,定义正确的是。Dim n as IntegerConst m as Integer=5Dim A(m)as IntegerDim B(1 to 6.3)
21、as IntegerDim C(1 to 2+3)as LongDim D(0 to n)as single,A、一维数组ABC B、一维数组ABCD C、一维数组ABD,25,1.文本框输入一串字符,统计各字母出现的次数,并输出统计结果分析:可声明一个具有26个元素的一位数组a存放各字符出现的个数。下标范围为65 to 90,既让a(65)存放字符a个数,a(66)存放字符b个数,依次类推。可发现这样一个规律,存放字母个数的数组元素的下标等于这个字母的Ascii值。,7.2.4 一维数组的应用,Private Sub Command1_Click()Dim a%(65 To 90),c As
22、 String*1,i%,j%For i=1 To Len(Text1)c=UCase(Mid(Text1,i,1)If c=A And c 0 Then Picture1.Print Chr(i);=;a(i);Next iEnd Sub,26,2.输入多名学生的一门课程的考试成绩,统计各分段人数。分析:学生人数无法预先知道,因此存储学生的成绩应采用动态数组,输入数据时可采用文本框输入。存储各段人数可用一个静态数组比如counter(0 to 10),counter(0)存储0到9分人数,counter(1)存储10到19分人数counter(10)存储100分人数。可发现这样一个规律,存储
23、某一分数段的人数的counter数组元素的下标=分数10,7.2.4 一维数组的应用,Private Sub Command1_Click()Dim i%,k%,a()As String,counter(0 To 10)As Integera=Split(Text1,)For i=0 To UBound(a)If a(i)=0 Then k=a(i)10 counter(k)=counter(k)+1End IfNext iPrint 统计结果如下:For i=0 To 10If counter(i)0 Then Print 第&i*10&-&i*10+9&段共有&counter(i)End
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 自定义 类型

链接地址:https://www.31ppt.com/p-5986260.html