子过程与函数过程_第1页
子过程与函数过程_第2页
子过程与函数过程_第3页
子过程与函数过程_第4页
子过程与函数过程_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1页,共40页,2023年,2月20日,星期六6.1子过程

6.1.1子过程的定义6.1.2子过程的调用第2页,共40页,2023年,2月20日,星期六6.1.1子过程的定义

【实例6.1】定义一个名为num的子过程,该子过程用来计算1+2+…+n的和。第3页,共40页,2023年,2月20日,星期六PrivateSubsum(mAsInteger,sAsLong)Fori=1Toms=s+iNextiEndSub(2)自定义名为sum的Sub过程过程名形式参数形式参数不能通过用户的动作触发此过程第4页,共40页,2023年,2月20日,星期六子程序过程的一般定义格式[Static][Private|Public]Sub子程序名

[(形参列表)]

语句组1 [ExitSub]

语句组2EndSub

已知条件、计算结果的个数及类型提前结束子程序过程只能被本窗体中的过程调用能被程序中的所有过程调用第5页,共40页,2023年,2月20日,星期六6.1.2子程序过程的调用

【实例6.2】程序运行时单击“1+……+100”

按钮,在标签中显示1至100的和;单击“1+……+n”

按钮,由用户在输入框中输入n值,并在标签中显示1至n的和。第6页,共40页,2023年,2月20日,星期六操作步骤(1)设计界面第7页,共40页,2023年,2月20日,星期六PrivateSubsum(mAsInteger,sAsLong)Fori=1Toms=s+iNextiEndSub(2)自定义名为sum的Sub过程防止越界用户输入的n值累加和值第8页,共40页,2023年,2月20日,星期六PrivateSubcmdSum1_Click()DimssAsLong

sum100,ss lblShow.Caption="1+……+100="&ssEndSub(3)编写cmdSum1的Click事件过程第9页,共40页,2023年,2月20日,星期六PrivateSubcmdSum2_Click()DimnAsInteger:DimssAsLonglblShow.Caption=""n=InputBox(……)Ifn>1Then

Callsum(n,ss) lblShow.Caption=……ElseMsgBox……EndIfEndSub(4)编写cmdSum2的Click事件过程第10页,共40页,2023年,2月20日,星期六子程序过程的调用格式(两种形式)Call

过程名[(

实际参数)]过程名[实际参数]1、必须有确定值2、个数、类型必须与形参一一对应第11页,共40页,2023年,2月20日,星期六6.2函数过程

6.2.1函数过程的定义6.2.2函数过程的调用第12页,共40页,2023年,2月20日,星期六6.2.1函数过程的定义

【实例6.3】定义一个函数过程,计算n!。第13页,共40页,2023年,2月20日,星期六PrivateFunctionfac(mAsInteger)AsDoubleDimsAsDouble

s=1Fori=1Toms=s*iNexti

fac=sEndFunction求m!通过函数名返回阶乘值防止数据溢出(2)自定义名为fac的函数过程函数名形参返回值类型第14页,共40页,2023年,2月20日,星期六函数过程的一般定义格式[Static][Private|Public]Function函数名

[(形参列表)][As类型]

语句组1 [函数名=返回值

ExitFunction]

语句组2

函数名=返回值EndFunction

必有该语句提前结束函数第15页,共40页,2023年,2月20日,星期六6.2.2函数过程的调用

【实例6.4】窗体中有1个标签和3个命令按钮(控件数组)。程序运行时,单击命令按钮,在标签中显示所求的阶乘。第16页,共40页,2023年,2月20日,星期六操作步骤(1)设计界面第17页,共40页,2023年,2月20日,星期六PrivateFunctionfac(mAsInteger)AsDoubleDimsAsDouble

s=1Fori=1Toms=s*iNexti

fac=sEndFunction求m!通过函数名返回阶乘值防止数据溢出(2)编写名为fac的函数过程第18页,共40页,2023年,2月20日,星期六PrivateSubcmdCal_Click(IndexAsInteger)DimiAsInteger:DimsumAsDoubleSelectCaseIndexCase0lblCal.Caption="5!="&fac(5)Case1lblCal.Caption="7!="&fac(7)Case2Fori=1To11Step2sum=sum+fac(i)NextilblCal.Caption=……&sumEndSelectEndSub求5!求7!求1!+3!+…+9!+11!(3)编写命令按钮控件数组的Click事件过程第19页,共40页,2023年,2月20日,星期六函数过程的调用格式变量名=函数名(实际参数)1、必须有确定值2、个数、类型必须与形参一一对应第20页,共40页,2023年,2月20日,星期六6.3变量定义位置的确定

6.3.1在本过程内使用的变量6.3.2在本窗体内使用的变量6.3.3在所有窗体内使用的变量第21页,共40页,2023年,2月20日,星期六6.3.1在本过程内使用的变量

【实例9.9】单击“和”按钮,求两随机数的和,同时使“平均值”按钮可用;单击“平均值”按钮,求两随机数的平均值,且使“平均值”按钮禁用。

第22页,共40页,2023年,2月20日,星期六操作步骤(1)设计界面第23页,共40页,2023年,2月20日,星期六PrivateSubcmdSum_Click()DimaAsInteger,bAsIntegera=Int(Rnd*100)b=Int(Rnd*100)lblShow.Caption=a&"+"&b&"="&a+bcmdAve.Enabled=TrueEndSub过程级变量(2)编写cmdSum的Click事件过程第24页,共40页,2023年,2月20日,星期六PrivateSubcmdAve_Click()DimaAsInteger,bAsIntegerlblShow.Caption="("&a&"+"&b&")/2="&(a+b)/2cmdAve.Enabled=FalseEndSub不是前面的变量过程级变量只在其所在的过程中起作用(3)编写cmdAve的Click事件过程计算结果错!第25页,共40页,2023年,2月20日,星期六6.3.2在本窗体内使用的变量

【实例9.10】修改实例9.9,使其能够正确计算平 均值。第26页,共40页,2023年,2月20日,星期六操作步骤(1)在“通用”|“声明”部分定义窗体级变量

DimaAsInteger,bAsInteger窗体级变量第27页,共40页,2023年,2月20日,星期六(2)修改cmdSum的Click事件过程PrivateSubcmdSum_Click()DimaAsInteger,bAsIntegera=Int(Rnd*100)b=Int(Rnd*100)lblShow.Caption=a&"+"&b&"="&a+bcmdAve.Enabled=TrueEndSub窗体级变量第28页,共40页,2023年,2月20日,星期六PrivateSubcmdAve_Click()DimaAsInteger,bAsIntegerlblShow.Caption="("&a&"+"&b&")/2="&(a+b)/2cmdAve.Enabled=FalseEndSub窗体级变量(3)修改cmdAve的Click事件过程第29页,共40页,2023年,2月20日,星期六6.3.3在所有窗体内使用的变量

【实例9.11】在窗体1单击“查看”按钮,在标签中显示变量a的值;单击“进入”按钮进入窗体2。单击窗体2中“测试”按钮,在标签中显示a的值;单击“返回”按钮切换到窗体1。

第30页,共40页,2023年,2月20日,星期六操作步骤(1)设计界面第31页,共40页,2023年,2月20日,星期六(2)定义全局变量a在工程中添加标准模块Module1.bas。【工程】|【添加模块】

第32页,共40页,2023年,2月20日,星期六全局变量,各窗体中通用第33页,共40页,2023年,2月20日,星期六PrivateSubcmdShow_Click()

a=Int(Rnd*32767)lblShow.Caption=aEndSub(3)编写窗体1中命令按钮的Click事件过程PrivateSubcmdIn_Click()frmEx9_11_2.ShowfrmEx9_11_1.HideEndSub第34页,共40页,2023年,2月20日,星期六PrivateSubcmdTest_Click()txtShow.Text=aIfa=""ThenMsgBox"a为空值"EndSub(4)编写窗体2中命令按钮的Click事件过程PrivateSubcmdReturn_Click()frmEx9_11_2.HidefrmEx9_11_1.ShowEndSub第35页,共40页,2023年,2月20日,星期六6.4静态变量的使用

【实例9.12】单击“开始”按钮,在图像框中轮流显示哭脸和笑脸,同时该按钮的标题变为“暂停”;单击“暂停”按钮,图像框停止变换,同时该按钮的标题变为“开始”。第36页,共40页,2023年,2月20日,星期六操作步骤(1)设计界面第37页,共40页,2023年,2月20日,星期六PrivateSubcmdCtrl_Click()IfcmdCtrl.Caption="开始"ThentmrShow.Enab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论