满意答案
Taina.秋
2014.02.19
采纳率:54% 等级:11
已帮助:3999人
虽然VB提供了常用的标准函数P71,可以使用这些标准函数来实现某些数学计算或数据类型的转换,但许多应用程序常常需要自己来定义函数,以实现某种特定的计算。
可以按下面的方式自己来构造(规定)一个函数:
Function 函数名(参数表) As 数据类型名
语句块
EndFunction
这里,函数名是程序设计者为函数指定的名称。参数表是对于函数需要的原始数据的类型一一地进行说明。As后的类型名,是说明函数的计算结果,即函数返回值的数据类型,函数计算完成后,VB自动地把函数返回值送到函数的调用点上,这样,程序的其他部分能对这个结果作进一步的处理,最终完成计算任务。
例20设计一个函数Leap,判断y年是否是闰年,若是,就返回1,否则,就返回0。
我们先构造一个函数Leap(Y):‘判断y年是否是闰年方法见课本P74的《问题和练习》第3题;
Function Leap(y AS Integer) As Integer
If y mod 100=0 Then ‘mod是求余数运算符,例:8 mod 5=3,见课本P72表4.2.1
If y mod 400=0 ThenLeap=1 Else Leap=O
Else
If y mod 4=0 Then Leap=1 Else Leap=0
EndIf
End Function
End Function之前的语句块,描述了函数的计算过程,在这些语句中,至少要有一个形如
函数名=表达式 ‘例如:上函数模块中的Leap=1、Leap=0
的语句,这样,表达式的计算结果才能作为函数的返回值,被VB送到函数的调用点上。
把“判断y年是否是闰年”这样一个计算过程从整个应用程序中分离出来,成为一个独立的模块(模块可以是一个函数,也可以是一个过程),这是一种模块化的程序设计方法。使用这种方法的好处是:
(1)在设计(构造)这个模块时,需要处理的计算任务比起整个应用程序来相对地要简单些,例如,在这里需要设计的计算过程仅仅是按一定的规则判断y年是否是闰年,并按规定返回O或1这两个结果之一,而不需要考虑数据y是怎么获得的,y年是闰年要进行怎样的处理,y年不是闰年又要进行怎样的处理等问题,这些是应用程序其他部分的任务。
(2)构造了一个程序模块后,在程序的各个部分中可以使用这个模块。
例如:下面我们要要编制一个完整的程序,输入一个年份y(设y>=1900),输出该年2月份的天数:
分析如下:
28 ‘y不是闰年;
2月份的天数:D2=
29 ‘y是闰年;
可先设D2=28 ,则:
IF y是闰年 then D2=D2+1
0 ‘y不是闰年;
可自定义一个函数:Leap(y)=
1 ‘y是闰年;
则:D2=D2+ Leap(2012) ‘上面我们已经构造一个函数Leap(Y)
因此,输出该年2月份的天数的子程序如下:
Sub Command1_Click()
Dim y AsInteger
Dim n AsString
n = InputBox("请输入年份:")
y = Val(n)
d2 = 28
d2 = d2 + Leap(y) '调用函数Leap(y),并把的返回值1或0,被VB送到函数的调用点
Text1.Text = d2
End Sub
00分享举报