下面是一个自行编制的内部函数 Lex,其中的第一个参数代表数据表中满足条件的行数减一,第二个参数为各行相同的一个数据,后面的参数从为表中满足条件的各行中提取四列的数据顺序填入。由于行数(即第一 个参数)是不确定的,也就是说,函数的参数量是不确定的,
如:Output.Show(Functions.Execute("Lex",0,6,4,85,86,89)) 计算结果为 84.4
Output.Show(Functions.Execute("Lex",1,6,4,85,86,89,2,96,99,98.5))计算结果为93.2
Output.Show(Functions.Execute("Lex",2,6,4,85,86,89,2,96,99,98.5,4,95.6,98.8,97))计算结果为97.2
上面举例为1、2、3行的情况下计算方式,但在不确定行数情况下请问怎么调用这个函数?
Dim i As Integer = args(0)
Dim d As Single = args(1)
Dim Lex As Single
Dim t() As List(of Single)
Dim l() As List(of Single)
Dim ttotal As Single = 0
Dim Ltotal As Single = 0
For k As Integer = 0 To i
ttotal = ttotal + args( 2 + 4 * k)
Ltotal = Ltotal + args( 2 + 4 * k) * 10^(0.1 * (args( 3 + 4 * k) + args( 4+ 4 * k) + args( 5 + 4 * k)) / 3)
Next
Lex = 10 * Math.log10(d / 5 * 10^( 0.1 * (10 * Math.log10(Ltotal / ttotal) + 10 * Math.log10(ttotal / 8))))
Return Format(Lex,"#0.0")
[此贴子已经被作者于2019/4/24 19:43:33编辑过]