
Вычислить с помощью рекурсии
P= (1+sin 0.1)*(1+sin 0.2)…(1+sin 10)
Ребята, помогите плизз
Public Function test(ByVal Param As Single) As Single
test = 1 'начальное значение
If (Param = 0) Then Exit Function 'выход из рекурсии
test = (1 + Sin(Param)) * test(Round(Param - 0.1, 1))
End Function
Public Function test2() As Single
Static Param As Single
test2 = 1
Param = Round(Param + 0.1, 1)
If (Param > 10) Then
Param = 0
Exit Function
End If
test2 = (1 + Sin(Param)) * test2()
End Function
?test(10), test2()
1,729905E-14 1,729904E-14
Public Function p(n As Double, k) As Double
p = 1
For i = n To k Step 0.1
res = 1 + Sin(i)
p = p * res
Next
End Function
Private Sub Command1_Click()
Print p(0.1, 10)
End Sub
alibek писал(а):Это не рекурсия.
Amed писал(а):У Вас, Daz, не рекурсия, а просто цикл...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11