récursion en VBA - VB/VBA/VBS - Programmation
Marsh Posté le 23-02-2008 à 21:13:27
Où est la difficulté ?
Relisez votre cours et examinez d'autres fonctions du même genre (par exemple factoriel), et cela vous aidera surement plus que d'avoir la solution toute cuite.
Marsh Posté le 23-02-2008 à 22:08:46
billgatesanonym a écrit : Où est la difficulté ? |
Bonsoir
je n'ai en aucun cas demandé une solution "toute cuite" j'ai simplement voulu savoir davantage sur le fonctionnement de vba et la récursion ....
par contre lorsque j'execute la fonction j'ai ce message : erreur de complilation , nom ambigu detecté
Julien
Marsh Posté le 24-02-2008 à 10:00:35
Marrant, d'habitude on a le code du programme mais pas le message d'erreur.
La récursivité est un principe de programmation qui n'est en rien lié à VBA.
Si tu en comprends le principe, il n'y a pas de problème particulier à l'adapter en VBA.
Donne ton code et dis-nous où la compil plante.
Marsh Posté le 24-02-2008 à 13:02:04
bonjour ,
je crois que j'ai compris l'erreur , en fait j'ai changé le nom de ma fonction en sub et ça a marché mais je ne sais pas si c'est correcte :
Function sommeDesCarresRec(ByVal n As Long) As Long
If n > 1 Then
sommeDesCarresRec = n ^ 2 + sommeDesCarresRec(n - 1)
Else
sommeDesCarresRec = n
End If
End Function
Sub sommeDesCarresRe()
MsgBox sommeDesCarresRec(5)
End Sub
Function sommeDesCarres(ByVal n As Long) As Long
Dim i As Long
For i = 1 To n
sommeDesCarres = sommeDesCarres + n ^ 2
Next i
End Function
Sub sommeDesCarre()
MsgBox sommeDesCarres(5)
End Sub
la premiere étant recursive et la seconde itérative .
Par contre , est ce qu'il existe une maniere de comparer les deux valeurs que les fonctions renvoient dans les deux versions (j'ai eu 55 pour la première et 125 pour la deuxieme ) ?
C'est normal si la deuxieme me renvoie 125, comme c'est les mêmes fonctions à priori ?
Julien
Marsh Posté le 24-02-2008 à 17:56:16
Normal, dans la fonction c'est la ligne suivante qui est foireuse
Code :
|
il faut y mettre i et non pas n
Code :
|
Marsh Posté le 23-02-2008 à 19:58:54
Bonjour ,
Je débute sur Vba et je voudrais écrire une fonction (enfin 2 fcts) une récursive et l'autre itérative nommée sommeDesCarresRec qui renvoie la somme des carrés des entiers compris entre 1 et n
je n'arrive pas à passer du schema mathematique au programme vba ...
merci de m'aider
Julien