,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,1,Visual Basic.NET,程序设计(,10,),1Visual Basic.NET 程序设计(10),2,上周回顾,Public|Private Function,函数过程名,(,形参,)As,类型,变量声明,语句块,Return,表达式,或,函数名,=,表达式,End Function,Public|Private,Sub,子过程名,(,形参列表声明,),过程变量或常数声明,语句块,End Sub,一般来说,当程序有一个返回值时,函数和过程都可以,但函数比较直观,当程序没有返回值或有多个返回值,习惯用子过程,返回值,函数必须通过函数名赋值或通过,Return,语句返回函数值,子过程名没有值,没有类型,,子过程是通过设置形参获得返回值,2上周回顾Public|Private Functio,3,上周回顾,过程,必须,先定义,后调用,子过程,Call,过程名,(,参数,),过程名,(,参数,),函数过程,使用赋值语句:变量名或对象属性名,=,函数名,(,参数,),3上周回顾过程必须先定义,后调用,4,编写计算阶乘的函数和过程,并利用该函数和过程计算,计算阶乘的函数和过程,4编写计算阶乘的函数和过程,并利用该函数和过程计算计算阶乘的,5,Visual Basic.NET,程序设计,第十课,数 组,5Visual Basic.NET 程序设计,6,数组,简单类型,,1,个变量对应,1,个数据,相同类型变量的集合,数组,下标变量,A,1,,,A,2,,,A,i,数组,A(,1,),,,A(,2,),,,A(,i,),数组必须,先,申明,在,内存保留多少空间,声明一维数组,Dim,数组名(下标上界),As,类型,数组大小:下标上界,+1,Dim A(10)As Integer,,一维数组,整型,,11,个元素,下标范围,010,A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(8)A(9)A(10),Dim St(5)As string,,一维数组,字符串类型,,6,个元素,下标范围,05,下标默认从,0,开始,6数组简单类型,1个变量对应1个数据,7,多维数组,一维数组是一个线性表,表示一个平面、矩阵要用到二维数组,表示三维空间要用到三维数组,声明多维数组,Dim,数组名(下标,1,上界,下标,2,上界,),As,类型,下标个数:决定了数组的维数,最多,32,维,每一维的大小:上界,+1,,数组的大小是每一维大小的乘积,Dim B(2,,,3)As Integer,,二维数组声明,,3*4=12,个元素,B(0,0)B(0,1)B(0,2)B(0,3),B(1,0)B(1,1)B(1,2)B(1,3),B(2,0)B(2,1)B(2,2)B(2,3),7多维数组一维数组是一个线性表,8,数组的初始化,定义数组的同时,为数组元素赋初值,一维数组初始化,Dim,数组名(),As,类型,=,常数,1,,,,常数,n,Dim a()As Integer=1,3,5,7,9,即,a(0),到,a(4),分别为,1,3,5,7,9,二维数组初始化,Dim,数组名(,),As,类型,=,第一行各常数,,,,,第,m,行各常数,Dim x(,)As Integer=1,2,3,4,5,6,7,8,数组,x,请注意:,初始化时不能申明数组的下标上界时,即一维数组使用“,()”,,二维数组使用“,(,)”,编程时使用,UBound(,数组名,第,n,维数,),来确定其下标上界。,8数组的初始化定义数组的同时,为数组元素赋初值数组x请注意:,9,重定义数组大小,对已经存在的数组可用,ReDim,语句改变数组大小,ReDim,数组名,(,下标,1,下标,2,),例,Dim sArray(2,3)As Single,Sub Form1_Load(,)Handles Mybase.Load,ReDim sArray(4,,,8),End Sub,在过程外声明了,3,行,4,列的二维数组,sArray,,在,Form1_Load,事件中重新指明二维数组的大小为,5,行,9,列。,9重定义数组大小对已经存在的数组可用ReDim语句改变数组大,10,重定义数组大小注意事项,Dim,是说明语句,可出现在程序的任何地方,,ReDim,是执行语句,只能出现在过程中,在过程中可多次使用,ReDim,语句来改变数组的大小,但不能改变维数和类型,每次使用,ReDim,语句都会使原来数组中的值丢失,可在,ReDim,后加,Preserve,参数用来保留数组中的数据,但使用,Preserve,参数后,只能改变最后一维的大小。,ReDim Preserve(,小标,1,上界,下标,2,上界,),10重定义数组大小注意事项Dim 是说明语句,可出现在程序的,11,示例,利用随机数产生,10,个,30100,的整数存入数组,输出到文本框中,计算最小值、最大值、最小值下标、最大值下标并输出;,将最小值、最大值增加到该数组后并输出增加这三个值后的整个数组,以下显示是某一次产生的结果,11示例利用随机数产生10个30100的整数存入数组,输出,12,代码,重新定义数组大小,保留原值,注意换行,产生随机数存入数组,12代码重新定义数组大小,保留原值注意换行产生随机数存入数组,13,示例(续),编写两个过程,产生不同范围随机数并存入数组的过程;,求数组中最小值、最大值、最小值下标、最大值下标的过程。,利用这两个过程产生,30100,之间的随机数并存入数组并显示,计算最小值、最大值、最小值下标、最大值下标并输出,以下显示是某一次产生的结果,13示例(续)编写两个过程,14,产生不同范围随机数并存入数组的过程,请注意:,形参是数组,只需用数组名和后面的圆括号表示,不需要给出维数的上界,实参是数组,只需给出数组名即可,后面不需要加圆括号,调用示例:,a,g,r,已被声明为整型数组,Call srandom(a,1,100),产生,1100,的随机数并存入数组,a,中,Call srandom(g,10,4),产生,410,的随机数并存入数组,g,中,Call srandom(r,40,200),产生,40200,的随机数并存入数组,r,中,14产生不同范围随机数并存入数组的过程请注意:,15,求数组中最小值、最大值、最小值下标、最大值下标的过程,注意传址,数组作为参数传递时,不管参数前是,ByVal,还是,ByRef,,都是以传地址方式传送,15求数组中最小值、最大值、最小值下标、最大值下标的过程注意,16,代码,两个过程的形式,16代码两个过程的形式,17,作业,完成示例程序,编写求数组元素之和的过程,单击,“,求和,”,按钮时利用此过程和已有其它过程产生,10100,范围的随机数存入数组并求和,输出形式如下所示,只是某一次的结果,交错显示,snow,和,sun,17作业完成示例程序,