《VisualBasic程序设计与实训教程》第5章数组

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/1/10清华大学出版社1第5章数组5.1数组的概念5.2一维数组5.3二维数组5.4可调数组5.5控件数组2020/1/10清华大学出版社2【目的要求】1、掌握数组的概念和一维数组、二维数组定义方法;2、熟练使用数组进行程序设计;3、掌握控件数组的建立方法和编程技巧;3、了解动态数组的创建方法及简单应用方法;【重点】1.一维数组的应用2.控件数组的定义与应用【难点】控件数组的应用2020/1/10清华大学出版社35.1数组的概念在VB中,把一组具有同一名字、不同下标的下标变量称为数组。在VisualBasic中,使用数组变量时需注意以下几点:(1)数组名的命名与简单变量的命名规则相同。(2)下标必须用括号括起来,不能把数组元素S(1)写成S1,后者是简单变量。(3)下标可以是常数、变量或表达式。(4)下标必须是整数。(5)下标的最大值和最小值分别称为数组的上界和下界。数组元素在上、下界内是连续的。2020/1/10清华大学出版社4声明一个数组变量时,必须给定一个数组使用的有效范围:(1)局部数组:在模块中用Private语句来声明数组。(2)模块数组:在模块中用Private语句来声明数组。(3)全局数组:在模块中用Public语句来声明数组。根据在程序运行过程中是否可以改变数组大小,数组又可以分成两类。一类是固定数组,该数组的大小始终保持不变;另一类是动态数组,该数组的大小在程序运行过程中可以改变。一个数组中的元素类型可以是各种基本类型和用户自定义类型。注意:当数组类型指定为Variant类型时,各数组元素的类型可以不一样。2020/1/10清华大学出版社55.2一维数组5.2.1一维数组的定义在声明数组时,VisualBasic提供了两种格式:格式1:Dim数组名(下标上界)[As类型]‘隐式声明格式2:Dim数组名([下界To]上界)[As类型]说明(1)在同一过程中,数组名不能与变量名相同;(2)数组的下界必须小于上界;(3)当用Dim语句定义数组时,该语句把数值数组中的全部数组元素全部初始化为0,字符串数组的全部数组元素全部初始化为空串;2020/1/10清华大学出版社6例:DimSum(10)AsLong‘下标从0~10,共11个元素DimA(1to9)AsInteger‘下标从1~9,共9个元素DimA%(5),B!(3To5),C#(12)注意:在VB中,下标默认从“0”开始;OptionBase[0|1]语句:用来说明数组的下标下界从指定的下标开始,指定的下标下界只能是“1”或“0”。一个模块中只能出现一次该语句,且它必须位于数组声明或初始化之前。2020/1/10清华大学出版社75.2.2一维数组的引用1、应用格式:数组名(下标)(1)下标可以是常数、变量或表达式。(2)下标必须是整数。且必须在指定的范围之内。数组元素的赋值等同普通变量。用Array函数对一维数组进行初始化格式:数组变量名=Array(数组元素值表)注意:只能对一维Variant数组(且不指定上下界)赋初值。2、一维数组的基本操作用单循环对一维数组进行操作;Form=0to10A(m)=inputbox(”请输入数据”)Next用ForEach语句对一维数组进行操作;ForEach成员in数组名循环体[ExitFor]…Next[成员]2020/1/10清华大学出版社8直接将一个数组的值赋值给另一个数组例如:DimA(3)AsInteger,B()AsintegerA(0)=2:A(1)=4:A(2)=-6:A(3)=8:B=A注意:(1)赋值号两边的数据类型必须一致。(2)赋值号左边的是一个动态数组。如果赋值号左边的是一个大小固定的数组,则数组赋值时将出错。直接将一个数组的值赋值给另一个数组中的一个元素例如:DimA(3)AsInteger,B(2)A(0)=2:A(1)=4:A(2)=-6:A(3)=8:b(1)=a2020/1/10清华大学出版社95.2.3一维数组应用Fori=0To3Printb(1)(i)Next注意:(1)被赋值的数组只能定义为变体类型。(2)被赋值后,数组中的一个元素是一个数组,引用时要特别注意。【例5.1】从键盘上任意输入10个整数,使用冒泡排序按由小到大的顺序显示出来。2020/1/10清华大学出版社10流程图及界面设计如下图:2020/1/10清华大学出版社11窗体的“(通用)(声明)”中的代码为:OptionBase1Dima(10)AsInteger“输入”按钮的代码为:PrivateSubcmdInput_Click()a(1)=InputBox(请输入第1个数据:,排序数据)Text1.text=a(1)Fori=2To10a(i)=InputBox(请输入第&Str(i)&个数据:,排序数据)Text1.Text=Text1.Text&,&a(i)NextEndSub2020/1/10清华大学出版社12“排序”按钮的代码为:PrivateSubcmdSort_Click()Fori=1To9Forj=i+1To10Ifa(i)a(j)Thent=a(i):a(i)=a(j):a(j)=tEndIfNextNextp=Str(a(1))Fori=2To10p=p&,&a(i)NextText2.Text=LTrim(p)EndSub2020/1/10清华大学出版社135.3二维数组5.2.1二维数组的定义如果一个数组的元素有二个下标,则称这个数组为二维数组。下面我们以Dim为例进行说明。对二维数组,VisualBasic也提供了两种定义的格式:格式1:Dim数组名(下标上界1,下标上界2)[As类型]格式2:Dim数组名([下界1To]上界1,[下界2To]上界2)[As类型]例如:DimS(2,3)AsIntegerDimB(2To3,1To3)AsString5.2.2二维数组的引用二维数组定义之后,可以同一维数组一样进行引用,但要注意,因二维数组的元素有2个下标,故在用循环对数组进行处理时要用双重循环。2020/1/10清华大学出版社145.4可调数组(动态数组)1.创建动态数组创建动态数组需要两步:声明一个没有下标的数组:Dima()AsInteger在过程中用ReDim语句为数组分配实际的元素个数,如:ReDima(12)或:x=12ReDima(x)ReDim语句的格式为:ReDim[preserve]数组名(维数定义)[As类型]【例5.3】将一个二维数组行和列元素进行互换,并存到另一个二维数组中。2020/1/10清华大学出版社152.Lbound和Ubound函数Lbound函数:用于返回数组的下界值Ubound函数:用于返回数组的上界值例:PrivateSubForm_Click()Dima()a=Array(2,4,6,8,10)Fori=LBound(a)ToUBound(a)Printa(i)NextEndSub3.数组的刷新根据使用的需要,可以重新初始化大小固定的数组的元素,以及释放动态数组的存储空间。Erase语句能实现此功能,其格式为:Erasearraylist2020/1/10清华大学出版社165.5控件数组5.5.1控件数组的概念控件数组由一组相同类型的控件组成,这些控件共用一个相同的控件名字。数组中的每个控件都有惟一的索引值(Index),即下标。引用:Name(Index)5.5.2控件数组的建立在设计时有以下三种方法可以创建控件数组:将相同名字赋予多个控件。系统会出现提示框问是否创建控件数组。复制现有的控件并将其粘贴到窗体上。系统会出现提示框问是否创建控件数组。将控件的Index属性的值设置为非Null数值。然后利用前两种方法中和任何一种添加控件数组成员,这时将不会出现对话框询问是否创建控件数组。2020/1/10清华大学出版社175.5.3控件数组的应用举例【例5.4】使用控件数组创建一个简单的电话拨号程序界面。VB可以在程序运行时创建新控件,但新控件必须是已有控件的元素。对于上例,在设计时首先创建一个Index属性为0的控件数组Command1,然后在运行时,用Load语句添加控件数组中的其他控件。Unload语句可以删除用Load语句创建的控件数组元素。Load、Unload语句的语法格式为:Load对象(Index)Unload对象(Index)

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功