VB第6章 数组.docx
- 文档编号:29124802
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:12
- 大小:53.48KB
VB第6章 数组.docx
《VB第6章 数组.docx》由会员分享,可在线阅读,更多相关《VB第6章 数组.docx(12页珍藏版)》请在冰豆网上搜索。
VB第6章数组
授课时间
4月21日至5月16日
课时数
7+7
授课方式
理论课☑讨论课□习题课□实验课□上机课☑技能课□其他□
授课单元
第六章数组
目的
与
要求
1)掌握数组的概念
2)掌握静态数组和动态数组
3)掌握控件数组
4)掌握组合框和列表框
重点
与
难点
1)掌握数组的基本操作
2)掌握控件数组的使用
3)学会使用列表框及组合框
主
要
内
容
6.1数组的概念
*6.2静态数组
*6.3动态数组
*6.4控件数组
*6.5列表框及组合框
教学方法手段(教具)
理论课采用板书与多媒体相结合。
实践课采用上机实践操作。
参考资料
《VisualBasic程序设计教程》人民邮电出版社
《VisualBasic程序设计实验教程》人民邮电出版社
教 案
讲 稿
第六章数组
[旧课复习]:
复习内容:
1.循环语句
2.多重循环使用
复习目的:
学生掌握两种基本循环结构语句的使用以便在数组中能正确使用循环语句
复习时长:
大约5分钟
[新课导入]:
导入方式:
引入日常生活中的实例让学生理解数组的功能
导入目的:
增强学生的理解能力
导入时长:
大约10分钟
[新课讲授]:
重点:
静态数组、动态数组的基本操作及列表框和组合框的使用
难点:
控件数组
方法:
运用多媒体辅助教学,采用讲授法和启发式教学法
6.1数组的概念
6.1.1数组概念
数组并不是一种数据类型,而是一组相同类型数据的集合。
用一个统一的名字(数组名)代表逻辑上相关的一批数据,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。
数组中的各个变量称为数组元素,数组中的每个元素用一个唯一的下标(索引)来标识。
如m(5),表示名为m的数组中下标为5的那个元素。
数组元素的个数称为数组的长度(大小)。
数组的各个元素在内存中是连续存放的,如图6-1所示。
数组名表示这个连续数据区域的起始位置,下标表示对应元素在内存区域中的相对位置。
6.1.2数组的分类
VisualBasic中的数组,按不同的方式可分为以下几类:
按数组的大小(元素个数)是否可以改变分为:
静态(定长)数组、动态(可变长)数组。
按元素的数据类型可分为:
数值型数组、字符串数组、日期型数组、变体数组等。
按数组的维数可分为:
一维数组、二维数组、多维数组。
对象数组:
菜单对象数组、控件数组。
6.2静态数组
6.2.1静态数组的声明
1.一维数组
静态一维数组的声明格式如下:
Dim数组名(下标)[As<类型>]
说明:
(1)数组的命名与简单变量的命名规则相同。
(2)下标的格式为:
[<下界>to<上界>]
<下界>和<上界>不能使用变量,必须是常量,常量可以是直接常量、符号常量,一般是整型常量。
若省略下界,则默认为0。
(4)数组的元素个数=上界−下界+1。
(5)如果省略As子句,则数组的类型为变体类型。
2.多维数组
静态多维数组的声明格式如下:
Dim 数组名(下标1[,下标2…])[As 类型]
说明:
(1)下标个数决定数组的维数,VB允许声明的维数最多为60维。
(2)每一维的大小=上界-下界+1;数组的大小=各维大小的乘积。
例:
Dim C(-1To5,4)As Long
声明的数组名是C,类型为长整型、二维数组,第一维下标范围为-1~5,第二维下标的范围是0~4,占据7×5个长整型变量的空间。
(3)在数组声明中的下标关系到每一维的大小,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。
(4)在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量或表达式。
6.2.2数组的基本操作
1.数组的输入
数组元素可以通过赋值语句输入,元素过多且输入较有规律时,可借助循环语句输入。
例如:
Dim A(1To10)AsInteger
Fori=1To10
A(i)=1
Nexti
2.数组的输出
数组的输出方式有很多种,可以输出在标签、文本框、列表框中,也可以使用Print方法输出在窗体或图片框中。
【例6-1】随机产生10个两位整数,找出10个数中最大值、最小值,并计算10个数的总和。
分析:
先10次随机取数,得到10个不相同的两位数,用数组存储起来。
然后对数组中的数进行查找,找出最大值、最小值,最后计算出10个数之和,并输出在文本框中。
设计步骤如下。
(1)建立如图6-1所示的界面。
添加一个框架Frame1,然后再添加一个标签Label1用来输出随机取出的10个数字。
图6-1求最大值、最小值及所有数字总和
(2)编写代码。
由于数组需要在不同的过程中使用,所以在通用段中声明数组:
Dims(1To10)AsInteger
窗体加载时,随机取数并显示输出在窗体上:
PrivateSubForm_Load()
DimpAsString
Randomize
p=""
ForI=1To10
s(I)=Int(Rnd*90)+10
IfIMod5<>0Then
p=p&Str(s(I))&","
Else
p=p&Str(s(I))&Chr(13)
EndIf
NextI
Label1.Caption=LTrim(p)
EndSub
单击“确认”按钮,求数组中的最大值、最小值、总和:
PrivateSubCommand2_Click()
DimmaxAsInteger,minAsInteger,xAsInteger
max=s
(1):
min=s
(1):
x=0
ForI=1To10'从第二个数组元素开始比较
Ifmax
Ifmin>s(I)Thenmin=s(I)
x=x+s(I)
Next
Text1.Text=max
Text2.Text=min
Text3.Text=x
EndSub
6.2.3与数组相关的函数
1.数组初始化函数Array
VB中给数组的各个元素赋初值,就称为数组的初始化。
不进行赋初值,则在定义的时候自动初始化为0或者空串。
如果数组是一维数组,则可使用VB提供的Array函数。
其语法格式为:
<数组名>=Array(<数组元素值1>,<数组元素值2>,<数组元素值3>,…)
说明:
(1)<数组名>是预先定义的Variant类型变量。
赋值时,只需要数组变量名,不需要添加数组的下标。
(2)数组元素值的列表按下标顺序排列,以逗号分隔开,连续赋值。
如果不提供参数,则创建一个长度为0的数组。
(3)使用Array函数创建的数组的下界可由OptionBase语句指定的下界来决定。
换句话说,下界值只有0和1两种情况。
(4)Array函数返回的是一组Variant类型的值。
该数组为一维,二维或多维数组不适用。
2.用UBound()和LBound()函数确定数组的上、下界
若不知道数组的上、下界,则可通过UBound()和LBound()函数获得。
函数格式为:
UBound(数组名,[N])求数组中第N维的上界值
LBound(数组名,[N])求数组中第N维的下界值
例如:
OptionBase1
DimS(1,3,2)AsInteger
a=UBound(S,2)'a得到数组S第二维的上界值3
b=LBound(S,3)'b得到数组S第三维的下界值1
6.3动态数组
在数组的使用中,有时在程序设计阶段暂时不能确定数组所需的大小,而无法再声明数组的大小。
若在程序一开始就声明一个较大的数组,则保存该数组的内存长期被占用,浪费系统资源。
若使用动态数组,则数组大小不固定,可以在任何时候根据需要改变大小,从而有效利用系统资源。
Nexti
Fori=1Ton
Forj=1Toi
PrintTab(6*j);a(i,j);
Nextj
Nexti
EndSub
6.4控件数组
6.4.1控件数组的概念
一组相同类型的控件组成。
它们共用一个控件名,具有相同的属性,建立时系统给每个元素赋一个唯一的索引号(Index)。
控件数组共享同样的事件过程,通过返回的下标值区分控件数组中的各个元素。
例:
PrivateSubcommand1_Click(IndexAsInteger)
…
IfIndex=3then
‘处理第四个命令按钮的操作
EndIf
…
EndSub
6.4.2控件数组的建立
一、在设计时建立控件数组的步骤:
1.窗体上画出控件,进行属性设置,这是建立的第一个元素;
2.选中该控件,进行“Copy”操作若干次和“Paste”操作若干次建立了所需个数的控件数组元素。
3.进行事件过程的编程。
【例6-3】利用文本框控件组,对已经给定的10个两位数演示冒泡排序法的排序过程。
设计步骤如下。
(1)建立如图6-3所示的界面,添加控件并设置其相关属性。
图6-3演示冒泡排序法的过程
(2)编写代码。
在通用段中声明n为常量,方便在不同过程中使用:
Constn=10
在Form_Load事件中编写代码,随机取出10个数字。
PrivateSubForm_Load()
DimpAsString
Randomize
p=""
Fori=1To10
s(i)=Int(Rnd*90)+10
Text1(i).Text=s(i)
Nexti
EndSub
单击“排序”按钮的代码如下:
PrivateSubCommand1_Click()
Fori=1Ton-1
MsgBox"现在进行第"&i&"轮比较,将找出"&n-i+1&"数中最大的"&_
"放置在下方"
Forj=1Ton-i
Text1(j).BackColor=RGB(0,255,0)
Text1(j+1).BackColor=RGB(0,255,0)
MsgBox"现在将相邻的两个数进行比较"
IfVal(Text1(j).Text)>Val(Text1(j+1).Text)Then
MsgBox"数字较大的将放在下方,现在将相邻的两个数进行交换"
t=Text1(j).Text
Text1(j).Text=Text1(j+1).Text
Text1(j+1).Text=t
MsgBox"交换完毕,准备下次比较"
Else
MsgBox"不交换"
EndIf
Text1(j).BackColor=RGB(255,255,255)
Text1(j+1).BackColor=RGB(255,255,255)
Nextj
Text1(n-i+1).BackColor=RGB(255,0,0)
MsgBoxn-i+1&"个数中最大的是"&Text1(n-i+1).Text
Nexti
MsgBox"排序完毕"
Text1
(1).BackColor=RGB(255,0,0)
EndSub
“重置”按钮的代码如下:
PrivateSubCommand2_Click()
Form_Load
EndSub
6.5列表框与组合框
6.5.1列表框
能将多个项目列出;供用户从中作出选择,当用户单击
某一项目时,该项目反背景显示出来,VB会表示选中.当列表框中列出的项目很多超出列表框,会自动给列表框加上垂直滚动条。
1、列表框的常用属性与方法
1)List:
返回列表中的某个选项的值
例如:
list1.list(0)表示列表中第一项的值
list1.list(n)表示列表中第n-1项的值
2)ListCount:
表示列表框中项目的总个数
3)Listindex:
表示用户在列表框中选择的那一项的序号,0~ListCount-1,若列表中无任何选项则Listindex=-1
4)Selected:
selected(i)表示第i+1项被选中
5)MultiSelect:
决定用户是否可以在列表框中选择多个列表项。
0----None表示每次只能选择一项
1----Simple表示同时在列表框中选择多项
2----Extended表示可同时在列表框中选择多项,Shift+左键单击选择相邻的多项,Ctrl+左键单击跳选。
6)Style:
用来决定列表框的外观样式
0——不带复选框1——带复选框
7)Text:
文本属性,当前被选中的内容
2、常用方法
1)Additem用于向列表框中添加数据
格式:
列表框.Additem字符串[,Index]
说明:
item是要添加到列表框中的项目值,index是指定在列表框中插入新项目的位置,设为0则表示第一个位置,如果省略,那么将项目插在末尾
2)Clear清除列表框中的各项列表框.Clear
3)RemoveItem删除列表框中的项目列表框.RemoveItemIndex
3、常发生的事件:
Click(单击)、Dbclick(双击)、Scroll(ListBox被滚动时发生的事件)
6.5.2组合框
组合框的特有属性:
组合框主要通过Style风格属性的设置,呈现出三种样式
1)下拉组合框(Style=0)
2)简单组合框(Style=1)
3)下拉列表框(Style=2)
教学后记:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB第6章 数组 VB