Question sur une methode

Bonjour

j'ai réalisé le bout de code suivant pour calculer les termes d'une suite du second ordre de type: Un+2=2Un+1 + 3.Un (rien d'exceptionnel) ,puis je dire que c'est écrit en mode récursif ? j'avoue me mélanger les pinceaux avec le mode "itératif"

Merci.

Function suite2(x As Integer, y As Integer, nbr As Integer) As String
compteur = compteur + 1
If compteur = nbr + 1 Then GoTo 1
u = 2 * x + 3 * y
stockage = stockage & " " & u
y = x
x = u
suite2 x, y, nbr
1: suite2 = stockage
'commentaires: les variables "compteur" et "stockage" sont de type public
End Function

Sub test_suite_2nd_ordre()
Dim a As Integer
Dim b As Integer
Dim c As Integer
b = CInt(InputBox("Saisir la valeur de Uo"))
a = CInt(InputBox("Saisir la valeur de U1"))
c = CInt(InputBox("Saisir le nbr de valeurs à obtenir:"))
MsgBox suite2(a, b, c)
End Sub

En vous remerciant.

Bonjour,

Essaie comme ça :

Function suite2(x As Integer, y As Integer, nbr As Integer) As String
Dim u, stockage

If nbr < 1 Then GoTo 1
u = 2 * x + 3 * y
stockage = stockage & " " & u
y = x
x = u
suite2 x, y, nbr - 1
1: suite2 = stockage
'commentaires: les variables "compteur" et "stockage" sont de type public
End Function

Bonjour,

La fonction s'appelle elle même, c'est donc récursif (?)

Perso, j'aurais fait:

Function suite2(x As Integer, y As Integer, nbr As Integer) As String
compteur = compteur + 1
If compteur <= nbr Then
    suite2 = 2 * x + 3 * y & " " & suite2(2 * x + 3 * y, x, nbr)
End If
'commentaires: la variable "compteur" est de type public
End Function

A+

Edit : Bonjour oxydum

Merci pour vos, reponses

Salut Algoplus,

Dans ce cas...

Function suite2(x As Integer, y As Integer, nbr As Integer) As String
  If nbr > 0 Then
    suite2 = 2 * x + 3 * y & " " & suite2(2 * x + 3 * y, x, nbr - 1)
  End If
End Function

Rechercher des sujets similaires à "question methode"