VB function过程函数调用问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 08:27:11
输入M和N的值,求等式C=N除以M乘以括号N减M的值
在窗体上放置2个文本框TXT1和TXT2.分别接收M和N的值,
放置命令按钮CMD1以确认输入,在放置一标签LAB,显示提示信息和表达式的结果.

private sub cmd1_click()
dim m as integer,n as integer
m=val(txt1.text): n=val(txt2.text)
if cstr(m)<>txt1.text or cstr(n) <> txt2.text then
lab.caption="M和N的值不能为空或含有非数字符号!"
exit sub
elseif m<0 or n<0 then
lab.caption="M和N的值均不能为负数"
exit sub
elseif m>n then
lab.caption="M的值不能超过N的值!"
exit sub
end if
lab.caption=""+cstr(cmn(m,n))
end sub

function cmn(cm as integer,cn as integer) as single
cmn=fact(cn)/(fact(cm)*fact(cn-cm))
end function

function fact(k as integer) as single
if k=o or k=1 then
fact=1
else
dim f as single,i as integer
f=1
for i= 2 to k
f=f*i
next i
fact=f
end if
end function

这是书的的教程例题,我看不懂的就是这2段代码,麻烦高

'按钮的单击事件
private sub cmd1_click()
'声明整形变量m 整形变量 n
dim m as integer,n as integer
'将txt1文本数值化后赋值到m txt2同样赋值到n
m=val(txt1.text): n=val(txt2.text)
'判断输入的是否为数字或为空
if cstr(m)<>txt1.text or cstr(n) <> txt2.text then
'显示出错信息
lab.caption="M和N的值不能为空或含有非数字符号!"
'退出子过程
exit sub
'否则执行下面的判断
elseif m<0 or n<0 then
lab.caption="M和N的值均不能为负数"
exit sub
elseif m>n then
lab.caption="M的值不能超过N的值!"
exit sub
end if
'判断完毕 调用处理函数
lab.caption=""+cstr(cmn(m,n))
end sub

'函数 cnm 传入形参 整形 cm 整形 cn 返回类型 单精度浮点
function cmn(cm as integer,cn as integer) as single
' 调用fact函数 最终将返回结果进行返回
cmn=fact(cn)/(fact(cm)*fact(cn-cm))
end function

'函数fact 形参 整形k 返回类型 单精度浮点
function fact(k as integer) as single
'判断传入值是否等于0或1
if k=o or k=1 then