Помогите превратить....

Ответить
marusik
Сообщения: 1
Зарегистрирован: 26 сен 2009, 14:47

26 сен 2009, 14:55

Помогите преврать процедуру в функцию и процедуру, нужно в процедуре с помощю функции посчитать P(t)...
Public Sub Dani()
Dim i As Integer, j As Integer
Dim A(2 To 6) As Single, B(2 To 6) As Single, C(2 To 6) As Single, D(2 To 6) As Single, Ch(2 To 6) As Single
Dim t() As Single, krok As Single, P() As Single, Ikon As Single
For j = 2 To 6
A(j) = Sheets("1").Cells(j, 4).Value
B(j) = Sheets("1").Cells(j, 5).Value
C(j) = Sheets("1").Cells(j, 6).Value
D(j) = Sheets("1").Cells(j, 7).Value
Ch(j) = Sheets("1").Cells(j, 3).Value
Next j
krok = Sheets("2").Cells(1, 5).Value
Ikon = Fix((9 / krok) + 2)
ReDim t(2 To Ikon) As Single
ReDim P(2 To Ikon) As Single
Sheets("2").Range("A2:A" & Fix((9 / Ikon) + 2)).ClearContents
Sheets("2").Range("B2:B" & Fix((9 / Ikon) + 2)).ClearContents
t(2) = 8
For i = 3 To Ikon
t(i) = t(i - 1) + krok
Sheets("2").Cells(i, 2).Value = Round(t(i), 2)
If i = Ikon Then
If Sheets("2").Cells(i, 2).Value <> 17 Then
Sheets("2").Cells(i + 1, 2).Value = 17
End If
End If
Next i
Sheets("2").Cells(2, 2).Value = t(2)
For i = 2 To Ikon
For j = 2 To 5
If t(i) >= Ch(j) And t(i) <= Ch(j + 1) Then
P(i) = A(j) + B(j) * (t(i) - Ch(j)) + C(j) * ((t(i) - Ch(j)) ^ 2) + D(j) * ((t(i) - Ch(j)) ^ 3)
Cells(i, 1) = P(i)
End If
If i = Ikon Then
If Sheets("2").Cells(i, 1).Value <> P(i) Then
P(i) = A(5) + B(5) * (17 - Ch(5)) + C(5) * ((17 - Ch(5)) ^ 2) + D(5) * ((17 - Ch(5)) ^ 3)
Sheets("2").Cells(i + 1, 1).Value = P(i)
End If
End If
Next j
Next i
End Sub
Ответить