vb语言程序设计-vb第7章电子讲稿(编辑修改稿)内容摘要:

(2)有一个明确的结束递归的条件 (终止条件 ),否则过程将永远“递归”下去 过程的递归调用 可用下列的递归公式 1 n=1 n (n1)! n1 本递归中,终止条件是 n=1 n! = 例 采用递归方法求 n! (n0) Private Sub Form_Load() Dim n As Integer, m As Double Show n = Val(InputBox(输入 1~ 15之间的整数 )) If n 1 Or n 15 Then MsgBox 错误数据 , 0, 检查数据 End End If m= fac(n) Print n。 !=。 m End Sub Private Function fac(n) As Double If n 1 Then fac = n * fac(n 1) 39。 递归调用 Else fac = 1 39。 n=1时,结束递归 End If End Function 说明: 当 n1时,在 Fac过程中调用 Fac过程,然后 n减 1,再次调用 Fac过程,这种操作一直持续到 n=1为止。 例如,当 n=3时,求 Fac(3)变成求3 Fac(2),求 Fac(2)变成求 2 Fac(1),而 Fac(1)为 1,递归结束。 以后再逐层返回,递推出 Fac(2)及 Fac(3)的值 注意,在某次调用 Fac过程时并不是立即得到 Fac(n)的值,而是一次又一次地进行递归调用,到 Fac(1)时才有确定的值,然后通用过程逐层返回中依次算出 Fac(2)、 Fac(3)的值 Form_Load过程 m=Fac(3) Fac过程 调用 Fac(3)值 为 6 参数 n为 3 Fac=3*Fac(2) Fac过程 调用 Fac(2)值 为 2 参数 n为 2 Fac=2*Fac(1) Fac过程 调用 Fac(1)值 为 1 参数 n为 1 Fac=1 递归调用过程 (n=3) 来自 中国最大的资料库下载 求两个正整数 n和 m的最大公约数,解题方法见例 也可采用递归调用方法来求解, 递归终止条件是余数为 0 Private Sub Form_Load() Show m = Val(InputBox(输入 m的值 )) n = Val(InputBox(输入 n的值 )) Print m。 和。 n。 的最大公约数是:。 gys(n, m) End Sub Private Function gys(n, m) p = n Mod m If p = 0 Then 39。 终止条件 gys = m Else gys = gys(m, p) 39。 m→n,p→m, 再调用 End If End Function 例 用递归方法求两个正整数 n和 m的最大公约数 变量的作用域 (空间 )和生存期 (时间 ) 代码模块的概念 应用程序通常包括 窗体文件 (.frm)、模块文件 (.bas)和类模块 (.cls) 应用程序 工程文件 (.vbp) 窗体模块 文件 (.frm) Sub 过程 Function 过程 事件 过程 声明 部分 类模块 文件 (.cls) 标准模块 文件 (.bas) Sub 过程 Function 过程 声明 部分 Sub Main 过程 变量的作用范围 变量根据所处的位置或被定义不同,其作用范围也不同 局部变量、模块级变量和全局变量 1. 局部变量 在一个过程内部用 Dim或 Static声明的变量称为局部变量。 只能在本过程中有效。 在一个窗体中,不同过程中定义的局部变量 Private Sub Command1_Click() Dim Count As Integer Dim Sum As Integer . . . End Sub Private Sub Command2_Click() Dim Sum As Integer . . . End Sub 这两个同名变量 Sum没有任何联系 变量的作用域 模块级变量可以在一个窗体的不同过程中使用 在窗体模块的声明部分中声明该变量 如果用 Private或 Dim来声明,则该变量只能在本窗体 (或本模块 ) 以 Public声明的变量,允许在其他窗体和模块中引用 2. 模块级变量 全局变量可以被应用程序中任何一个窗体和模块直接访问。 全局变量要在标准模块文件 (.bas)中的声明部分用 Global或 Public语句来声明。 格式: Global 变量名 As Public 变量名 As 数据类型 3. 全局变量 生存期,也即变量能够保持其值的时间 分为 动态变量 和 静态变量 1. 动态变量 动态变量是指程序运行进入变量所在的过程时,才分配给该变量的内存单元,经过处理退出该过程时,该变量占用的内存单元自动释放,其值消失。 当再次进入该过程时,所有的动态变量将重新初始化。 使用 Dim关键字 在过程中声明的局部变量属于动态变量 变量的生存期 静态变量是指程序进入该变量所在的过程,经过处理退出该过程时,其值仍被保留,即变量所占的内存单元没有释放。 使用 Static关键字 在过程中声明的局部变量属于静态变量 例 使用 Static Sub语句的示例 Static Sub Subtest() Dim t As Integer 39。 t为静态变量 t = 2 * t + 1 Print t End Sub Private Sub Command1_Click() Call Subtest 39。 调用子过程 Subtest End Sub 1. 静态变量 运行后,多次单击命令按钮 Command1, 1 3 7 …… 将 Static Sub改为 Private Sub后,运行过程中多次单击命令按钮 Command1,执行结果为: 1 1 1 …… 多窗体处理 在多窗体程序中,每个窗体可以有自己的界面和程序代码,完成不同的操作 1. 添加窗体 通过“工程”菜单中的“添加窗体”命令来实现 2. 删除窗体 选择“工程”菜单中的“移除”命令 3. 保存窗体 选择“文件”菜单中的“保存”或“另存为”命令 4. 设置启动窗体 在“工程属性”对话框中设置 多窗体与 Sub Main过程 Load语句: UnLoad语句 Show方法: Hide方法: 隐藏窗体。 即不在屏幕上显示,但仍在内存 中,因。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。