首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
实例3.8使用可选参数
编写一个用于计算两个实数的和以及平均值的子过程,该子过程具有一个可选参数,在调用子过程时,如果不提供与可选参数对应的实参,或实参的值为0,则在窗体上只打印两个数的和;如果提供了一个不为0实参,则在窗体上还将打印出两个数的平均值。
具有可选参数的子过程的代码如下:
Private Sub(x As Single,y As Single,Optional n As Boolean=0)
Dim s As Single,A As Single
s=x=y
A=S/2
If n=False Then
Print“总和为:”& S
Else
Print“总和为:”& S
Print“平均值为:”& A
End If
End Sub
在窗体的Click事件过程中调用子过程Sum.代码如下:
Private Sub Form_Click()
Print “不提供与可选参数对应的实参”
Sun 6,9
Print “提供与可选参数对应的实参,并且实参为0:”
Sun 6,9,0
Print 空行
Print “提供与可选参数对应的实参,并且实参不为0:”
Sun 6,9,1
End Sub
运行程序,单击窗体,结果如图3.25所示。
递归是推理和问题求解的一种强有力方法,原因在于许多对象,特别是数学研究对象具有递归的结构。简单地说,如果通过一个对象自身的结构来描述或部分描述该对象就称为递归。最简单而易于理解的一个例子是阶乘的递归定义。如果以函数f(n〕表示自然数n的阶乘的道,则有定义:
递归定义使我们能够用有限的语句描述一个无穷的集合。本例描述一个无穷的集合只用了两个语句。
VB程序设计语言允许一个过程体有调用自身的语句,称为递归调用。也允许调用另一过程,而该过程又反过来调用本过程,称为间接递归调用。这种功能为求解具有递归结构的问题提供了强有力手段,使程序语言的描述与问题的自然描述完全一致,因而使程序易于理解,易于保证和维护。例如,对于上面的n阶乘的递归定义,可以写出相应的VB函数过程,如下面的实例3.9.这个过程的推理(计算)路线与原来函数的(递归)数学定义完全一致。
实例3.9求n阶乘的VB函数过程
Private Function F(byval n As Integer) As Integer
If n=1 Then
F=1
Else
F=n*F(n-1)
End If
End Function
让我们来跟踪这个程序的计算过程,令n=4调用这个函数,用下面的形式来表示递归求解的过程:
(1)F(4)=4*F(3) n=4调用函数过程F(3)
(2)F(3)=3*F(2) n=3调用函数过程F(2)
(3)F(2)=2*F(1) n=2调用函数过程F(1)
(4)F(1)=1 n=1求的F(1)的值
(5)F(2)=2*1=2 回归,n=2,求得F(2)的值
(6)F(3)=3*2=6 回归,n=3,求的F(3)的值
(7)F(4)=4*6=24 回归,n=3,求得F(4)的值
上面第1步到第4步求出F(1)=1的步骤称为递推,从第4步到第7步求出F(4)=4*6的步骤称为回归。
从这个例子可以看出,递归求解有两个条件:
给出递归终止的条件和相应的状态。
在本例中递归终止的条件是n=1,状态是F(1)=1.
2.给出递归的表述形式,并且这种表述要向着终止条件变化,在有限步内达到终止条件。
在本例中,当n>l时,给出递归的表述形式为F(n)=n*F(n-1).函数值F(n)用函数值F(n-1)来表示。参数的值向减少的方向变化,在第n步出现终止条件n=1。
相关推荐:北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |