欢迎来到天天文库
浏览记录
ID:50519778
大小:75.00 KB
页数:4页
时间:2020-03-10
《参数传递综述.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、参数传递综述通过一个案例可以展示我们目前所学的所有内容。这个案例是:求一组数据的平均值、最大值、最小值。1.通常的方法OptionBase1PrivateSubCommandl_Click()Dima%(10),i%,aver!,max%,min%Fori=1To10a(i)=Int(Rnd()*100)Printa(i);NextiPrintmax=1'预设最大值min=1,预设最小值aver=a(l)'因为这个元素不参加循环,所以先加到aver变量中Fori=2To10aver=aver+a(i)'累加,为求平均值做准备Ifa(max)2、最大值位置Ifa(min)>a(i)Thenmin=「找最小值位置Nextiaver=aver/10Printaver,a(max),a(min)EndSub2.Sub过程最简单地将一段程序搬出去变成一个sub过程OptionBase1PrivateSubCommand1_Click()Dima%(10),i%,aver!,max%,min%Fori=1To10a(i)=Int(Rnd()*100)Printa(i);NextiPrintCalltj(a,aver,max,min)Printaver,a(max),a(min)EndSubSubtj(a%(),aver!,3、max%,min%)Dimi%max=1'预设最大值min=1,预设最小值aver=a(l),因为这个元素不参加循环,所以先加到aver变量中Fori=2To10aver=aver+a(i)'累加,为求平均值做准备Ifa(max)a(i)Thenmin=i'找最小值位置Nextiaver=aver/10EndSub要注意的是形参和实参变量名相同,要知道不相同也是一样的。1.Functionii程将第2种中的sub换成function不会对程序有任何影响,这种方法就不用试验了,同学们可以自己去试一下。因为利用函数名4、只能返回一个结果,所以我必须得在这三个待返回的结果小选择一个交给函数名返回,剩下两个还是通过参数返回。程序代码如下:OptionBase1PrivateSubCommandl_Click()Dima%(10),i%,aver!,max%,min%Fori=1To10a(i)=Int(Rnd()*100)Printa(i);NextiPrintaver=tj(a,max,min)'注意调用方式与sub过程的不同Printaver,a(max),a(inin)EndSubFunctiontj(a%(),max%,min%)AsSingleDimi%,sum%max=「预设最大5、值min=1,预设最小值sum=a(l『因为这个元素不参加循环,所以先加到aver变量中Fori=2To10sum=sum十a(i)'累加,为求平均值做准备Ifa(max)a(i)Thenmin=i'找最小值位置Nextitj=sum/10,获得平均值交给函数名返回EndFunction这个程序有点不伦不类,第2种方法有儿个返回值就需要设置儿个参数,如果有100个值需要返回,还得设置100个参数,不管是调用还是维护,工作量都非常大,不能算是一个最好的模块,当然,第3种也不算好,因为除了调用方式有一点不一样外,其它6、的缺点同第2种方式。2.Functionit程,最好的方式在窗体添加一个按钮,写入如下代码OptionBase1PrivateSubCommandl_Click()Dima%(10),i%,xAsjg,定义一个自定义类型变量,这样就可以一个变量中放多个返回值Fori=1To10a⑴=Int(Rnd()*100)Printa(i);NextiPrintx=tj(a),注意function过程的调用方式,x变量用于接收函数返回的结果Printx.avei;a(x.max),a(x.min)EndSub同时在工程资源管理器中添加一个模块,代码如下:Typejg'将多个有联系的数7、据组合成一个自定义类型averAsSinglemaxAsIntegerminAsIntegerEndTypeFunctiontj(a%())AsjgDimi%,yAsjgy.max=1,预设最大值y.min=1,预设最小值y.aver=a(l),0为这个元素不参加循环,所以先加到aver变量中Fori=2To10y.aver=y.aver+a(i)'累加,为求平均值做准备Ifa(y.max)a(i)Theny.min=i'找最小值位置Nextiy.aver=y
2、最大值位置Ifa(min)>a(i)Thenmin=「找最小值位置Nextiaver=aver/10Printaver,a(max),a(min)EndSub2.Sub过程最简单地将一段程序搬出去变成一个sub过程OptionBase1PrivateSubCommand1_Click()Dima%(10),i%,aver!,max%,min%Fori=1To10a(i)=Int(Rnd()*100)Printa(i);NextiPrintCalltj(a,aver,max,min)Printaver,a(max),a(min)EndSubSubtj(a%(),aver!,
3、max%,min%)Dimi%max=1'预设最大值min=1,预设最小值aver=a(l),因为这个元素不参加循环,所以先加到aver变量中Fori=2To10aver=aver+a(i)'累加,为求平均值做准备Ifa(max)a(i)Thenmin=i'找最小值位置Nextiaver=aver/10EndSub要注意的是形参和实参变量名相同,要知道不相同也是一样的。1.Functionii程将第2种中的sub换成function不会对程序有任何影响,这种方法就不用试验了,同学们可以自己去试一下。因为利用函数名
4、只能返回一个结果,所以我必须得在这三个待返回的结果小选择一个交给函数名返回,剩下两个还是通过参数返回。程序代码如下:OptionBase1PrivateSubCommandl_Click()Dima%(10),i%,aver!,max%,min%Fori=1To10a(i)=Int(Rnd()*100)Printa(i);NextiPrintaver=tj(a,max,min)'注意调用方式与sub过程的不同Printaver,a(max),a(inin)EndSubFunctiontj(a%(),max%,min%)AsSingleDimi%,sum%max=「预设最大
5、值min=1,预设最小值sum=a(l『因为这个元素不参加循环,所以先加到aver变量中Fori=2To10sum=sum十a(i)'累加,为求平均值做准备Ifa(max)a(i)Thenmin=i'找最小值位置Nextitj=sum/10,获得平均值交给函数名返回EndFunction这个程序有点不伦不类,第2种方法有儿个返回值就需要设置儿个参数,如果有100个值需要返回,还得设置100个参数,不管是调用还是维护,工作量都非常大,不能算是一个最好的模块,当然,第3种也不算好,因为除了调用方式有一点不一样外,其它
6、的缺点同第2种方式。2.Functionit程,最好的方式在窗体添加一个按钮,写入如下代码OptionBase1PrivateSubCommandl_Click()Dima%(10),i%,xAsjg,定义一个自定义类型变量,这样就可以一个变量中放多个返回值Fori=1To10a⑴=Int(Rnd()*100)Printa(i);NextiPrintx=tj(a),注意function过程的调用方式,x变量用于接收函数返回的结果Printx.avei;a(x.max),a(x.min)EndSub同时在工程资源管理器中添加一个模块,代码如下:Typejg'将多个有联系的数
7、据组合成一个自定义类型averAsSinglemaxAsIntegerminAsIntegerEndTypeFunctiontj(a%())AsjgDimi%,yAsjgy.max=1,预设最大值y.min=1,预设最小值y.aver=a(l),0为这个元素不参加循环,所以先加到aver变量中Fori=2To10y.aver=y.aver+a(i)'累加,为求平均值做准备Ifa(y.max)a(i)Theny.min=i'找最小值位置Nextiy.aver=y
此文档下载收益归作者所有