17自定义函数

17自定义函数

ID:37828522

大小:25.50 KB

页数:3页

时间:2019-06-01

17自定义函数_第1页
17自定义函数_第2页
17自定义函数_第3页
资源描述:

《17自定义函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、自定义函数一、教学目标   理解自定义函数的概念;学会自己编写自定义函数;学会使用自定义函数二、教学重点和难点   重点:自定义函数的概念和语法;自定义函数的调用难点:自定义函数的语法三、教学过程1、概述函数和过程极为相似,实际上函数也是一种过程,故有时也称为函数过程。函数和过程的区别在于函数带有返回值,而过程不带返回值。函数分为标准函数和自定义函数,标准函数又称内部函数,是VB内置的,如Abs(),Sqr(),Len(),MsgBox()等。自定义函数是由用户建立的。2、引入新课既然有标准函数

2、,为什么还要自定义函数呢?标准函数定义了一般问题的解决方法,例如求字符串长度、截取字符串等,但许多问题单靠标准函数无法解决。例如Val()函数只能取出字符串“123A456”中的“123”,而后三位数字则无法取出。有时候我们需要从一个字符串中取出它包含的所有数字,这是就可以自定义一个函数实现这个功能。3、自定义函数的语法  [Public

3、Private]Function<函数名>([参数列表])[As类型]     局部常量、变量定义     语句组     函数名=返回值EndFunctio

4、n参数格式:[ByVal

5、ByRef]变量名[()]As变量类型说明:与常量变量一样,函数名也应符合常量变量的命名规则。Private指明函数为专用的,即其访问权限仅限于本窗口或本模块。Public关键字使得整个应用程序均能访问此函数。“As类型”指定函数返回值的数据类型。“函数名=返回值”用来确定函数的返回值。【例1】从一个字符串中取出它包含的所有数字。【程序】rivateFunctionGetNum(ByValstrStringAsString)AsStringDimiAsIntegerDi

6、mstrNumCharsAsStringDimstrCharAsString'用循环语句依次判断字符串中的每个字符是否为字符Fori=1ToLen(strString) strChar=Mid(strString,i,1) IfIsNumeric(strChar)Then   strNumChars=strNumChars&strChar EndIf '返回字符串中包含的数字字符 GetNum=strNumCharsNextiEndFunction4、函数的调用格式一:变量=函数名(参数)格式二

7、:Call函数名(参数)格式三:函数名参数【例2】使用例1的自定义函数从字符串“123A456”中取出所有数字。【程序】s=GetNum(“123A456”)运行后变量s的值为“123456”5、自定义过程  [Public

8、Private]Sub<子过程名>([参数列表])     局部常量、变量定义     过程语句组EndSub前面用到的事件过程和这里的定义非常相似,请同学们把两者对比,指出它们的不同之处。事件过程PrivateSubCommand1_Click() DimaAsInteg

9、er a=100 PrintaEndSub子过程和函数本质是一样的,在VB中往往将函数看作特殊的子过程,只不过子过程用“Sub”关键字定义而函数用“Function”关键字定义;函数可以有返回值,而子过程没有。【例3】斐波那契数列第20个数是多少?【问题分析】斐波那契数列第一个数为1,第二个数为1,从第三个数开始为前两个数之和,即斐波那契数列为1,1,2,3,5,8,13,……【程序一】使用一般方法实现PrivateFunctionFb(ByValintNumAsInteger)AsIntege

10、rDimiAsIntegerDimintCurNumAsIntegerDimintPerNum1AsIntegerDimintPerNum2AsIntegerintPerNum1=1intPerNum2=1Fori=3TointNum intCurNum=intPerNum1+intPerNum2 intPerNum1=intPerNum2 intPerNum2=intCurNumNextiFb=intCurNumEndFunctionPrivateSubCommand1_Click() Pri

11、nt"斐波那契数列第20个数为:";Fb(20)EndSub【程序二】用递归法实现PrivateFunctionFb(ByValintNumAsInteger)AsInteger IfintNum=1OrintNum=2ThenFb=1 Else   Fb=Fb(intNum-1)+Fb(intNum-2) EndIfEndFunctionPrivateSubCommand1_Click() Print"斐波那契数列第20个数为:";Fb(20)EndSub在递归法中,函数Fb()自己调用了自己

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。