Вы находитесь на странице: 1из 4

Public Function NOISUY(day1, day2, x, n) As Variant

Dim i As Integer
j=0
For i = 1 To n - 1
If (day1(i) - x) * (day1(i + 1) - x) <= 0 Then
j=i
End If
Next i
If j <> 0 Then
NOISUY = (x - day1(j)) * (day2(j + 1) - day2(j)) / (day1(j + 1) - day1(j))
+ day2(j)
Else: NOISUY = "FALSE"
End If

End Function

Public Function Xnmax(Xij, nam, n) As Variant

Dim i, j As Integer
Dim day(366) As Double
Dim sum(366) As Double
Dim s As Double
Dim max As Double

If nam Mod 4 = 0 Then


'Nam Nhuan
For i = 1 To 31
day(i) = Xij(i, 1)
Next i
For i = 32 To 60
day(i) = Xij(i - 31, 2)
Next i
For i = 61 To 91
day(i) = Xij(i - 60, 3)
Next i
For i = 92 To 121
day(i) = Xij(i - 91, 4)
Next i
For i = 122 To 152
day(i) = Xij(i - 121, 5)
Next i
For i = 153 To 182
day(i) = Xij(i - 152, 6)
Next i
For i = 183 To 213
day(i) = Xij(i - 182, 7)
Next i
For i = 214 To 244
day(i) = Xij(i - 213, 8)
Next i
For i = 245 To 274
day(i) = Xij(i - 244, 9)
Next i
For i = 275 To 305
day(i) = Xij(i - 274, 10)
Next i
For i = 306 To 335
day(i) = Xij(i - 305, 11)
Next i
For i = 336 To 366
day(i) = Xij(i - 335, 12)
Next i

For i = 1 To 366 - n + 1
s=0
For j = i To n + i - 1
s = s + day(j)
Next j
sum(i) = s
Next i
max = sum(1)
For i = 1 To 366 - n + 1
If max < sum(i) Then max = sum(i)
Next i
Xnmax = max

Else
'Nam thuong
For i = 1 To 31
day(i) = Xij(i, 1)
Next i
For i = 32 To 59
day(i) = Xij(i - 31, 2)
Next i
For i = 60 To 90
day(i) = Xij(i - 59, 3)
Next i
For i = 91 To 120
day(i) = Xij(i - 90, 4)
Next i
For i = 121 To 151
day(i) = Xij(i - 120, 5)
Next i
For i = 152 To 181
day(i) = Xij(i - 151, 6)
Next i
For i = 182 To 212
day(i) = Xij(i - 181, 7)
Next i
For i = 213 To 243
day(i) = Xij(i - 212, 8)
Next i
For i = 244 To 273
day(i) = Xij(i - 243, 9)
Next i
For i = 274 To 304
day(i) = Xij(i - 273, 10)
Next i
For i = 305 To 334
day(i) = Xij(i - 304, 11)
Next i
For i = 335 To 365
day(i) = Xij(i - 334, 12)
Next i

For i = 1 To 365 - n + 1
s=0
For j = i To n + i - 1
s = s + day(j)
Next j
sum(i) = s
Next i
max = sum(1)
For i = 1 To 365 - n + 1
If max < sum(i) Then max = sum(i)
Next i
Xnmax = max
'Xnmax = day(365)
End If

End Function

Public Function NOISUY2CHIEU(Zij, Xi, yj, x, y, sohang, socot) As Variant


'Dim Cv(1 To 200) As Double
'Dim a(1 To 200) As Double
Dim i, j As Integer
Dim z1, z2 As Double

'Tim vi tri Xi, Yj


j=0
Do
j=j+1
Loop Until ((x - Xi(j)) * (x - Xi(j + 1)) <= 0 Or j = socot)

i=0
Do
i=i+1
Loop Until ((y - yj(i)) * (y - yj(i + 1)) <= 0 Or i = sohang)
If (i = sohang Or j = socot) Then
NOISUY2CHIEU = "False"
Else
z1 = Zij(i, j) + (x - Xi(j)) * (Zij(i, j + 1) - Zij(i, j)) / (Xi(j + 1) - Xi(j))
z2 = Zij(i + 1, j) + (x - Xi(j)) * (Zij(i + 1, j + 1) - Zij(i + 1, j)) / (Xi(j + 1) -
Xi(j))
NOISUY2CHIEU = z1 + (y - yj(i)) * (z2 - z1) / (yj(i + 1) - yj(i))
End If
End Function

Вам также может понравиться