【VB教学】第十七节 函数与递归
一、教学目标:
1、 理解函数的产生
2、 能自定义函数
3、 理解递归法
二、教学重点:
1、 自定义函数
2、 递归法
三、所需课时:2课时
四、教学过程:
(一)、复习
(二)、认识函数
绝对值函数
1、函数是怎么运行的?就像是一个黑箱子,输入一个参数,返回一个值。而黑箱子里面的功能是开发VB的时候就编写好的。那我们能不能不用这个函数来编写绝对值呢?
求一个数的绝对值?
A=val(text1.text)
B=abs(a)
Text2.text=str(b)
If a<0 then
abs=-a
Else
abs=a
End if
2、那为什么要使用函数呢?1、方便,多次调用2、不容易出错。
3、但VB的函数是有限的,有时候当我们碰到一些功能的代码需要多次调用,我们就希望有相应的函数来调用,可是却怎么找也找不到。那怎么办呢?我们可以自己来写函数。
(三)、自定义函数
1、比如说较大值,没有这样的函数。
2、自己写,首先定义输入的两个变量。今天我们就学着编写函数。
先编写这个求最大值的函数。大家先告诉我,输入几个变量,一般输出是一个值。
我们要输入2个变量,应该我们可以让别的任意代码调用,所有可以变量名是那个都无所谓。我们这边定义M,N。接着我们定义返回值类型,这边我们需要通过函数名返回。我们定义函数类型为integer.
3、定义好了以后就可以编写里面的功能了。
4、在回过头来看看整个函数的调用。
其实,在VB里面,我们做abs的时候,就是做了这个判断。只是,VB的开发人员在设计VB的时候,把这个判断打包在一起,方便我们自己调用。我们使用这个函数的时候,只要把变量a的值传递给黑箱子,黑箱子做好判断以后就一起把abs的值传递出来,其实我们也可以把 abs这个函数名看成是一个变量,并赋值给b。
5、这就是整个函数的调用过程。但是毕竟vb的函数是有限的。有时候我们喜欢出现的函数,它却没有,比如说求两个数较大数的max函数。我们每次求较大数的时候就需要把排断语句写一遍。很麻烦。那我们能不能也写成函数的形式呢?
可以。
今天我们就开始学习自定义函数,自己来定义函数。
Private function max(a ,b as integer) as integer
If a>b then
Max=a
Else
Max=b
End function
(四)、递归法
1、 概念:
若在一个函数出现调用本身的应用,则称它们是递归的
7!=7*6!
n!=n*(n-1)!
0 1 1 2 3 5 8 13 21
F(n)=F(n-1)+F(n-2)
2、 注意事项:
对于一个递归定义而已,除了要定义递归的方式(即如何递归)外,还必须定义递归的终止条件(即如何停止递归),否则递归将永无止境的进行下去。
(五)、小结
新建函数的方法
打开代码编辑窗口
“工具-添加过程”
选择“函数”,输入函数名
调用自定义函数的方法
首先要建立自定义函数
在事件过程中赋值语句、打印语句中调用
自定义函数是结构化程序设计的重要方面,使程序模块化