vb数组和自定义类型.ppt

上传人:za****8 文档编号:14486707 上传时间:2020-07-21 格式:PPT 页数:48 大小:1.27MB
返回 下载 相关 举报
vb数组和自定义类型.ppt_第1页
第1页 / 共48页
vb数组和自定义类型.ppt_第2页
第2页 / 共48页
vb数组和自定义类型.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
第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(输入学生成绩) sum = sum + mark Next i aver = sum / 100,无法统计高于平均分的人数 重复输入成绩统计,可能出错 定义100个变量,使用100句输入语句,5,数组和数组元素的概念:数组不是一种新的数据类型,而是一组相同类型的变量的集合。集合中的每一个数据称为一个数组元素。 数组用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个数组元素用下标变量来区分; 下标变量代表数组元素在数组中的位置。 例如,定义一个班30个学生的姓名: stuName(1)表示第一个学生的姓名, stuName(2)表示第二个学生的姓名,,5.1 数组,6,5.1.2 数组定义 1.静态一维数组 Dim 数组名(下标上界) 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.1.2 数组定义,8,4定义数组时下标必须是常量。使用数组时,下标可以是常数、变量或表达式。 Dim a(10) as integer dim a(m) as integer N=3 a(n)=1 a(7)=a(n+1)+n 5.下标必须用( )括起来。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 I For i = 1 To 30 Print a(i) If i Mod 5 = 0 Then Print Next 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 数组定义多维数组,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 long 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 表示第一维,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,可使用下面的方法赋值。 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的整型数组,实现功能: 从键盘输入数组元素; 按下标逆序输出数组元素; 将数组元素按颠倒的顺序重新存放并输出。(要求借助一个简单变量不得另外开辟数组),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,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 j Next i,5.1 数组,例5.11 冒泡法排序,29,n个数的序列,用选择法按递增次序排序的步骤: 1) 从n个数中找出最小数的下标,最小数与第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) = t Next i,5.1 数组,例5.10 选择法排序,31,例5.12 有序数组中插入数据,使之仍然有序。,1)首先查找待插入数据在数组中的位置k; 2)然后从最后一个元素开始往前直到下标为k的元素依次往后移动一个位置; 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-ListCount-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。,5.2 列表框和组合框,列表框 ListBox,36,List1.ListIndex = 2 List1.ListCount = 6 List1.Sorted = False List1.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,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 Number As String*12 Course As String*10 Score As Single End 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 =90 用With语句简化成员引用: With 结构变量对象名 语句块 End With,With S1 .Name = 张华 .Course = “VB .Score=90 End With,5.3 自定义类型及数组,46,5.4 控件数组,控件数组是由一组具有相同类型、相同名称的控件组成。在控件数组中,每一个控件元素的Name属性均相同,其值即为控件数组的数组名;每个控件数组元素都有一个唯一的索引号与之对应,其索引号由Index属性确定。,修改控件的Name属性,将其设为同一个名称。 复制-粘贴控件。,47,Eg:使用控件数组完成两个数的加减乘除四则运算。,5.4 控件数组,End of the chapter,蚌埠医学院计算机教研室,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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