- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CH6-过程
Visual Basic程序设计第6章 过程-子程序和函数 主要内容 Vb2005应用程序是由过程组成的。事件过程是对对象事件做出响应的程序段。 应用程序的整体结构 每个模块一个文件(注意文件扩展名) 模块由若干过程(子程序或函数)组成 事件过程在窗体模块中 通用过程 有时,多个不同的事件过程可能需要使用一段相同的程序代码,可以把这一段代码独立出来,作为一个过程,即通用过程。 两种通用过程: 子程序过程(Sub过程) 函数过程(Function过程) 自定义子程序 [Public|Private] Sub 子程序名([参数及其类型列表] ) 程序代码 End Sub 【例】定义一个计算球体积的Sub过程。 Sub tj(ByVal r As Single) Dim v As Single v = 4 / 3 * 3.14 * r ^ 3 End Sub 子程序的调用 定义子程序和函数是为了在其他部分使用。 格式: Call 子程序名(参数列表) 或者 子程序名 参数列表 注意:不加Call时,参数列表不能加括弧! 例如,调用子程序Swap交换变量a与b的值: Swap a, b (不能写成 Swap(a,b)!) 效果相当于: t = a : a = b : b = t 例子 Public Sub Swap(x, y) Dim t t = x: x = y: y = t End Sub Private Sub Command1_Click() Dim a As Integer Dim b As Integer a = Val(Text1.Text) b = Val(Text2.Text) Call Swap(a, b) Text1.Text = a Text2.Text = b End Sub 随堂练习(学生思考) 编写一个sub过程,完成三个自然数从小到大的排序。并在事件过程中调用。 自定义函数 [Public|Private|Static] Function 函数名 _ ([参数及其类型列表] )[As 类型] 程序代码 (含: 函数名=返回值表达式) End Function 例:定义求直角三角形斜边的函数 Hyp(x,y) Public Function Hyp (x!,y!) As Single Hyp = Sqr (x ^ 2 + y ^ 2) End Function 调用函数 Public Function Hyp(x!, y!) As Single Hyp = Sqr(x ^ 2 + y ^ 2) End Function Private Sub Command1_Click() Dim a!, b! a = Val(Text1.Text) b = Val(Text2.Text) Label3.Visible = True Label3.Caption = 该直角三角形的斜边值是: Hyp(a, b) End Sub 函数与子程序的区别 函数必须有返回值,子程序没有。 如果不指明函数的类型(即其返回值的类型),则其类型是变体型(Variant型) 函数用在表达式中,子程序不能。 如果不需要函数的返回值,函数可以当作子程序调用。 子程序和函数的参数 形参-形式参数,定义部分所使用的参数。 实参-实在(实际)参数,调用时传递给形参的参数。 例如:下面的x和y是形参,a和b是实参。 参数的传递方式 在子程序或函数的调用过程中,实参内容传递给相应的形参可以有两种方式:传址和传值 传址(ByRef) :将实参地址传给形参。 传值(ByVal) :将实参的值传给形参。 区别: 传址时,形参与实参是同一个内存区域,因而实参随形参的改变而改变。 传值时,形参被单独分配内存并获得实参的值,因而形参的改变并不改变实参的值。 传值和传址的区别 实例:正确选择参数传递方式 ‘求直角三角形的斜边 Private Sub Root(ByVal a, ByVal b, c) c = Sqr(a ^ 2 + b ^ 2) End Sub ‘调用: …… Root 3 , 4, z Print z ‘打印结果 5 例:带4个参数的Hyp函数(教材91页) ‘用函数求直角三角形的斜边 Public Function Hyp(ByVal x#,ByVal y#,z#) As Single z=x*y/2 ‘z=三角形面积 Hyp = Sqr(x ^ 2 + y ^ 2) ‘函数值为斜
文档评论(0)