【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、  注意事项:

对于一个递归定义而已,除了要定义递归的方式(即如何递归)外,还必须定义递归的终止条件(即如何停止递归),否则递归将永无止境的进行下去。


 

 

(五)、小结

新建函数的方法

打开代码编辑窗口

“工具-添加过程”

选择“函数”,输入函数名

 

调用自定义函数的方法

首先要建立自定义函数

在事件过程中赋值语句、打印语句中调用

 

自定义函数是结构化程序设计的重要方面,使程序模块化

 

posted @ 2008-12-11 12:44  jesonpeng  阅读(315)  评论(0编辑  收藏  举报