数组的使用.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:20 大小:270KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

数组的使用.ppt

数组的使用.ppt

预览

免费试读已结束,剩余 10 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数组的概念数组与数组元素数组是用一个统一的名称表示的、顺序排列的一组变量。数组中的变量称为数组元素,用数字(下标)来标识它们,因此数组元素又称为下标变量。数组的类型数组的维数固定大小的数组数组的声明有3种方法声明固定大小的数组,用哪一种方法取决于数组应用的有效范围:l建立公用数组,在模块的通用段用Public语句声明数组。格式为Public数组名(〈维数定义〉)[As〈类型〉]l建立模块级数组,在模块的通用段用Private或Dim语句声明数组。格式为Private|Dim数组名(〈维数定义〉)[As〈类型〉]l建立局部数组,在过程中用Dim或Private语句声明数组。格式为Dim|Private数组名(〈维数定义〉)[As〈类型〉]数组的使用随机产生10个两位整数,找出其最大值、最小值和平均值,如图所示。设计步骤如下:(1)建立应用程序用户界面与设置对象属性。(2)编写代码。随机整数的生成由窗体的Load事件代码完成:PrivateSubForm_Load()DimpAsStringRandomizep=""Fori=1To10a(i)=Int(Rnd*90)+10p=p&Str(a(i))&","NextLabel1.Caption=LTrim(Left(p,Len(p)–1))EndSub求最大、最小以及平均值由“确定”按钮Command2的Click事件代码完成:PrivateSubCommand2_Click()DimnAsInteger,mAsInteger,sAsSinglemin=100:max=10:s=0Fori=1To10Ifa(i)>nThenmax=a(i)Ifa(i)<mThenmin=a(i)s=s+a(i)NextText1.Text=maxText2.Text=minText3.Text=s/10EndSub交换数组中各元素交换的要求就是将数组的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,依此类推。结果见图:‘交换按钮的代码:PrivateSubCommand1_Click()Fori=1To10\2temp=s(i)s(i)=s(10-i+1)s(10-i+1)=tempNextiFori=1To10Text2.Text=Text2.Text&s(i)&""NextiEndSub‘退出按钮的代码:数组排序排序就是将一组数据按照递增或者递减的次序排列。排序的方法有很多种,常用的有选择法,冒泡法,插入法以及合并排序等等,其中最简单的是选择法。在这里主要介绍选择法和冒泡法。选择法排序:对一组数组中的n个数,用选择法按照递减的顺序排列。选择法排序的思想是:(1)对于有n个数的序列,从中选出最大的一个数与第一个数交换;(2)从除去第一个数的n-1个数中在按照步骤(1)选出最大的数和数组序列的第二个数交换;一直重复第(1)步n-1次,最后构成递减数列。选择法的算法程序通用代码forI=1ton-1imin=Iforj=I+1tonifs(j)>s(imin)thenimin=jnextjtemp=s(imin)s(imin)=s(I)s(I)=tempnextI冒泡排序的思想是:1.将第一个元素和第二个元素比较,如果第一个元素大于第二个元素,则将第一个元素和第二个元素交换;2.比较第二个元素和第三个元素,以此类推,直到第n-1个元素和第n个元素;3.对前n-1个元素重复进行第1步和第2步;4.重复第3步直到形成一个递增的数组。下面是实现冒泡排序的通用程序段:为了通用性更强,这里给出含有n个元素的数组的排序程序代码:ForI=n-1to1step–1Forj=1toIIfS(j)>S(j+1)thenTemp=S(j)S(j)=s(j+1)S(j+1)=TempEndIfNextjNextI数组的复制“复制数组”是指将整个数组的内容复制到另一个数组中。只要复制的目标数组不属于固定大小的数组,就可以顺利地完成数组的复制。例如:Dima(2)Dimb(3)Dimobj()c=Array(10,11,12,13)d=Array(‘a’,‘b’,‘c’,‘d’,‘e’)b=c‘这一句是错误的,因为b是一个固定大小的数组a=c‘错误,a的大小固定,且数组元素个数也不等obj=c‘正确c=d‘正确,因为此处c的大小不固定但是下面程序段是正确的:forI=0to3b(I)=d(I)nextI动态数组的使用在声明中不给出数组的大小(省略数组声明中括号中的下标),当要使用它的时候,随时可以用ReDim语句来重新定义该数组的大