欢迎来到天天文库
浏览记录
ID:36688856
大小:277.41 KB
页数:20页
时间:2019-05-10
《《VB程序设计子程序》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章过程与函数对于某些多次反复执行的程序段,我们可以将它定义成子程序。子程序分为过程和函数。定义在代码窗口中直接定义子过程形式如下:[Public/Private]sub子程序名[(参数列表)]语句[ExitSub]语句EndSub函数过程形式如下:[Public/Private]Function函数名([参数列表])[As类型]语句函数名=返回值[ExitFunction]语句函数名=返回值EndFunction形参列表:参数1,参数2,……参数定义:[byval]变量名as数据类型Byval数据传递方式:值传递,省略时为地址传递Exitsub/Exi
2、tfunction中途退出过程调用子程序名[参数列表]/Call子程序名[(参数列表)]变量名=函数名([参数列表])例:过程调用callexchange(a,b)或exchange(a,b)例:函数调用Printmaxnum(a,b)X=maxnum(a,b)例5.1编一交换两个数的过程。PrivateSubjiaohuan(xAsInteger,yAsInteger)DimtAsIntegert=xx=yy=tEndSub形参:x,y数据传递方式:地址传递参数传递PrivateSubForm_Click()DimaAsInteger,bAsInteger
3、a=10:b=20Print"原值:";"a1=";a,"b1=";bcalljiaohuan(a,b)Print"交换后:";"a1=";a,"b1=";bEndSub函数的定义和调用privatefunctionjch(nasinteger)dimfasinteger,Iasintegerf=1fori=1tonf=f*inextijch=fendfunction在表达式中使用计算m!*n!/(m-n)!jch(m)*jch(n)/jch(m-n)过程的作用域(1)窗体中的过程private子程序只能在本窗体中调用public子程序可以在其它窗体中应用,但
4、调用方式为窗体名.过程名(2)标准模块中的过程public可以在任意窗体和模块中使用递归用自身的结构来描述自身称为“递归”。递归总有一个“结束条件”,此结束条件称为“边界条件”。例1:五个人论岁数,第一个人说比第二个人大2岁,第二个人说比第三个人大2岁,第三个人说比第四个人大2岁,第四个人说比第五个人大2岁,第五个说他10岁,问每人多大岁数?递归s(5)=s(4)+2s(5)=18s(4)=s(3)+2s(4)=16s(3)=s(2)+2s(3)=14s(2)=s(1)+2s(2)=12s(1)=10递推回推Li:阶乘5!=4!*5
5、 '递推4!=3!*43!=2!*32!=1!*21!=1 '边界条件2!=1*2=2 '回推3!=2*3=64!=6*4=245!=24*5=120代码如下:PrivateFunctionfac(nasinteger)ifn=1thenfac=1elsefac=n*fac(n-1)endifEndFunction菲波那契数列前两项为1,从第三项开始,其值为它前面两项的和。PrivateFunctionfibo(nAsInteger)Ifn=1Orn=2Thenfibo=1Elsefibo=fibo(n-1)+fibo(n-2)EndIfEndFu
6、nction代码如下:PrivateSubCommand1_Click()DimnAsInteger,iAsInteger,kAsIntegerPicture1.clsn=Val(Text1.Text)Fori=1TonPicture1.Printfibo(i);"";k=k+1Ifk=5Thenk=0Picture1.PrintEndIfNextIEndSub常用算法举例求素数选择法排序冒泡法排序顺序查找要判断一个数x是否是素数,需要判断x是否能被2至x-1内的某一个自然数整除。若都不能整除,则x是素数。(所以,判断一个数是否为素数,只要看在2到它的平方
7、根之间有没有约数。例题:素数123466912183636的所有约数:分布在6两侧第一次从未排好序的数组中找出最小(或最大)的,放在第一个位置;第二次从后面的n-1个数中找出最小(或最大)的,放在第二个位置;……例题:选择排序每次对相邻的两个数进行比较,若不符合顺序,则交换位置;例题:冒泡排序查找顺序查找即将关键字与数组中的元素逐一比较,若相同,查找成功。例题:顺序查找
此文档下载收益归作者所有