VB考试教程:过程之Function过程

VB考试教程:过程之Function过程,第1张

3、Function过程

VB包含内置的或内部的函数,还可用Function语句编写自己的Function过程。在定义了一个函数之后,可以像调用任何一个VB的内部函数一样使用它,即可以在任何表达式,语句或函数中引用它。

函数过程是标准模块中位中Function语句与End Function 语句之间的一系列语句。函数中的这些语句完成某些有意义的工作,一般是处理文本,进行输入或计算一个值。

通过将函数名与任何所需的参数一起置于一条程序语句中,可以调用该函数。换句话说,使用函数过程与使用内置函数(比如Time,Int或Str等)的方法完全相同。

每个函数完成一种服务,比如进行计算并返回一个值。

在标准模块中声明的函数在缺省的状态下是公用函数,它们可在任何事件中过程中使用。

(1)Function(函数)过程的定义

Function过程的定义格式:

[Public|Private|Friend|Static]Function 过程名[(参数列表)][As数据类型]

[程序段]

[过程名=表达式]

[Exit Function]

[程序段]

[过程名=表达式]

End Function

说明:

1)Function过程以Function开头,End Function 结束,之间是描述过程 *** 作的语句块,即“过程体”或“函数体”。格式中的“过程名”、“参数列表”、Public、Private、Friend、Static、Exit Function的含义与Sub过程相同。“As数据类型”是由Function过程返回的值的数据类型,如省略,则为Variant。

如:已知直角三角形两直角边的值,计算斜边,可定义一个Function函数。

Function hypotenuse(A as integer,B as integer) as string

hypotenuse=sqr(A^2+B^2)

End function

再例如:

Function BinarySearch(Lower,Upper As Integer) As Boolean

……

If Lower = Upper Then

BinarySearch = True

Exit Function

Else

BinarySearch = False '过程名=表达式

End If

……

End Function

2)调用Sub过程相当于执行一个语句,不返回值;而调用Function过程要返回一个值,因此可以像内部函数一样在表达式中使用。

在VB中调用Function过程的方法和调用任何内部函数的方法是一样的,如调用上面的“hypotenuse”函数:

 label1caption=hypotenuse(Cint(text1text),cint(text2text))

 strX=hypotenuse(width,height)

函数总是以该函数的名称返回给调用过程一个值。因此,函数中的最后一行语句往往是将函数的最终计算结果放入“过程名”中的赋值语句。例如,下文中的函数过程total1用来为某个工程计算,然后将结果赋值给total1名。

 Function total1(cost)

  t1=cost005

  t2=cost0015

  total1=t1+t2 '将结果赋值给Function函数total1。

 end function

由Function过程返回的值放在上述格式中的“表达式”中,并通过“过程名=表达式”把它的值赋给“过程名”,如果在Function过程中省略“过程名=表达式,则该过程返回一个默认值:数值函数过程返回0值;字符串函数过程返回空字符串;variat函数则返回empty。如果在返回对象引用的Function过程中没有将对象引用赋给name(通过set),则函数返回nothing。一般地,为了能使一个Function过程完成所指定的 *** 作,通常要在过程体中为“过程名”赋值。

3)前面讲过,过程不能嵌套。因此不能在事件过程中定义通用过程(包括Sub过程和Function过程),只能在事件的过程内调用通用过程。

(2)建立Function过程

前面提到的建立Sub过程的三种方法也可用来建立Function过程,只是当用第一种方法建立时,在对话框的“类型”栏内选择“函数”。

(3)调用函数过程

例如:编写一个求公约数(GCD)的函数过程。

程序如下:

Function gcd(ByVal x As Integer, ByVal y As Integer) As Integer

Do While y > 0

reminder = x Mod y

x = y

y = reminder

Loop

gcd = x

End Function

求公约数的方法:

两个数a、b,如果b能除尽a,则是这两个数的公约数(如6和3的公约数是3),否则:

GCD(a,b)=GCD(b,a Mod b)

例如:GCD(126,12)=GCD(12,126 Mod 12)=GCD(12,6)=6

下面介绍如何调用这个过程。

调用Function过程比较简单,可以像使用VB内部函数一样调用。因为Function过程返回一个值,所以完全可以将它看成一个函数,与内部函数(如Sqr,Str,Chr等)没什么区别,只不过内部函数由语言系统提供,而Function过程由用户自己定义。

python的函数有两种,一种是你问的

内置函数

。另一种是外置函数。

内置函数就是python自带的函数,像print

int

len这些函数,直接使用就可以。

但是在开发程序的过程中只有这些内置函数是不够用的。所以需要

程序猿

自己定义函数。

这些自己定义的函数也就是外置函数。

内置函数在C++或者C中没有听过啊 是不是指标准函数

内联函数的定于:

引入内联函数的目的是为了解决程序中函数调用的效率问题。

函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能和使用方法,而不必关心函数功能的具体实现;函数的引入可以减少程序的目标代码,实现程序代码和数据的共享。但是,函数调用也会带来降低效率的问题,因为调用函数实际上将程序执行顺序转移到函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移 *** 作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。特别是对于一些函数体代码不是很大,但又频繁地被调用的函数来讲,解决其效率问题更为重要。引入内联函数实际上就是为了解决这一问题。

在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来进行替换。显然,这种做法不会产生转去转回的问题,但是由于在编译时将函数休中的代码被替代到程序中,因此会增加目标程序代码量,进而增加空间开销,而在时间代销上不象函数调用时那么大,可见它是以目标代码的增加为代价来换取时间的节省。

内联函数的定义方法

定义内联函数的方法很简单,只要在函数定义的头前加上关键字inline即可。内联函数的定义方法与一般函数一样。如:

inline int add_int (int x, int y, int z)

{

return x+y+z;

}

在程序中,调用其函数时,该函数在编译时被替代,而不是像一般函数那样是在运行时被调用。

使用内联函数应注意的事项

内联函数具有一般函数的特性,它与一般函数所不同之处公在于函数调用的处理。一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换。在使用内联函数时,应注意如下几点:

1在内联函数内不允许用循环语句和开关语句。

2内联函数的定义必须出现在内联函数第一次被调用之前。

3本栏目讲到的类结构中所有在类说明内部定义的函数是内联函数。

是void函数。

返回类型,函数名在就是对于初学者要记住以后常用的几种函数的实现:比如排序,求公约数,因为这些在以后的章节中的学习会经常遇到。

在各类编程语言中,函数是一种过程,也称为子程序,它执行一个指定的运算或 *** 作。函数有内部函数或称标准函数,外部函数也即用户定义函数等。能被程序或主函数调用。C语言中,函数的形式分无参和有参两类。无参函数不带回或带回函数值。

闭包和高阶函数

函数编程支持函数作为第一类对象,有时称为闭包或者仿函数(functor)对象。实质上,闭包是起函数的作用并可以像对象一样 *** 作的对象。与此类似,FP 语言支持高阶函数。高阶函数可以用另一个函数(间接地,用一个表达式) 作为其输入参数,在某些情况下,它甚至返回一个函数作为其输出参数。这两种结构结合在一起使得可以用优雅的方式进行模块化编程,这是使用 FP 的最大好处。

MATLB的函数源程序都存放在MATLAB安装文件夹内的toolbox文件夹下,这些函数都是m文件,可以用搜索文件的方法搜索函数名找到这个函数的m文件。 也可以在MATLAB主界面内输入 edit 函数名 ,用M-file Editor打开这个函数的源程序。

VB里的函数分内部函数和外部函数两类内部函数有数学函数和类型转换函数等外部函数指user-defined function(用户自定义函数),即由用户创建的,可返回一个值的代码。用户自定义函数包括以 PRG 扩展名保存的独立的程序,以及程序中的过程和函数。如果你的机器装有VISUAL STUDIO的MSDN参考文档资料,你可从中学习VB的各种函数及用法祝成功

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/13493203.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存