【教学课件】第8章数组的使用.ppt

上传人:牧羊曲112 文档编号:5659508 上传时间:2023-08-06 格式:PPT 页数:21 大小:373.97KB
返回 下载 相关 举报
【教学课件】第8章数组的使用.ppt_第1页
第1页 / 共21页
【教学课件】第8章数组的使用.ppt_第2页
第2页 / 共21页
【教学课件】第8章数组的使用.ppt_第3页
第3页 / 共21页
【教学课件】第8章数组的使用.ppt_第4页
第4页 / 共21页
【教学课件】第8章数组的使用.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《【教学课件】第8章数组的使用.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第8章数组的使用.ppt(21页珍藏版)》请在三一办公上搜索。

1、第8章数组的使用,人民邮电出版社,21世纪高等学校计算机基础教育系列教材,数组的使用,数组的概念数组与数组元素 数组是用一个统一的名称表示的、顺序排列的一组变量。数组中的变量称为数组元素,用数字(下标)来标识它们,因此数组元素又称为下标变量。数组的类型 数组的维数固定大小的数组数组的声明 有3种方法声明固定大小的数组,用哪一种方法取决于数组应用的有效范围:l 建立公用数组,在模块的通用段用Public语句声明数组。格式为Public 数组名(维数定义)As 类型l 建立模块级数组,在模块的通用段用Private或Dim语句声明数组。格式为Private|Dim 数组名(维数定义)As 类型l

2、建立局部数组,在过程中用Dim或Private语句声明数组。格式为Dim|Private 数组名(维数定义)As 类型,数组的使用 随机产生10个两位整数,找出其最大值、最小值和平均值,如图所示。设计步骤如下:(1)建立应用程序用户界面与设置对象属性。(2)编写代码。随机整数的生成由窗体的Load事件代码完成:Private Sub Form_Load()Dim p As String Randomize p=For i=1 To 10 a(i)=Int(Rnd*90)+10 p=p&Str(a(i)&,Next Label1.Caption=LTrim(Left(p,Len(p)1)End

3、Sub,求最大值、最小值和平均值,求最大、最小以及平均值由“确定”按钮Command2的Click事件代码完成:Private Sub Command2_Click()Dim n As Integer,m As Integer,s As Single min=100:max=10:s=0 For i=1 To 10 If a(i)n Then max=a(i)If a(i)m Then min=a(i)s=s+a(i)Next Text1.Text=max Text2.Text=min Text3.Text=s/10End Sub,“重置”按钮Command1的Click事件代码:Privat

4、e Sub Command1_Click()Form_Load Text1.Text=Text2.Text=Text3.Text=End Sub 最后是“关闭”按钮Command3的Click事件代码:Private Sub Command3_Click()Unload MeEnd Sub,交换数组中各元素交换的要求就是将数组的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,依此类推。结果见图:交换按钮的代码:Private Sub Command1_Click()For i=1 To 10 2 temp=s(i)s(i)=s(10-i+1)s(10-i+1)=tempNext

5、iFor i=1 To 10 Text2.Text=Text2.Text&s(i)&Next iEnd Sub退出按钮的代码:,Private Sub Command2_Click()EndEnd Sub初始化按钮的代码:Private Sub Command3_Click()For i=1 To 10 Text1.Text=Text1.Text&s(i)&Next iEnd Sub初始化数组元素,可以使用InputBox()函数来输入数组元素Private Sub Form_Load()For i=1 To 10 s(i)=2*i-1 Next iEnd Sub,数组排序排序就是将一组数据按

6、照递增或者递减的次序排列。排序的方法有很多种,常用的有选择法,冒泡法,插入法以及合并排序等等,其中最简单的是选择法。在这里主要介绍选择法和冒泡法。选择法排序:对一组数组中的n个数,用选择法按照递减的顺序排列。选择法排序的思想是:(1)对于有n个数的序列,从中选出最大的一个数与第一个数交换;(2)从除去第一个数的n-1个数中在按照步骤(1)选出最大的数和数组序列的第二个数交换;一直重复第(1)步n-1次,最后构成递减数列。,选择法的算法程序通用代码for I=1 to n-1 imin=I for j=I+1 to n if s(j)s(imin)then imin=j next j temp=

7、s(imin)s(imin)=s(I)s(I)=tempnext I,冒泡排序的思想是:1将第一个元素和第二个元素比较,如果第一个元素大于第二个元素,则将第一个元素和第二个元素交换;2比较第二个元素和第三个元素,以此类推,直到第n-1个元素和第n个元素;3对前n-1个元素重复进行第1步和第2步;4重复第3步直到形成一个递增的数组。下面是实现冒泡排序的通用程序段:为了通用性更强,这里给出含有n个元素的数组的排序程序代码:For I=n-1 to 1 step 1 For j=1 to I If S(j)S(j+1)then Temp=S(j)S(j)=s(j+1)S(j+1)=Temp End

8、If Next j Next I,数组的复制“复制数组”是指将整个数组的内容复制到另一个数组中。只要复制的目标数组不属于固定大小的数组,就可以顺利地完成数组的复制。例如:Dim a(2)Dim b(3)Dim obj()c=Array(10,11,12,13)d=Array(a,b,c,d,e)b=c 这一句是错误的,因为b是一个固定大小的数组a=c 错误,a的大小固定,且数组元素个数也不等obj=c 正确c=d 正确,因为此处c的大小不固定但是下面程序段是正确的:for I=0 to 3 b(I)=d(I)next I,动态数组的使用在声明中不给出数组的大小(省略数组声明中括号中的下标),当

9、要使用它的时候,随时可以用ReDim语句来重新定义该数组的大小。使用动态数组的优点在于用户可以根据自己的需要来有效地利用存储空间,在程序执行到ReDim语句时分配存储空间,而静态数组是在程序编译时就分配存储空间。声明动态数组的方法:使用Dim,Private或Public语句声明一个不写下标的数组,然后在后面需要的时候再用ReDim语句来指出数组的大小。语句的形式如下:Dim sa()AS 类型ReDim sa(下标1,下标2,下标3)AS 类型其中:下标I可以是常量,也可以是有了确定值的变量。例如:Dim sa()AS Integer Private Sub Form_click()ReDi

10、m sa(4,8)End Sub,二维数组二维数组就是有两个下标的数组,用来表示一些分组的元素。它的定义方法如下所示:Dim 数组名(下标1,下标2)AS 类型对于其中的每一个下标,都可以采用下界 To 上界的格式来定义,从而使得数组的存放符合人们的习惯。对于二维数组来说,数组的元素个数就是(下标1上界-下标1下界+1)*(下标2上界-下标2下界+1)个。例如定义一个二维数组如下:Dim myarray(1 To 3,1 To 2)AS Integer则这个数组共有(3-1+1)*(2-1+1)=6个元素,这六个元素分别是:myarray(1,1),myarray(1,2)myarray(2,

11、1),myarray(2,2)myarray(3,1),myarray(3,2)而且这些变量都是整型类型。,将一个二维数组行和列元素交换,存到另一个二维数组中,定义两个数组变量和两个计数器变量Dim a(1 To 2,1 To 3)AS IntegerDim b(1 To 3,1 To 2)AS IntegerDim i,j AS Integer程序装入时输入数组元素,本例中分别输入12,34,56,78,89,90Private Sub Form_Load()For i=1 To 2 For j=1 To 3 a(i,j)=InputBox(请输入第&i&,&j&个元素)Next j Nex

12、t iEnd Sub,转置按钮的代码:Private Sub Command1_Click()For i=1 To 2 For j=1 To 3 Text1.Text=Text1.Text&a(i,j)&“:b(j,i)=a(i,j)Next j Text1.Text=Text1.Text&Chr(13)&Chr(10)Next iFor i=1 To 3:For j=1 To 2 Text2.Text=Text2.Text&b(i,j)&Next j Text2.Text=Text2.Text&Chr(13)&Chr(10)Next iEnd Sub退出按钮的代码:Private Sub C

13、ommand2_Click()EndEnd Sub,多维数组前面讲过,在Visual Basic 中,最多允许有60维的数组,但是在使用中并不能使用这么庞大的数组,因为这么庞大的数组已经远远超出了人们能够理解的范围,人们现实生活中都是生活在三维空间中的,所以人们很少去使用超过三维以上的数组,用户在使用多维数组的时候,可以和前面讲过的声明二维数组的方法一样来声明多维数组,也就是它的使用格式是:Dim 数组名(下标1,下标2,下标3)AS 类型当然多维数组也可以有动态数组,它的使用方法和二维数组的使用完全一样,因为二维数组是一个最简单的多维数组。,控件数组的建立创建控件数组可以在设计中创建,在设计

14、中,可以通过以下方法来创建一个控件数组:在窗体上创建一个控件,对控件名称和一些属性进行设置,选中该控件用鼠标进行复制(Copy)和粘贴(Paste)。会出现如图8.10一个询问是否创建控件数组的对话框,单击“是”按钮进行创建控件数组。在点击了“是”按钮后,在窗体中就会创建一个控件数组,下面的例子中就是创建一个计算器中数字键和运算符号键的控件数组。然后对这些数字键可以采用同一段代码来实现数字的键入。这样就可以减少程序员编写代码的任务。,使用数组的一些函数和语句Lbound函数、Ubound函数Lbound函数是用来返回数组下标的最小索引值的,Ubound函数是用来返回数组下标的最大索引值的。Is

15、Array函数IsArray函数是用来判断一个变量是否属于数组,Erase语句 Erase函数是将某个数组所占的内存空间释放,归还给系统。在使用了Erase函数后,这个数组的元素就不能再被引用了,要想重新使用这个数组的元素话,就必须用ReDim语句或Array语句来重新声明。,菜单数组,可以在菜单编辑器中设定一个菜单,标题(Caption)不写任何内容,只写它的名称(Name),将它的索引(Index)设为0,并且设置为不可见(Visible=False)。其余部分通过程序来实现。,Private Sub Form_Load()f(0).Visible=Truef(0).Caption=北方工

16、业大学For i=1 To 4 Load f(i)f(i).Visible=True f(i).Caption=张露&iNext iEnd Sub,用For Each.Next访问数组元素,对数组中的每个元素进行相加,然后输出计算结果。在窗体中添加一个命令按钮,书写如下代码:Dim arr(20)AS Integer 定义窗体级的全局数组变量Private Sub Form_Load()窗体在加载的时候初始化数组。For i=1 To 20 arr(i)=2*i+1 NextEnd SubPrivate Sub Command1_Click()单击命令按钮对数组元素进行求和,输出计算结果。s=0 For Each x In arr:s=s+x Next x Print sEnd Sub,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号