Co to rekurencja? Poczytaj tu: http://pl.wikipedia.org/wiki/Rekurencja
Rekurencji można użyć do obliczenia np. silni:
Function Silnia(n As Long) As Long
If n < 0 Then
Err.Raise 10050, , "Nieprawidlowy argument": Exit Function
ElseIf n = 1 Or n = 0 Then
Silnia = 1
Exit Function
Else
Silnia = n * Silnia(n - 1)
End If
End Function
Sub ObliczSilnie()
MsgBox Silnia(3)
End Sub
Wywołanie funkcji występuje w jej kodzie, z innym argumentem. Zmniejszanie argumentu n o jeden będzie następować aż n będzie równe 1. Wówczas z mocy definicji silnia(1)=1 i następuje obliczenie wartości silni.
W przypadku obliczeń rekurencyjnych konieczny jest tzw, warunek stopu, który zapewni zatrzymanie wywołań rekurencyjnych. W przeciwnym przypadku nastąpi przepełnienie stosu komputera. W naszym przypadku warunkiem stopu jest tu wartość n=1.
Cytat:czy ktoś mógłby wyjaśnić na łamach forum, najlepiej z przykładem, co to jest i jak użyć rekurencji w VBA.
Z góry dziękuje |