请人翻译一下这2段VB函数!急急急!

来源:百度知道 编辑:UC知道 时间:2024/06/29 22:42:43
Private Function slq3(ByRef z As Variant, ByVal n As Integer, ByVal m As Integer, ByVal u As Single, ByVal v As Single) As Single

Dim i, j, l, k As Integer
Dim ip, iq As Integer
Dim B(2), h, w As Single
Dim nn As Integer

On Error Resume Next

nn = 3
'seek ip
ip = CInt(u) - 1
If (ip < 0) Then ip = 0
If (ip > n - 2) Then ip = n - 2
'seek iq
iq = CInt(v) - 1
If (iq < 0) Then iq = 0
If (iq > m - 2) Then iq = m - 2

'cal b(3)
For i = 0 To nn - 1
B(i) = 0#
For j = 0 To nn - 1
h = z(ip + i, iq + j)
For k = 0 To nn - 1

If (k <> j) Then
h = h * (v - yAxis(iq + k)) / (yAxis(iq + j) - yAxis(iq + k))
End If

Next k
B(i) = B(i) + h

首先声明一下,我是学文科的,不太知道你要求什么,但是根据程序本身呢,可以做如下解释,便于你碰到实际的数据时,可以代入看一下:

Private Function slq3(ByRef z As Variant, ByVal n As Integer, ByVal m As Integer, ByVal u As Single, ByVal v As Single) As Single
Rem 这段代码中,变量取名太简单了,看不太懂哦,涉及到温度,会不会跟发热有关哦?解释一下程序
Rem 大体上,代入的值为,z是一个二维数组,n和m是求slq3时,对z的两个维度做下标限制的,会求出ip和iq,z的一维的下标从ip到ip+nn-1,二维的下标从iq到iq+nn-1,v是纵坐标值,u是横坐标值
Rem 第一部分是将u取整后减1,赋值给ip,如果ip值不在[0,n-2]区间内,则分别赋值为0或n-2,iq也是类似
Rem 第二部分是计算三个b值的(当nn是3时),h是中间量,值从数组z()中读取,读出来一次,就和yAxis那一串的值相乘(同时用到v值),相乘nn次,最后附加给当前的b,使b1、b2、b3跟纵坐标值yAxis产生关联
Rem 第三部分是求slq3(这个不知是什么),但求法是这样的,b值已经出来了,所以,又用中间量h,去和xAxis那一串的值相乘,相乘nn次,最后附加给中间量w,使b1、b2、b3跟横坐标值xAxis产生关联
Rem 最后求出来的slq3,其实是b1、b2、b3的和

Private Function tmpFir(ByVal tmp0 As Integer, ByVal tmp1 As Integer, ByVal tmp2 As Integer) As Single
Rem 输入三个温度值的,返回一个标准温度值,当第一个温度和第二个温度均不是0时,按第一个式子处理,否则,将第三个温度值当成标准温度值返回

Private Function Thickness(ByVal X As Integer, ByVal Y As Integer, ByVal tmp As Integer) As Single