vb数组和自定义类型.ppt

上传人:小飞机 文档编号:6522666 上传时间:2023-11-08 格式:PPT 页数:48 大小:1.27MB
返回 下载 相关 举报
vb数组和自定义类型.ppt_第1页
第1页 / 共48页
vb数组和自定义类型.ppt_第2页
第2页 / 共48页
vb数组和自定义类型.ppt_第3页
第3页 / 共48页
vb数组和自定义类型.ppt_第4页
第4页 / 共48页
vb数组和自定义类型.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《vb数组和自定义类型.ppt》由会员分享,可在线阅读,更多相关《vb数组和自定义类型.ppt(48页珍藏版)》请在三一办公上搜索。

1、第5章 数组和自定义类型,Visual Basic 6.0程序设计高 等 医 药 院 校“十 二 五”规 划 教 材,2,基本思想,蚌埠医学院计算机教研室,数组是VB提供的一种复合数据类型,可以有效存储和处理批量数据,同时也能缩短和简化程序。实际应用中,有些问题必须通过数组来解决。数组一般结合循环使用。,3,5.1 数组,主要内容,蚌埠医学院计算机教研室,5.2 列表框和组合框控件,5.3 自定义类型及其数组,5.4 控件数组,4,5.1 数组,5.1.1 基本概念引例:求100个学生的平均成绩,并统计高于平均分的人数。sum=0 For i=1 To 100 mark=InputBox(输入

2、学生成绩)sum=sum+mark Next i aver=sum/100,无法统计高于平均分的人数重复输入成绩统计,可能出错定义100个变量,使用100句输入语句,5,数组和数组元素的概念:数组不是一种新的数据类型,而是一组相同类型的变量的集合。集合中的每一个数据称为一个数组元素。数组用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个数组元素用下标变量来区分;下标变量代表数组元素在数组中的位置。例如,定义一个班30个学生的姓名:stuName(1)表示第一个学生的姓名,stuName(2)表示第二个学生的姓名,,5.1 数组,6,5.1.2 数组定义1.静态一维数组 Dim 数组名(下

3、标上界)As 类型下界默认为0,数组的大小为:下标上界+1。Dim a(10)As Integer,数组必须先声明后使用,Dim 数组名(下界 to 上界)As 数据类型 Dim a(1 to 10)As Integer,5.1 数组,7,1数组名的命名规则。2数组的元素个数:上界-下界+1。3缺省为0,可在模块的通用部分使用Option Base语句设定下界。例如:Option Base 1 Dim a(10)as integer 如果定义数组时使用 to 显示指明下标下界,则 option base不起作用,如:Option Base 1 Dim a(-10 to 10),5.1 数组,5

4、.1.2 数组定义,8,4定义数组时下标必须是常量。使用数组时,下标可以是常数、变量或表达式。Dim a(10)as integer dim a(m)as integer N=3 a(n)=1 a(7)=a(n+1)+n5.下标必须用()括起来。Arr(10)与 arr10。6.同一过程中,数组和简单变量不能同名。Dim a(10)as integer,a as integer,5.1.2 数组定义,5.1 数组,9,产生30个5080之间的随机数存入数组a中,并输出。,Dim a(1 To 30)As Integer For i=1 To 30 a(i)=Int(Rnd*50+30)Next

5、 IFor i=1 To 30Print a(i)If i Mod 5=0 Then PrintNext i,5.1.2 数组定义,5.1 数组,10,例5.1 计算并输出斐波那契数列的前20项。斐波那契数列的各项分别是:1,1,2,3,5,8,若用数组a存放数列,则有a(1)=1,a(2)=1,从第三项开始,即当i3时,a(i)=a(i-2)+a(i-1)。,注意:其下标值应在声明数组时所指定的范围内,否则运行时将出现“下标越界”错误。,5.1.2 数组定义,5.1 数组,11,Dim 数组名(下标1,下标2)As 类型 例 Dim x(2,4)As Long,5.1 数组,5.1.2 数组

6、定义多维数组,12,二维数组的声明基本上与一维数组相似,比如40个学生的5门科目的成绩采用数组记录,应该这样声明该数组:Dim score(1 To 40,1 To 5)As Integer访问某个元素需要指定两个索引下标:Print score(10,2),5.1 数组,5.1.2 数组定义多维数组,13,实际编程时有时数组的大小无法确定,希望能够在运行时改变数组的大小动态数组。建立动态数组分两步:用Dim 语句声明数组,但不能指定数组大小。Dim 数组名()As 数据类型用ReDim语句动态地分配元素个数。ReDim Preserve 数组名(下标,下标2)例如:dim a()as lon

7、g redim a(10),5.1 数组,5.1.2 数组定义动态数组,14,Dim 是说明语句,可出现在程序的任何地方,而ReDim是执行语句,只能在过程中。在过程中可多次使用ReDim语句来改变数组的大小,但不能改变数组的维数和类型。在ReDim后加Preserve参数可保留数组中的数据,若使用Preserve参数后,只能改变最后一维的大小。,5.1 数组,5.1.2 数组定义动态数组,15,例5.3 编程,显示有n个数的非波那契数序列。,5.1 数组,5.1.2 数组定义动态数组,16,确定数组某一维的上界和下界值。UBound(,)LBound(,):必需的。:可选的;1 表示第一维,

8、2 表示第二维,如此等等。如果省略默认是1。Dim score(1 To 40,1 To 5)As Integer UBound(score,1)LBound(score,2),5.1 数组,获得数组上下界的两个函数,17,数组的初始化Array函数可方便地对数组整体赋值:,数组变量名=Array(常量列表),使用Array函数只能给一维数组赋值。使用Array函数给数组赋初值时,数组变量必须是变体变量。因此需显式定义数组为Variant变量,或在定义时不指明数据类型或不定义而直接使用。,5.1 数组,5.1.3 数组的基本操作,例如,要将1,2,3,4,5,6,7 这些值赋给数组a,可使用下

9、面的方法赋值。Dim a()A=array(1,2,3,4,5,6,7),18,例5.4 使用Array函数为数组赋初值,求出数组元素的平均值,输出大于平均值的数组元素。,5.1 数组,5.1.3 数组的基本操作,19,2.数组的输入与输出 通过TextBox控件或InputBox函数输入使用Print函数在窗体或者PictureBox中输出,例5.5 从键盘输入一个4行4列的矩阵并输出。,5.1 数组,5.1.3 数组的基本操作,例5.6 用随机函数模拟掷骰子实验,统计掷50次骰子各点出现的次数。,20,例5.8 定义长度为10的整型数组,实现功能:从键盘输入数组元素;按下标逆序输出数组元素

10、;将数组元素按颠倒的顺序重新存放并输出。(要求借助一个简单变量不得另外开辟数组),5.1 数组,5.1.4 数组应用举例,21,5.1 数组,22,基本思想是:从第一个元素开始,对数组中两两相邻的元素比较,将值较小的元素放在前面,值较大的元素放在后面,一轮比较完毕,一个最大的数沉底成为数组中的最后一个元素,一些较小的数如同气泡一样上浮一个位置。n个数,经过n-1轮比较后完成排序。,5.1 数组,例5.11 冒泡法排序,23,5,4,3,2,1,第一趟排序结果,5.1 数组,24,5,4,3,2,1,第二趟排序结果,5.1 数组,25,5,4,3,2,1,第三趟排序结果,5.1 数组,26,5,

11、4,3,2,1,第四趟排序结果,冒 泡 排 序,5.1 数组,27,初始序列 3 6 4 5 1 2,第1趟,3,6,1,4,5,2,3,1,6,4,5,1,2,第2趟,3,4,2,2,5,6,第3趟,3,1,2,第4趟,4,5,6,1,3,4,5,6,第5趟,5.1 数组,28,For i=0 To n-1 For j=0 To n-1-i If a(j)a(j+1)Then t=a(j)a(j)=a(j+1)a(j+1)=t End if Next jNext i,5.1 数组,例5.11 冒泡法排序,29,n个数的序列,用选择法按递增次序排序的步骤:1)从n个数中找出最小数的下标,最小数

12、与第1个数交换位置;通过这一轮排序,第1个数已确定好。2)除已排序的数外,其余数再按步骤1)的方法选出最小的数,与未排序数中的第1个数交换位置。3)重复步骤 2),最后构成递增序列。,例5.10 选择法排序,5.1 数组,30,For i=0 To n 1 min=i For j=i+1 To n If a(min)a(j)Then min=j Next j t=a(i)a(i)=a(min)a(min)=tNext i,5.1 数组,例5.10 选择法排序,31,例5.12 有序数组中插入数据,使之仍然有序。,1)首先查找待插入数据在数组中的位置k;2)然后从最后一个元素开始往前直到下标为k

13、的元素依次往后移动一个位置;3)第k个元素的位置腾出,将数据插入。,5.1 数组,32,例5.13 删除数据,删除操作首先也是要找到欲删除的元素的位置k;然后从k+1到n个位置开始向前移动;最后将数组元素减1。,5.1 数组,33,List属性:列表框的列表内容,输入时按Ctrl+Enter;List属性是一个字符串数组,列表框中的每个项目对应该数组的一个元素。第一个项目的索引值为0,以此类推。Print List1.List(0),列表框 ListBox,5.2 列表框和组合框,显示多个选项供用户选择,不能直接修改内容。,34,ListCount属性:列表框的项目总数。项目下标0-ListC

14、ount-1。ListIndex属性:仅在程序运行时可用,当前选定项目的索引位置。如果没有项目被选中,ListIndex取值为-1。Text属性:设置或返回列表框当前选项的值。由List,ListIndex可以决定Text的值,5.2 列表框和组合框,列表框 ListBox,35,Selected属性:程序运行时选定列表框中的选项,如List1.Selected(2)=True。MultiSelect属性:当取默认值0时,只能选中列表框中的一个项目,取值1时可以选定多项,取值为2时可以选定某个范围的项。Sorted属性:程序运行期间列表框中的项目是否进行排序。Style属性:列表框样式。0,1

15、。,5.2 列表框和组合框,列表框 ListBox,36,List1.ListIndex=2List1.ListCount=6List1.Sorted=FalseList1.Text=C/C+程序设计,List1.List(List1.ListIndex)等于List1.Text,5.2 列表框和组合框,37,AddItem方法 对象.AddItem 项目字符串,索引值 List1.AddItem“张三”,1 RemoveItem方法 对象.RemoveItem 索引值 List1.RemoveItem 0 Clear方法 List1.Clear,5.2 列表框和组合框,列表框 ListBox

16、,38,例5.14 设计如图所示的选课窗口。,5.2 列表框和组合框,39,例5.15 设计如图所示的程序。,5.2 列表框和组合框,40,例5.16 设计如图所示的判断素数的程序。,5.2 列表框和组合框,41,组合框 ComboBox,5.2 列表框和组合框,组合框 组合了文本框和列表框的特性。,42,例5.17 设计如图所示的登陆界面。,本章目录,5.2 列表框和组合框,43,5.3 自定义类型及数组,数组存放性质相同的数据集合。若不同类型信息作为一个整体来描述,例如姓名、性别、出生年月等,通过自定义类型来实现。,Type StudentType Name As String*5 Num

17、ber As String*12 Course As String*10 Score As SingleEnd Type,Type 自定义类型名 元素名1 As 数据类型 元素名n As 数据类型End Type,44,定义了自定义类型,就可在变量的声明时使用。Dim 变量名 As 自定义类型名例如,如下语句:Dim S1 As StudentType,S2 As StudentType 声明S1、S2为两个同种类型的变量,5.3 自定义类型及数组,45,引用自定义类型变量中的某个成员,形式如下:自定义类型变量名.成员名例如,S1.Name=张华“S1.Course=“VB S1.Score=

18、90 用With语句简化成员引用:With 结构变量对象名 语句块 End With,With S1.Name=张华.Course=“VB.Score=90End With,5.3 自定义类型及数组,46,5.4 控件数组,控件数组是由一组具有相同类型、相同名称的控件组成。在控件数组中,每一个控件元素的Name属性均相同,其值即为控件数组的数组名;每个控件数组元素都有一个唯一的索引号与之对应,其索引号由Index属性确定。,修改控件的Name属性,将其设为同一个名称。复制-粘贴控件。,47,Eg:使用控件数组完成两个数的加减乘除四则运算。,5.4 控件数组,End of the chapter,蚌埠医学院计算机教研室,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号