作业帮 > 综合 > 作业

请问,我在VB里自己定义了一个函数,函数的输入变量为一个,函数计算结果为三个输出变量,请问怎么返回函数值

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 12:58:29
请问,我在VB里自己定义了一个函数,函数的输入变量为一个,函数计算结果为三个输出变量,请问怎么返回函数值
不好意思,刚学,不是太懂.我现在函数大概是这样的f(a,b),其中a,b是我自己输入的数值,然后通过函数f(a,b)计算之后,可以得到c,d,e这三个数值.我现在要把这三个数值c,d,e都输出来.
修订一下
如果你的返回值固定是3个,你可以传进去3个空的变量,然后函数就把返回结果放到这3个变量里了,因为函数默认是按内存地址传递的,所以执行完函数,那3个变量就是结果了
给你一个范例,你这样定义函数,复制以下代码直接可以看结果.你也可以用F8逐步分析
'函数部分
Function f(a,b,c,d,e)
'.处理过程得到三个值
c = 1
d = 2
e = 3
End Function
'调用函数
Private Sub Form_Load()
'赋初值a=?b=?,
a = 12
b = 23
f a,b,c,d,e
'下面就可以利用返回的,c,d,e了,原因传进去的cde是空值,是按内存地址传递的,所以当函数计算以后返回的是计算好的内存地址,所以传回来的就是返回值了
MsgBox c
MsgBox d
MsgBox e
End Sub
再问: 谢谢。那我现在a和b是按数值传递进去的,c,d,e也要按数值传递出来怎么操作呢?
再答: 不明白你的意思,你没有用我的试验一下吗 你的意思你的c,d,e定义为int或者long了,还是什么意思 还你用的是ByVal这个参数的语法,这样就不行了,必须前面不加ByVal或者加上ByRef类似于 Function f(a, b, c, d, e) 不加ByRef 是 Visual Basic 的缺省选项。 或者 Function f(ByVal a, ByVal b, ByRef c, ByRef d, ByRef e) 也就是cde必须是按地址传递
再问: 不好意思,只是刚好需要才用到VB,以前没学过,所以基本上不懂。我现在是一个方程,比较复杂,而随时有需要查数据,所以才做一个小计算软件。 我的输入值是组分,a和b,方程计算后有三个数据,压力c、温度d和密度e。做成小软件那种,输入组分a和b,窗口上就输出c、d和e。函数定义是这样的。 Function f(Byval a, Byval b),在函数里计算后,得到c、d和e,想把这三个数据输出来呵呵
再答: '修正一下函数参数 Function f(ByVal a, ByVal b, ByRef c, ByRef d, ByRef e) '处理过程 '处理过程结束 '....处理过程得到三个值赋值给cde,我这里假定赋值1,2,3,你的应该是具体的了 c = 1 d = 2 e = 3 End Function Private Sub Command1_Click() '我这里用一个按钮事件处理函数调用 '赋初值a=? b=?,你的可能是用文本框赋值的,我这里只是一个示例 a = 12 b = 23 '这里调用函数,注意加上了后面的cde f a, b, c, d, e '下面就可以利用返回的,c,d,e了,原因传进去的cde是空值,是按内存地址传递的,所以当函数计算以后返回的是计算好的内存地址,所以传回来的就是返回值了 '这里的cde已经有数值了,我这里仅是用弹窗显示,你可以改为赋值给文本框, MsgBox c MsgBox d MsgBox e End Function '说的不能再清楚了,你还是不理解,那你可以Q我, 我的273047005然后把你的程序传给我,我给你写一下