子程序与函数过程精品文稿.ppt

上传人:石*** 文档编号:71827502 上传时间:2023-02-06 格式:PPT 页数:43 大小:5.32MB
返回 下载 相关 举报
子程序与函数过程精品文稿.ppt_第1页
第1页 / 共43页
子程序与函数过程精品文稿.ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《子程序与函数过程精品文稿.ppt》由会员分享,可在线阅读,更多相关《子程序与函数过程精品文稿.ppt(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、子程序与函数过程子程序与函数过程第1页,本讲稿共43页+子程序过程(2)+函数过程(4)+过程之间参数传递(3)+变量的作用域(1)讲课次序第2页,本讲稿共43页+定义格式:StaticPrivate|PublicSub子程序名 (形参列表)语句组1 Exit Sub 语句组2End Sub ByValByRef变量名变量名()As 类型类型,提前结束子程提前结束子程序过程序过程只能被本窗体中的只能被本窗体中的过程调用过程调用能被程序中的所有过程能被程序中的所有过程调用。在模块中定义,调用。在模块中定义,调用时直接用过程名;调用时直接用过程名;在窗体中定义,调用须在窗体中定义,调用须加该过程所

2、在窗体名加该过程所在窗体名第3页,本讲稿共43页+【实例6.1】交换两个整型变量值的子过程 Private Sub Swap(X As Integer,Y As Integer)Dim temp As Integer Temp=X:X=Y:Y=TempEnd Sub测试:参数的传递过程值传递和地址传递,用下过程。第4页,本讲稿共43页Private Sub Command1_Click()Dim a As Integer,b As Integera=3b=5Call Swap(a,b)Print a,bEnd Sub第5页,本讲稿共43页【工具工具】|【添加过程添加过程】第6页,本讲稿共43页

3、+子程序过程的调用格式子程序过程的调用格式 Call 过程名过程名(实际参数实际参数)过程名过程名 实际参数实际参数+必须有确定值必须有确定值+个数、类型必须与形参一个数、类型必须与形参一一对应一对应第7页,本讲稿共43页+【实例6.2】试编写一个无参数的sub子过程Formmove(),它的功能是将当前正在运行的窗体移动到屏幕的中央。第8页,本讲稿共43页+Fommove()子过程代码 Public Sub formmove()Form1.Top=(Screen.Height-Form1.Height)/2Form1.Left=(Screen.Width-Form1.Width)/2End

4、Sub第9页,本讲稿共43页+移动按钮代码 Private Sub Command1_Click()Call Formmove End sub第10页,本讲稿共43页+函数过程的定义+函数过程的调用 第11页,本讲稿共43页+函数过程的一般定义格式 StaticPrivate|Public Function 函数名 (形参列表)As 类型 语句组1 函数名返回值 Exit Function 语句组2 函数名返回值End Function 必有该语句必有该语句提前结束提前结束函数函数第12页,本讲稿共43页+函数过程的调用格式变量名=函数名(实际参数)+注意:必须有确定值个数、类型必须与形参一一

5、对应第13页,本讲稿共43页+例:定义求an值的函数。Public Function an(a As Integer,n As Integer)x=1For i=1 To nx=x*aNext ian=xEnd Function第14页,本讲稿共43页Private Function Gcd(m As Integer,n As Integer)Dim r As Integer,t As Integer If m n Then t=m:m=n:n=t End If Do r=m Mod n m=n n=r Loop While(r 0)Gcd=mEnd Functionm*n/Gcd(m),(n

6、)第15页,本讲稿共43页+【实例6-3】编写一个函数过程,统计一串字符中某个字符的出现次数,通过调用函数过程实现。第16页,本讲稿共43页第17页,本讲稿共43页+函数过程代码 Public Function statistic(str$,s$)As IntegerDim k%,i%k=0For i=1 To Len(str)If Mid(str,i,1)=s Thenk=k+1End IfNext istatistic=kEnd Function第18页,本讲稿共43页+统计按钮代码Private Sub cmdstat_Click()Dim c1$,c2$,m%c1=txtin.Text

7、c2=txtsearch.Textm=statistic(c1,c2)txtcount.Text=mEnd Sub第19页,本讲稿共43页+【实例6-4】某班有m名学生,要选派n名学生参加合唱队,计算有多少种选派方法。第20页,本讲稿共43页+计算阶乘的函数过程 Public Function factorial(ByVal n As Integer)As DoubleDim i As Integer,t As Doublet=1For i=1 To nt=t*iNext ifactorial=tEnd Function第21页,本讲稿共43页+计算按钮代码:Private Sub cmdco

8、unt_Click()Dim m As Integer,n As Integer,c As Doublem=Val(txtstudent.Text)n=Val(txtneed.Text)c=factorial(m)/(factorial(n)*factorial(m-n)lblways.Caption=Str(c)End Sub第22页,本讲稿共43页+传地址与传值 1.传值方式在形参前加关键字ByVal,指定该参数是传值方式例如:Private Sub w(ByVal n%)2.传地址方式在形参前加关键字ByRef或缺省关键字,则指定该参数是传地址方式。例如:Private Sub w(By

9、Ref x!,y!)注意:按传地址方式传递参数时,要求实参必须是变量名 第23页,本讲稿共43页+【实例6.5】编写 交换两个数的子过程,s1用传值方式,s2用传地址方式,区分两个过程分别调用后的结果。第24页,本讲稿共43页+s1用传值方式Private Sub S1(ByVal x As Integer,ByVal y As Integer)Dim temp As Integer temp=x:x=y:y=tempEnd Sub第25页,本讲稿共43页+s2用传地址方式Private Sub S2(ByRef x As Integer,y As Integer)Dim temp As In

10、teger temp=x:x=y:y=tempEnd Sub第26页,本讲稿共43页+调用代码:Private Sub Command1_Click()Dim a As Integer,b As Integer a=20:b=30 Print 调用前a 和b的值为:;Tab(30);a;b Call S1(a,b)Print 调用s1后a 和 b 的值为:;Tab(30);a;b a=20:b=30 Call S2(a,b)Print 调用s2后 a和b 的值为:;Tab(30);a;bEnd Sub第27页,本讲稿共43页+在本过程内使用的变量+在本窗体内使用的变量+在所有窗体内使用的变量+

11、变量局部变量局部变量窗体窗体/模块级变量模块级变量全局变量全局变量静态静态静态静态静态静态静态静态动态变量动态变量Static静态变量静态变量Dim窗体或标准模块的窗体或标准模块的“通通用用”声明段中用声明段中用Dim或或Private关键字声明的关键字声明的变量变量 在窗体或标准模块中在窗体或标准模块中“通通用用”“声明声明”段用段用public关关键字声明;引用其它窗键字声明;引用其它窗体模块中声明的体模块中声明的public变量,需要加窗体名。变量,需要加窗体名。第28页,本讲稿共43页+例:分别将k定义为不同级别的变量,观察单击命令按钮事件过程中K值的变化情况。Option expli

12、citPrivate Sub Command1_Click()k=k+1Print kEnd Sub注意:引用其它窗体模块中声明的public变量,需要加窗体名。第29页,本讲稿共43页+【实例6-6】模块级变量与局部变量应用实例。第30页,本讲稿共43页Option ExplicitDim x%Private Sub Form_click()x=33Print x=;xCall li1Call li2print x1 End Sub或工具或工具|选项,选项,要求声明变量要求声明变量第31页,本讲稿共43页Private Sub li1()Dim x1%x1=11Print x1=;x1,Pr

13、int x=;xEnd Sub第32页,本讲稿共43页Private Sub li2()Dim x2%x2=22Print x2=;x2,Print x=;xEnd Sub 第33页,本讲稿共43页+声明形式:Static 变量名 AS 类型第34页,本讲稿共43页+在文本框内随机产生n个小写英文字母作为范文;当焦点进入打字区时开始计时;用户输入n个字母时计时结束,禁止向打字区再输入内容,并统计打字的速度和正确率。第35页,本讲稿共43页+测试代码Option ExplicitDim n%,t As DatePrivate Sub command1_click()Dim i%,str$Rand

14、omizen=Int(Rnd*31)+10 For i=1 To nstr=Chr$(Int(Rnd*26)+97)随机产生小写字母Text1.Text=Text1.Text&str Next iEnd Sub第36页,本讲稿共43页+开始时间Private Sub text2_gotfocus()t=TimeText3.Text=Time End Sub第37页,本讲稿共43页+打字速度Private Sub text2_keypress(keyascii As Integer)Dim dui%,cuo%,i%If Len(Text2)=n Then 键入满n个字母Text4.Text=Ti

15、meText5.Text=str(Int(n/DateDiff(s,t,Time)*100+0.5)/100)&字/秒Text2.Locked=True 四舍五入保留四舍五入保留两位小数两位小数第38页,本讲稿共43页+dateDiff函数+形式:dateDiff(要间隔日期形式,日期1,日期2)+作用:两个指定日期按日期形式求相差的日期。+日期形式:yyyy(年),q(季),m(月),y(一年的天数),d(日),w(一周的日数),ww(星期),h(时),n(分),s(秒)第39页,本讲稿共43页+准确率For i=1 To nIf Mid(Text1,i,1)=Mid(Text2,i,1)T

16、hendui=dui+1Elsecuo=cuo+1End IfNext iText6.Text=Int(dui/n*10000+0.5)/100&%显示准确率End IfEnd Sub第40页,本讲稿共43页下列程序代码在单击命令按钮时的输出结果Sub SS(ByVal X,ByRef Y,Z)X=X+1 Y=Y+1 Z=Z+1End SubPrivate Sub Command1_Click()a=1:b=2:c=3 Call SS(a,b,c)Print a,b,cEnd Sub1 3 4 第41页,本讲稿共43页单击窗体,执行以下程序,窗体第一行的输出结果为_,第二行的输出结果为_。Op

17、tion ExplicitPrivate x As Integer:Private y As IntegerPrivate Sub Form_Click()x=1:y=1 test Print x;yEnd SubSub test()Dim y As Integer Print x;y x=2:y=2End Sub1 02 1第42页,本讲稿共43页Private Sub Command1_Click()Dim x As Integer,y As IntegerDim n As Integer,z As Integerx=1:y=1For n=1 To 3 z=FirstFunction(x,y)Print n,zNext nEnd SubPrivate Function FirstFunction(x As Integer,y As Integer)As Integer Dim n As Integer Do While n=4 x=x+y n=n+1LoopFirstFunction=xEnd Function1 62 113 16 第43页,本讲稿共43页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com