《数组与自定义类型》PPT课件.ppt_第1页
《数组与自定义类型》PPT课件.ppt_第2页
《数组与自定义类型》PPT课件.ppt_第3页
《数组与自定义类型》PPT课件.ppt_第4页
《数组与自定义类型》PPT课件.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 In

2、teger For i = 1 To 6 x = Val(InputBox(请输入第 Next i avg = sum / 6 For i = 1 To 6 x = Val(InputBox(请输入第 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 Then n = n + 1 If v avg Then n = n + 1 If w avg Then n = n + 1 Print 平均

3、成绩为:; avg Print 高于平均成绩的有 =; a(i); ; Next i End Sub,26,2.输入多名学生的一门课程的考试成绩,统计各分段人数。 分析:学生人数无法预先知道,因此存储学生的成绩应采用动态数组,输入数据时可采用文本框输入。存储各段人数可用一个静态数组比如counter(0 to 10),counter(0)存储0到9分人数,counter(1)存储10到19分人数counter(10)存储100分人数。可发现这样一个规律,存储某一分数段的人数的counter数组元素的下标=分数10,7.2.4 一维数组的应用,Private Sub Command1_Click

4、() Dim i%, k%, a() As String, counter(0 To 10) As Integer a = Split(Text1, ,) For i = 0 To UBound(a) If a(i) = 0 Then k = a(i) 10 counter(k) = counter(k) + 1 End If Next i Print 统计结果如下: For i = 0 To 10 If counter(i) 0 Then Print 第 Next j Print Next i,7.3 二维数组,37,4 二维数组的应用 例1 某班有30个同学参加4门课程的考试,要求挑选出其

5、中至少有一门课程在90分以上的学生,并输出这些同学的4门的课程成绩。 分析:用变量p表示某同学是否有90分以上,为其赋初值为 false,让每个同学每门成绩与90分比较,若有超过90分,则将p赋值为true,并跳出内层for循环。根据p的值判断某同学成绩是否有超过90分的,若p为true说明有超过90分的,将该同学成绩输出。,7.3 二维数组,Private Sub Command1_Click() Dim i%, j%, p As Boolean Dim score(1 To 30, 1 To 4) As Single For i = 1 To 30 For j = 1 To 4 score

6、(i, j) = InputBox(请输入第 Next j Print End If Next i End Sub,38,例2.打印杨辉三角型。 分析:该三角形是有规 律,第一列和最后一列 均为1,其余为值为前 一行前一列元素加上前一行同列元素和,即a(i,j)=a(i-1,j-1)+a(i-1,j)(假设用a存放该三角形的值),7.3 二维数组,Private Sub Form_Click() Dim n%, i%, j% n = InputBox(请输入杨辉三角形的行数 n:) ReDim a(n, n) For i = 1 To n a(i, 1) = 1: a(i, i) = 1 Ne

7、xt i For i = 3 To n For j = 2 To i - 1 a(i, j) = a(i - 1, j) + a(i - 1, j - 1) Next j Next i For i = 1 To n For j = 1 To i Print Tab(6 * j); a(i, j); Next j Next i End Sub,39,例3. 有一个n行n列的二维数组,找出最大数组元素和它所在的行号、列号。 分析:由于矩阵行数和列数不确定,则需要用动态数组。 可引入一个变量比如max存放最大数,求最大数可用两两比 较的方法,要实现所有元素和max的比较可通过两层循环实现,7.3 二

8、维数组,Private Sub command1_Click() Dim a() As Integer, max%, r%, c%, n%, i%, j% n = InputBox(请输入行列数) ReDim a(1 To n, 1 To n) For i = 1 To n For j = 1 To n a(i, j) = InputBox(请输入第 max End Sub,40,例4 有一个5行5列的二维数组,元素随机产生,请将其转置后输出,并求出两个对角线元素和 分析:1.元素产生可用int和rnd结合产生。 2.设转置前数组为a,转置后数组为b,则两者关系为 b(i,j)=a(j,i)。

9、 3.对角线元素存在这样关系:i=j或i+j=6。,7.3 二维数组,Option Base 1 Dim a%(5, 5), b%(5, 5), s%, i%, j% Private Sub Command1_Click() For i = 1 To 5 For j = 1 To 5 a(i, j) = Int(Rnd * 10) Picture1.Print Tab(3 * j); a(i, j); Next j Next i End Sub Private Sub Command2_Click() For i = 1 To 5 For j = 1 To 5 b(i, j) = a(j, i

10、) Picture2.Print tab(3*j);b(i, j); Next j Next i End Sub Private Sub Command3_Click() For i = 1 To 5 s = s + a(i, i) + a(i, 6 - i) Next i Label1.Caption = 对角线元素和为 & s - a(3, 3) End Sub,41,7.4 控件数组,1.控件数组的概念 是由一组同类控件组成,它们共有一个控件名,具有相同的属性。系统给每个控件数组元素赋予唯一的一个索引号(类似于数组元素的下标),第一个控件数组元素索引号为0,第二个控件数组元素的索引号为1

11、,依次类推。 2.控件数组建立 建立步骤如下: (1)在窗体上添加第一个控件,设置好名称和属性; (2)选中该控件,进行复制和粘贴操作,系统会出现一个提示信息: “已经有一个控件为,创建一个控件数组吗? 如果单击“是”按钮,就建立了一个控件数组。进行粘贴操作若干次,就可建立所需个数的控件数组元素。,42,3.举例 例1 设计如图所示的界面,创建一个选择按钮控件数组,包含5个控件,运行时按下那一个按钮,标签显示相应颜色。设控件数组名为option1 分析:5个按钮作为一个控件数组,因此能够共享同一个事件。在选项按钮的click事件中根据index的值判断用户选了那一个按钮以此决定label1颜色

12、。,7.4 控件数组,43,例2设计窗体,输入两个数,根据不同的运算符计算结果。 分析:无论多少种运算,在同一时刻只能进行一种运算,因此,选择不同运算通过单选按钮数组将是非常的方便的。这里根据index的确定用户选择的是哪个按钮。,7.4 控件数组,44,7.5 自定义数据类型,一组不同类型变量的集合。相当于C语言中的结构类型;Pascal中的记录类型。 1.自定义类型的定义 格式: Type 自定义类型名 元素名(下标) As 类型名 元素名(下标) As 类型名 End Type,Private Type student no As Integer names As String * 10

13、 sex As String * 1 age As Integer score(1 To 4) As Single End Type,45,注意: (1)自定义类型一般在标准模块(.BAS)中定义,默认是Public;在窗体必须是Private。 (2)自定义类型中的元素类型可以是字符串,但最好是定长字符串。 (3)不要将自定义类型名和该类型的变量名混淆,前者表示了如同Integer、Single等的类型名,后者VB根据变量的类型分配所需的内存空间,存贮数据。 (4)自定义类型一般和数组结合使用,简化程序的编写。,46,2自定义类型变量的声明和使用 (1) 声明格式: Dim 变量名 As 自

14、定义类型名 (2) 引用 形式:变量名.元素名,Stu.Names Stu.score(4),Dim Stu As Student,47,建立一个自定义类型数组存放一个班同学的信息,通过输入框输入每个同学的记录。,Dim Stu(30) As Student Private Sub Command1_Click( ) Dim i% For i = 1 To 30 Stu(i).no = i Stu(i).names = InputBox(姓名:) Stu(i).sex = InputBox(性别:) Stu(i).age = Val(InputBox(年龄:) Stu(i).score(1) = Val(InputBox(请输入数学成绩) Stu(i).score(2) = Val(InputBox(请输入英语成绩) Stu(i).score(3) = Val(InputBox(请输入计算机成绩) Stu(i).score(4) = Val(InputBox(请输入物理成绩) Next i End Sub For i = 1 To 30 Print Stu(i).no, Stu(i).names, Stu(i).sex, Stu(i).age, Stu(i).score(1), Stu(i).score(2), S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论