IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Soucis Code récursif [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Dessinateur vrd
    Inscrit en
    Janvier 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur vrd
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2015
    Messages : 46
    Points : 53
    Points
    53
    Par défaut Soucis Code récursif
    Bonsoir a tous,

    je rencontre un petit soucis sur un code du cours VB.Net

    j'ai bien compris que "récursive" rappelle la procédure ou on se trouve" par contre j'ai un code que je ne comprends pas.

    pour le For,c'est parfaitement compris
    On l'appelle Calcul(10)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Function Calcul(N As Integer)
    Dim total As Integer
    For i= N to 1 Step-1
    total=total + i
    Next i
    Calcul=total
    End Function
    parcontre pour la récursivité ... gros gros soucis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Avec la récursivité:
    Function Calcul(N As Integer)
    Dim total As Integer
    If N>0 Then
    total= N+ Calcul (N-1)
    End If
    Calcul= total
    End Fonction
    Je suis un peu perdu ...

    Normalement ces deux codes retournent le même résultat.

  2. #2
    Membre du Club
    Homme Profil pro
    Dessinateur vrd
    Inscrit en
    Janvier 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur vrd
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2015
    Messages : 46
    Points : 53
    Points
    53
    Par défaut
    Je crois que je viens de comprendre mon erreur ...

  3. #3
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Déroule le code "à la main" (ou en pas à pas à l'aide du débogueur) tu comprendras mieux
    exemple :
    appel de Calcul(3): 3 est-il supérieur à 0 ? oui -> on assigne 3 + Calcul(2) à total
    il faut donc exécuter Calcul(2)

    appel de Calcul(2): 2 est-il supérieur à 0 ? oui -> on assigne 2 + Calcul(1) à total
    il faut donc exécuter Calcul(1)

    appel de Calcul(1): 1 est-il supérieur à 0 ? oui -> on assigne 1 + Calcul(0) à total
    il faut donc exécuter Calcul(0)

    appel de Calcul(0): 0 est-il supérieur à 0 ? non -> on renvoie total (donc 0 vu que c'est la valeur par défaut d'un Integer)

    on a fini Calcul(0) on retourne à l'appelant soit Calcul(1) ; total se voit donc assigner 1 + 0 ' = 0 et on renvoie total

    on a fini Calcul(1) on retourne à l'appelant soit Calcul(2) ; total se voit donc assigner 2 + 1 ' = 3 et on renvoie total

    on a fini Calcul(2) on retourne à l'appelant soit Calcul(3) ; total se voit donc assigner 3 + 3 ' = 6 et on renvoie total

    on a fini Calcul(3) on retourne à l'appelant (par exemple le Main) ; et si l'on récupère le résultat de Calcul(3) dans une variable, celle-ci vaudra donc 6
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  4. #4
    Membre du Club
    Homme Profil pro
    Dessinateur vrd
    Inscrit en
    Janvier 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur vrd
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2015
    Messages : 46
    Points : 53
    Points
    53
    Par défaut
    @Sehnsucht

    Encore mieux que mon bout code a la main !! je me complique trop la vie. En voyant les instruction comme tu le fais, c'est beaucoup plus compréhensible.

    C'est vrai que je n'utilise pas le pas à pas du débogeur, a tord ...

    merci pour ta réponse !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. souci code php sur hostname et formulaire
    Par raparationtech dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2014, 16h14
  2. Soucis code javascript
    Par Esperence dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2007, 21h43
  3. Soucis CODE (Débutant)
    Par matt8-5 dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2006, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo