首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

数组作为函数参数的有关问题

2012-03-17 
数组作为函数参数的问题现在一BYTE数组A(25),要求写一函数SUM(),通过此函数 将A数组中连续的某几个元素传

数组作为函数参数的问题
现在一BYTE数组A(25) ,要求写一函数SUM(), 通过此函数 将A数组中连续的某几个元素传入函数,而后将这几个元素的部分连续单元求和 并将结果通过参数F返回

SUMA的实现方式分两种,调用形式分别如下

1、call SUMA(A(),D,E,F) D为求和元素中的第一个元素的索引号,E为求和元素的个数 ,F存放求和结果 

1、call SUMA(A(3),8,F) 从A(3)开始的8个单元求和,F存放求和结果 这是调用形式,当然第一个参数也可能是A(5) A(6)等,第二个参数不一定是8,当然也可以是9,10等其他值 。


[解决办法]

VB code
Option ExplicitDim A(0 To 19) As IntegerPrivate Sub Command1_Click()    Me.Caption = CStr(funSum(A, 3, 10))End SubPrivate Sub Form_Load()    Dim intP As Integer    For intP = 0 To 19        A(intP) = CInt(Rnd * 100)    Next intPEnd Sub'***********************************************************************************************************'过程功能:求和'参数说明:B():源数组'        :intA:求和起点'        :intB:求和个数'返回说明:返回求和值'***********************************************************************************************************Private Function funSum(ByRef B() As Integer, ByVal intA As Integer, ByVal intB As Integer) As Long    Dim intP As IntegerOn Error GoTo errFun    funSum = 0    If UBound(B) - LBound(B) = 0 Then Exit Function '数组是空数组,退出函数    If intA < LBound(B) Then Exit Function          '求和起点小于数组的下限,不符合要求,退出函数    If (intA + intB + 1) > (UBound(B) - LBound(B) + 1) Then Exit Function '起点+长度超过数组范围,不符合要求,退出函数        For intP = intA To intA + intB - 1        funSum = funSum + B(intP)    Next intP    Exit FunctionerrFun:    funSum = 0End Function
[解决办法]
探讨

1、call SUMA(A(3),8,F) 从A(3)开始的8个单元求和,F存放求和结果 这是调用形式,当然第一个参数也可能是A(5) A(6)等,第二个参数不一定是8,当然也可以是9,10等其他值 。

是第二项,序号写错了 更正如下:

2、call SUMA(A(3),8,F) 从A(3)开始的8个单元求和,F存放求和结果 这是调用形式,当然第一个参数也可能是A(5) A(6)……

[解决办法]
你的只能用 C++、Java 等支持函数重载的高级语言才能实现。

VB中是不支持这样做的。

[解决办法]
探讨
现在一BYTE数组A(25) ,要求写一函数SUM(), 通过此函数 将A数组中连续的某几个元素传入函数,而后将这几个元素的部分连续单元求和 并将结果通过参数F返回

SUMA的实现方式分两种,调用形式分别如下

1、call SUMA(A(),D,E,F) D为求和元素中的第一个元素的索引号,E为求和元素的个数 ,F存放求和结果

1、call SUMA(A(3),8,F) 从A(……

热点排行