- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
形参与实参类型形式的对应关系 形参(形式参数) 实参(实在参数) 变量名 变量、常数、表达式、数组元素、对象 数组名 数组 在过程定义时,若形参名前面设置有关键字“ByVal”,则指定了它所对应的实参是按值传递的。按值传递参数是把实参的值制作一个副本传递给形参,然后实参与形参之间的联系就终止了,被调过程在形参所在的存储单元中操作此副本,当过程调用结束后,释放形参所在的存储空间,因此,过程中形参的任何改变都不会影响到实参。 在定义过程时,若形参名前面没有关键字ByVal,即形参名前面缺省修饰词,或有“ByRef”关键字时,则指定了它是一个按地址传递的参数。按地址递参数是把实参的地址传递给形参,在过程的调用过程中,形参与实参共用同一个存储单元,对形参的任何操作就是对实参的操作。所以,当过程调用结束后,形参改变,对应的实参也会随之改变。 由于Visual Basic有两种不同的参数传递方式,所以在实际应用中尤其要注意参数传递方式的正确选择,否则就会产生造成错误的副作用。 在按地址传递参数方式中,形参的值改变后对应实参的值也跟着发生变化,有可能对程序的运行产生不必要的干扰。 定义过程时,Visual Basic中允许把数组作为参数。 声明数组参数的格式如下: 形参数组名( )[As数据类型] 形参数组只能是按地址传递的参数。 在Visual Basic中也可以把对象作为参数向过程传递,即将窗体或控件作为过程的参数。在形参表中,把形参变量的类型声明为“Control”,就可以向过程传递控件。在形参表中,把形参变量的类型声明为“Form”,则可以向过程传递窗体。注意,对象参数的传递只能是按地址传递。 在一个过程(Sub过程或Function过程)中调用另外一个过程,称为过程的“嵌套调用”。而过程直接或间接地调用其自身,则称为过程的“递归调用”。 主程序 … 调用子过程1 … 结束 子过程1 … 调用子过程2 … End Sub 子过程2 … … End Sub 图6-11 过程嵌套调用执行过程 递归是指用自身的结构来描述自身,以实现层次数据结构的查询和访问。用递归概念来描述的算法就称为递归算法。递归算法常用于递归调用方面,即子过程或函数自己调用自己。Visual Basic允许一个自定义子过程或函数过程在过程体(又称子程序体)的内部调用自己,这样的子过程或函数就叫递归过程或递归函数。 很多问题可以用递归算法求解。例如,有些问题的定义形式本身就是递归的,如阶乘函数和裴波拉契数列(Fibonacci数列)等;有些数据结构,如二叉树、广义表等,由于结构本身固有的递归特性,所以对它们的操作可以递归进行;还有一类问题,虽然问题本身没有明显的递归结构,但用递归技术求解比其他方法更容易,如最经典的汉诺塔问题和八皇后问题等。由于递归算法省略了程序设计中的许多细节操作,简化了程序设计过程,使得在求解许多复杂问题时,采用递归算法比不用递归算法要简单得多,并且程序结构清晰、易读,正确性容易得到验证,因此,掌握递归程序设计方法很有必要。 编写递归过程要注意:递归过程必须有一个结束递归过程的边界条件(又称为终止条件或边界条件),此时递归过程是有限递归。例如,上面求N!的递归函数的边界条件是N = 0 Or N = 1。若一个递归过程无边界条件,它则是一个无穷递归过程。 变量与过程的作用域是指变量与过程有效的作用范围,即用来标明在程序的哪些地方,这些变量名、过程名才有意义。两种基本的作用域是局部的(私有)和全局的(公有)。 1.模块级过程 模块级过程是指在某个窗体模块或标准模块内,过程定义的前缀关键字是Private的函数或子程序过程。这类过程只能被本窗体(在本窗体内定义)或本标准模块(在本标准模块内定义)中的过程调用。 2.全局级过程 全局级过程是指在某个窗体或标准模块内,过程定义的前缀关键字是Public的函数或子程序过程,当前缀关键字缺省,则被默认是全局的。全局级过程可供该应用程序的所有窗体和所有标准模块中的过程调用。 1.过程级变量 在过程中声明的变量是过程级变量,其作用范围仅限于该过程。也就是说,只有在声明它们的过程中才能访问或改变该变量的值,而这些变量仅在这个过程之中才有效。过程级变量又称为局部变量。 2.模块级变量 若要使一个变量可作用于同一个模块内的多个过程,则应在窗体模块或标准模块的声明部分使用Private或Dim语句声明该变量。这样的变量就是模块级变量或窗体级变量。其作用范围是定义它的模块,模块内的所用过程都可以引用它们,但其他模块却不能访问这些变量。 3.全局变量 凡是在窗体或标准模块的通用声明段中用Public语句声明的变量都是全局变量。全局变量的变量名和变量值在整个程序
您可能关注的文档
- Visual Basic.NET程序设计夏敏捷电子教案及源代码 第10章.ppt
- Visual Basic.NET程序设计夏敏捷电子教案及源代码 第11章.ppt
- Visual Basic.NET程序设计夏敏捷电子教案及源代码 第12章.ppt
- Visual Basic.NET程序设计与应用徐振明电子教案 第1章.ppt
- Visual Basic.NET程序设计与应用徐振明电子教案 第2章.ppt
- Visual Basic.NET程序设计与应用徐振明电子教案 第3章.ppt
- Visual Basic.NET程序设计与应用徐振明电子教案 第4章.ppt
- Visual Basic.NET程序设计与应用徐振明电子教案 第5章.ppt
- Visual Basic.NET程序设计与应用徐振明电子教案 第6章.ppt
- Visual Basic.NET程序设计与应用徐振明电子教案 第7章.ppt
- Visual Basic程序设计 教学课件 作者 黄津津 第7章 文 件.ppt
- Visual Basic程序设计 教学课件 作者 黄津津 第8章 程序调试.ppt
- Visual Basic程序设计 教学课件 作者 黄津津 第9章 菜单与多窗体设计.ppt
- Visual Basic程序设计 教学课件 作者 黄津津 第10章 数据库应用基础.ppt
- Visual Basic程序设计 教学课件 作者 解凯 陈如琪 第7章 常用内部控件.ppt
- Visual Basic程序设计 教学课件 作者 解凯 陈如琪 第8章_数据文件.ppt
- Visual Basic程序设计 教学课件 作者 解凯 陈如琪 第10章_访问数据库.ppt
- Visual Basic程序设计 教学课件 作者 解凯 陈如琪 第二章 VB语言基础.ppt
- Visual Basic程序设计 教学课件 作者 解凯 陈如琪 第九章 菜单程序设计.ppt
- Visual Basic程序设计 教学课件 作者 解凯 陈如琪 第六章 VB过程.ppt
文档评论(0)