资源描述:
《Visual Basic 清华大学vb编程语言基础 第6讲课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六讲数组内容提要数组的概念数组的声明与数组有关的函数和语句控件数组数组的概念数组是保存一组具有相同名字和类型的数据的集合。用统一的名字代表逻辑上相关的一批数据,每个元素用下标来区分。数组必须先声明后使用声明时指定数组名称、类型、维数和大小。数组声明时下标的个数确定数组的维数,VB中的数组最多60维。按声明时数组的大小是否确定分为静态数组和动态数组。Dimstudent(1to30)asString数组的声明Dim数组名(下标1[,下标2,……)[as类型]定义数组的名称指定数组的数据类型指定数组中元素的数目初始化数组中每个元素的值,数值数组中的所有元素初始化为0,字
2、符数组中的所有元素初始化为空字符串。Dimstudent(1to30)asStringstudent(1)student(2)student(3)……student(30)静态数组Dim数组名(下标)[As类型]下标必须是常数,不允许是表达式或变量。下标的形式为:[下界to]上界最小下界是-32768,最大上界是32767,下界的缺省值是0。一维数组的大小为:上界-下界+1。As类型缺省时是Variant类型。缺省情况下,下标从0开始,VisualBasic中可用optionbasen语句在窗体或标准模块中重新设定数组的下界。optionbase1,设定数组的下标从1
3、开始。一维数组声明格式静态数组多维数组声明格式Dim数组名(下标1[,下标2,……)[as类型]数组声明中若有两个下标,则为二维数组,有两个或两个以上下标,则为多维数组。Dima(2,3)asintegera(0,0)a(0,1)a(0,2)a(0,3)a(1,0)a(1,1)a(1,2)a(1,3)a(2,0)a(2,1)a(2,2)a(2,3)静态数组应用随机产生一个班50个学生的成绩,计算出平均分并统计出高于85分的人数。PrivateSubCommand1_Click()Dimscore(1To50)AsInteger'声明一个有50个元素的数组scoreDi
4、mi%,j%DimaverageAsSingleaverage=0j=0Randomize'初始化随机数生成器Print"学生成绩为:"分析:使用随机函数产生随机数,赋给数组score,通过循环计算出总分,然后计算出平均分,通过循环统计出高于85分的人数。静态数组应用Fori=1To50score(i)=Int(Rnd*90+11)'产生[11,100]的随机数并赋给数组scorePrintscore(i);IfiMod10=0ThenPrintaverage=average+score(i)Nextiaverage=average/50Print"平均分是:"&av
5、erageFori=1To50Ifscore(i)>=85Thenj=j+1NextiPrint"高于85分的有:"&j&"人"EndSub动态数组动态数组也称为可调数组,在数组声明时不指定数组的大小,而在使用时才指定数组的大小。动态数组使用灵活、方便,可以更高效的使用计算机内存。创建动态数组:在窗体模块、标准模块或过程中用Dim语句或Public语句声明一个没有下标的数组,将数组声明为动态数组在过程中用ReDim语句指明数组的大小,其一般格式为:ReDim[Preserve]数组名(下标1[,下标2……])[as类型]动态数组的使用在过程外部用Dim语句声明一个动态
6、数组:Dima()asinteger在过程内部用ReDim语句指明数组的实际大小:ReDima(2,3)ReDim语句是执行语句,只能出现在过程中,在程序运行时执行,可动态的分配内存空间。ReDim语句中数组的下标即可以是常量,也可以是有确定值的变量,as类型可省略,若不省略,必须与Dim语句声明的类型一致。在过程中可多次使用ReDim语句改变数组的维数和大小。每执行一个新的ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加上Preserve参数用来保留数组中的数据,但Preserve参数只能改变最后一维的大小,前面几维大小不能改变。动态数组的应用Opt
7、ionBase1'设定数组的下界为1Dima()AsInteger'在过程外声明动态数组aPrivateSubCommand1_Click()Dimm%,n%,i%,j%m=Val(InputBox("输入m"))n=Val(InputBox("输入n"))ReDima(m,n)'定义数组的大小Print"输出数组a:"Fori=1TomForj=1Tona(i,j)=i*j'为数组赋值Printa(i,j);NextjPrintNexti动态数组的应用ReDima(6)'重定义数组的大小Print"第2次输出数组a:"Fori=1To6a(i)=i