Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1278 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  récursion en VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

récursion en VBA

n°1691363
julien1324
Posté le 23-02-2008 à 19:58:54  profilanswer
 

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  

mood
Publicité
Posté le 23-02-2008 à 19:58:54  profilanswer
 

n°1691384
billgatesa​nonym
Posté le 23-02-2008 à 21:13:27  profilanswer
 

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.

n°1691403
julien1324
Posté le 23-02-2008 à 22:08:46  profilanswer
 

billgatesanonym a écrit :

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.


 
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


Message édité par julien1324 le 23-02-2008 à 23:08:31
n°1691449
tegu
Posté le 24-02-2008 à 10:00:35  profilanswer
 

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.


Message édité par tegu le 24-02-2008 à 10:01:06
n°1691482
julien1324
Posté le 24-02-2008 à 13:02:04  profilanswer
 

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


Message édité par julien1324 le 24-02-2008 à 15:45:59
n°1691565
dreameddea​th
Posté le 24-02-2008 à 17:56:16  profilanswer
 

Normal, dans la fonction c'est la ligne suivante qui est foireuse

Code :
  1. sommeDesCarres = sommeDesCarres + n ^ 2


il faut y mettre i et non pas n

Code :
  1. sommeDesCarres = sommeDesCarres + i ^ 2

 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  récursion en VBA

 

Sujets relatifs
[VB/VBA/VBS] Macro Visio en export WEBProbleme VBA - Deux listes Combobox
D'une requête SQL au VBA[VB/VBA/VBS] Excel vba et Windows 64 bit: problème de shell ?
Timer VBA < 1s[Résolu]Sélectionner mes zones de texte avec VBA pour excel
EXCEL VBA - Addition de cellule et de variable ![RESOLU] VBA EXCEL - remplissage tableau
[VBA ou Excel] RechercheV inversée (RESOLU)[VBA] : ma macro bloque tout :(
Plus de sujets relatifs à : récursion en VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR