如何使用VBScript脚本语言编写一个函数,用来比较两组数之间的包含关系,并返回结果
使用VBScript脚本语言编写一个函数,用来比较两组数之间的包含关系,第一组("A","B","C")第二组("TA","TB","TC"),如果ABC中每两个都不相同...
使用VBScript脚本语言编写一个函数,用来比较两组数之间的包含关系,第一组("A","B","C")第二组("TA","TB","TC"),如果ABC中每两个都不相同,即A<>B<>C,则判断A、B、C在第二组("TA","TB","TC")中的包含数值(即如果ABC三个数都包含在第二组中就返回"3”如果有两个包含则返回"2",如果有一个包含则返回"1",没有就是0。
如果第一组ABC中有两个相同,则计算包含值最多只有0、1、2三种数值。
如果第一组ABC中三个都相同,则计算包含值只有两个选择0、1。
举例说明:
A=1 B=2 C=3 第二组数字为 232 则返回值为3
A=2 B=2 C=3 第二组数字为 232 则返回值为3
A=2 B=2 C=3 第二组数字为 252 则返回值为1
A=2 B=2 C=2 第二组数字为 232 则返回值为2
A=1 B=2 C=3 第二组数字为 342 则返回值为2
文件太长,接追问的
nTA=GetDataByIndex(nIndex,"TA")
nTB=GetDataByIndex(nIndex,"TB")
nTC=GetDataByIndex(nIndex,"TC")
End if
SumAT=ABS(SumAL(A,B,C)-SumAL(nTA,nTB,nTC))
End Function
开头是Public Function 结尾是 End Function 展开
如果第一组ABC中有两个相同,则计算包含值最多只有0、1、2三种数值。
如果第一组ABC中三个都相同,则计算包含值只有两个选择0、1。
举例说明:
A=1 B=2 C=3 第二组数字为 232 则返回值为3
A=2 B=2 C=3 第二组数字为 232 则返回值为3
A=2 B=2 C=3 第二组数字为 252 则返回值为1
A=2 B=2 C=2 第二组数字为 232 则返回值为2
A=1 B=2 C=3 第二组数字为 342 则返回值为2
文件太长,接追问的
nTA=GetDataByIndex(nIndex,"TA")
nTB=GetDataByIndex(nIndex,"TB")
nTC=GetDataByIndex(nIndex,"TC")
End if
SumAT=ABS(SumAL(A,B,C)-SumAL(nTA,nTB,nTC))
End Function
开头是Public Function 结尾是 End Function 展开
1个回答
展开全部
你这两组数是以什么形式出现的?是数组吗?
更多追问追答
追问
不是数组,是分开的三个数字的形式。
追答
VBScript没有这样的数据表示方式的,你可以把它转为数组,比如
a=1
b=2
c=3
a1=array(a,b,c) '第一组数转为数组a1
ta=2
tb=3
tc=2
a2=array(ta,tb,tc) '第二组数转为数组a2
然后你就可以调用我上次说的那个函数ArrComp来获得两组数的比较结果了。完整代码如下:
function ArrComp(arr1(), arr2())
s="|" & join(arr2,"|") & "|"
ArrComp=0
for i=0 to ubound(arr1)
if instr(s, "|" & arr1(i) & "|") then
ArrComp=ArrComp+1
s=replace(s, "|" & arr1(i) & "|", "|")
end if
next
end function
a=1
b=2
c=3
a1=array(a,b,c) '第一组数转为数组a1
ta=2
tb=3
tc=2
a2=array(ta,tb,tc) '第二组数转为数组a2
msgbox "数组a1在数组a2中的包含值为:" & ArrComp(a1,a2)
运行结果是3,完全符合你的题目中的要求,即:
A=1 B=2 C=3 第二组数字为 232 则返回值为3
你可以把a、b、c、ta、tb、tc换为其他数字试试看
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询