第7章过程解析.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章过程解析

内 容 7.1 过程的概念 7.2 函数过程 7.3 子程序过程 7.4 参数传递 7.5 递归 7.6 变量、过程的作用域 7.7 常用算法(三) 7.1 过程的概念 7.1.1 引例 分析:根据求组合数的公式,这里需要3次使用计算阶乘的运算来计算组合数,而每一次运算使用For-Next循环。 编写程序代码如下: Private Sub Command1_Click() Dim n As Integer, m As Integer, i As Integer Dim fn As Long, fm As Long, fn_m As Long, c As Long n = Val(Text1.Text) 输入n m = Val(Text2.Text) 输入m 7.1.1 引例 fn = 1 For i = 1 To n 求n的阶乘 fn = fn * i Next i fm = 1 For i = 1 To m 求m的阶乘 fm = fm * i Next i 7.1.1 引例 fn_m = 1 For i = 1 To n – m 求n-m的阶乘 fn_m = fn_m * i Next i c = fn / fm / fn_m 计算组合数C(n,m) Text3.Text = c End Sub 7.1.1 引例 从以上程序代码可以看出: (1)程序中计算阶乘的代码重复了3次。 (2)这3段代码具有相同的功能和结构,只是所用变量、循环的执行次数不同。 可以采用以下方法解决: (1)把重复使用的、具有相同功能和结构形式的程序段编写成类似于系统标准过程一样的用户自定义过程。 (2)在需要时可以像使用标准过程一样调用它。 7.1.1 引例 根据题意,将计算阶乘的代码段定义为一个函数过程Fact,然后在命令按钮的单击事件过程中3次调用Fact完成计算组合数的任务。 定义求k的阶乘的函数 Public Function Fact(ByVal k As Integer) As Long Dim i As Integer, f As Long f = 1 For i = 1 To k 求k的阶乘 f = f * i Next I Fact = f End Function 7.1.1 引例 Private Sub Command1_Click() Dim n As Integer, m As Integer, c As Long n = Val(Text1.Text) 输入n,m m = Val(Text2.Text) c = Fact(n) / Fact(m) / Fact(n - m) 调用函数Fact计算组合数C(n,m) Text3.Text = c End Sub 7.1.1 引例 从以上程序代码中可以看出,使用自定义过程进行程序设计的优点在于: (1)简化程序设计 将重复执行的操作写成过程后,程序变得更简洁,用户如同使用Visual Basic 内部函数一样,在需要执行此操作的地方调用此过程。过程定义一次,可以多次复用。 7.1.1 引例 (2)便于调试和维护 将一个庞大的程序划分为若干个独立的逻辑单元,调试每个单元的工作量将远远小于调试整个程序的工作量。当需要更新程序功能时,只需要改动相关过程即可。 7.1.2 过程 在结构化程序设计中,通常把一个大的程序按照功能划分为若干小的程序,每个小的程序完成一个确定的相对独立的功能,称这些小的程序为下层模块。如果把Visual Basic的应用程序的整个工程称为“程序”,则在很多情况下要把程序分成若干较小的具有相对独立功能下层模块,Visual Basic称这些模块为过程。 7.1.2 过程 在Visual Basic中,过程一般分为事件过程和通用过程两种。 通用过程又可分为4种:分别是以Sub关键字开始的Sub(子程序)过程、以Function关键字开始的Functi

文档评论(0)

441113422 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档