永发信息网

怎么在VB语言中给函数过程传递参数?

答案:5  悬赏:0  手机版
解决时间 2021-08-17 04:52
我编写的一段程序在VB语言中给函数过程传递参数?
Private Sub Form_Click()
Dim s As Integer, x As Integer, y As Integer
Dim n, p, q As Integer
s = 5
x = 2
y = 3
a = myfunc(s, x, y)
Print "第" & 5 & "项是"; a
End Sub
Function myfunc(s As Integer, x As Integer, y As Integer)
If s = 1 Then
myfunc = x
ElseIf s = 2 Then
myfunc = y
Else
myfunc = myfunc(s - 2) + myfunc(s - 1)
End If
End Function
最佳答案

Private Sub Form_Click()
 Dim s As Integer
 Dim x As Integer
 Dim y As Integer
 s = 5
 x = 2
 y = 3
 a = myfunc(s, x, y)
   Print "第" & 5 & "项是:" & a
End Sub
Function myfunc(ByVal s As Integer, ByVal x As Integer, ByVal y As Integer)
   If s = 1 Then
    myfunc = x
 ElseIf s = 2 Then
    myfunc = y
 Else
    myfunc = myfunc(s - 2, x, y) + myfunc(s - 1, x, y)
End If
End Function
上述的代码在遍历中,其中有五次是符合计算要求的


第一次的值是:2


第二次的值是:3


第三次的值是:3


第四次的值是:2


第五次的值是:3


    即2+3+3+2+3=13

全部回答

Private Sub Form_Click() Dim s As Integer, x As Integer, y As Integer Dim n, p, q As Integer s = 5 x = 2 y = 3 a = myfunc(s, x, y) Print "第" & 5 & "项是"; a End Sub Function myfunc(s As Integer, x As Integer, y As Integer) As Long If s = 1 Then myfunc = x ElseIf s = 2 Then myfunc = y Else myfunc = myfunc + (s - 2) + (s - 1) End If End Function

给函数过程传递实参 有两种方式 一种是传地址  (by ref)另一种是传值(by val),如果采用传地址那么 结果 实参和形参 都一样了,也就是在一些程序中,不可以用。 传值就不影响了。下面举例说明怎么传

private function(by val,x as integer,y as integer)as integer  '这里我建立了一个function 函数过程 形参x是整型数,形参y也是整型数。算出来的最后结果也是整型数。

s=x+y  '这里把 x+y 赋给了s

end function

你想要调用的时候 就用下面两种语句都可以

一 function 2,3   二call function (2,3) 注意这里把实参 2和三分别传给了 x和y,调用了function过程来计算结果是 s=2+3     ,现在是就赋值为5了。

Option Explicit

Private x, y As Integer 'x为第一项值,y为第二项值

Private Sub Form_Click()     Dim s, a As Integer         s = 5     x = 2     y = 3         a = myfunc(s)     Print "第" & s & "项是" & a End Sub Function myfunc(ByVal s As Integer)     If s = 1 Then     myfunc = x     ElseIf s = 2 Then     myfunc = y     Else     myfunc = myfunc(s - 2) + myfunc(s - 1) '递归调用     End If End Function

你的程序有点小错误,帮你改好了。

定义变量有多余的,变量a未定义,这是一个递归的调用,

调用时,参数的个数要相等,你这一句:myfunc = myfunc(s - 2) + myfunc(s - 1)

才给了一个参数,看我该好的正确的代码:


Private Sub Form_Click() Dim s As Integer, x As Integer, y As Integer Dim a As Integer s = 5 x = 2 y = 3 a = myfunc(s, x, y) Print "第5项是"; a End Sub Function myfunc(s As Integer, x As Integer, y As Integer) If s = 1 Then myfunc = x ElseIf s = 2 Then myfunc = y Else myfunc = myfunc(s - 2, x, y) + myfunc(s - 1, x, y) End If End Function

图:


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有关于大明龙权的
dnf32级紫刀任务在哪
寻一个rpg图
问道现在做什么最赚钱啊?
求爱你一辈子藏头诗谢谢
东安县永州东安中心市场地址在哪里啊
我在江苏无锡新区网上交易被骗了4000,怎么办
QQ飞车里面有个歌。唱的是什么 a say let me
高三了、怎么才能静下心来好好学习啊 ?
汽车专业英语翻译!求助!
有没有谁在礼意久久送礼网买过东西,他们的物
发朋友早安励志的句子,八个字的珍惜友谊的励
z星座是按阴历还是阳历啊
广州哪里能做割包皮手术(要多少钱)
如图,直线ad是线段bc的垂直平分线 求证角abd
推荐资讯
月老红线怎么才能有
龙之谷的窗口模式的辨析率是多少才能正常玩啊
印花税和成交费还有佣金怎么算?
怀孕了应该注意些什么呢
摩尔庄园SMC
沙井哪里招聘普工
怎么学习知道好
南岳区衡阳母婴世家这个地址在什么地方,我要
潜水钟与蝴蝶经典语句,蝴蝶和花的诗
《史记》的介绍狂收集ing!
鱼肝油会致癌吗
哪个淘宝买东西最便宜,在淘宝如何买东西比较
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?