OVH Cloud OVH Cloud

Récursivité

9 réponses
Avatar
yan
Bonjour,

La récursivité n'existe pas en VB ?

Merci

9 réponses

Avatar
François Picalausa
Hello,

Montre nous ton code...
Si tu essaye une récursivité avec un Dir, pour énumérer les dossiers de ton
disque dur, effectivement, ça ne fonctionne pas parce que dir ne retient pas
entre deux appels ce qu'il faisait...
Mais si tu essaye de parcourir un arbre XML à partir de Microsoft XML (peu
import la version), la récursivité fonctionne sans problème :-)

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"yan" a écrit dans le message de
news:c5o4v9$aq8$
Bonjour,

La récursivité n'existe pas en VB ?

Merci


Avatar
Clive Lumb
"yan" a écrit dans le message de
news:c5o4v9$aq8$
Bonjour,

La récursivité n'existe pas en VB ?



Oh que oui !

Function Factorial(N As Double) As Double
If N = 1 Then
Factorial = 1
Else
Factorial = N * Factorial(N - 1)
End If
End Function

Clive
Avatar
yan
en fait c tout simple :


private function test() as boolean
...
test = test
enn function

et quand je mets 1 point d'arrêt sur "private function...", quand je passe
par "test = test", rien, ça me renvoie simplement la valeur actuelle de test
sans rentrer encore une fois dans la fonction.

est-ce qu'il faut mettre forcément un paramètre ?

merci


"yan" a écrit dans le message de
news:c5o4v9$aq8$
Bonjour,

La récursivité n'existe pas en VB ?

Merci




Avatar
François Picalausa
Hello!

test = test


Définit comme ici, ce sont deux variables.
Essaye
test = test()
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"yan" a écrit dans le message de
news:c5o5sp$p0o$
en fait c tout simple :


private function test() as boolean
...
test = test
enn function

et quand je mets 1 point d'arrêt sur "private function...", quand je
passe par "test = test", rien, ça me renvoie simplement la valeur
actuelle de test sans rentrer encore une fois dans la fonction.

est-ce qu'il faut mettre forcément un paramètre ?

merci


"yan" a écrit dans le message de
news:c5o4v9$aq8$
Bonjour,

La récursivité n'existe pas en VB ?

Merci




Avatar
ng
Salut,

Bin sur que si :) Ca serait un grave problème sinon car c'est qd mm pratique
:)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

yan a écrit :

Bonjour,

La récursivité n'existe pas en VB ?

Merci


Avatar
yan
c bon je viens de tilter, il fallait mettre "test=test()"

merci



"yan" a écrit dans le message de
news:c5o4v9$aq8$
Bonjour,

La récursivité n'existe pas en VB ?

Merci




Avatar
yan
oui, je viens de voir aussi, merci





"François Picalausa" a écrit dans le message de
news:
Hello!

> test = test
Définit comme ici, ce sont deux variables.
Essaye
test = test()
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"yan" a écrit dans le message de
news:c5o5sp$p0o$
> en fait c tout simple :
>
>
> private function test() as boolean
> ...
> test = test
> enn function
>
> et quand je mets 1 point d'arrêt sur "private function...", quand je
> passe par "test = test", rien, ça me renvoie simplement la valeur
> actuelle de test sans rentrer encore une fois dans la fonction.
>
> est-ce qu'il faut mettre forcément un paramètre ?
>
> merci
>
>
> "yan" a écrit dans le message de
> news:c5o4v9$aq8$
>> Bonjour,
>>
>> La récursivité n'existe pas en VB ?
>>
>> Merci




Avatar
Vincent Guichard
yan a écrit :
en fait c tout simple :


private function test() as boolean
...
test = test


Tu affecte la valeur de retour de ta fonction à la valeur de retour de
ta fonction, et non pas le retour de la fonction appelée. C'ets un peu
comme si tu avait fait:

private function test() as boolean
dim t as boolean
t=t
test = t
end function

Essaye plutot ceci:

private function test() as boolean
...
test = test() ' force l'appel de la fonction
end function

Remarque: A quoi peut bien servir ce code?


Vincent Guichard
Avatar
yan
c t juste pour simplifier



"Vincent Guichard" a écrit dans le message de
news:c5o6ot$ln5$
yan a écrit :
> en fait c tout simple :
>
>
> private function test() as boolean
> ...
> test = test
Tu affecte la valeur de retour de ta fonction à la valeur de retour de
ta fonction, et non pas le retour de la fonction appelée. C'ets un peu
comme si tu avait fait:

private function test() as boolean
dim t as boolean
t=t
test = t
end function

Essaye plutot ceci:

private function test() as boolean
...
test = test() ' force l'appel de la fonction
end function

Remarque: A quoi peut bien servir ce code?


Vincent Guichard