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

Lua Discussion :

Fonction récursive, aide compréhension d'exemple


Sujet :

Lua

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Fonction récursive, aide compréhension d'exemple
    Bonjour à tous !


    Voici un bout de code en lua que j'ai trouvé sur le web.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    local function recursive( counter, limit)
        counter = counter + 1
        print("_ "..counter)
        if counter < limit then 
            recursive( counter, limit )
        end
        print("| "..counter)
    end
     
    recursive( 0, 5 )

    voici ce que renvoit la console :

    _ 1
    _ 2
    _ 3
    _ 4
    _ 5
    | 5
    | 4
    | 3
    | 2
    | 1

    le résultat dans la console est une énigme pour moi. Surtout dans la deuxième phase avec "|". Pourquoi counter diminue ? Qui saurait m'aider a comprendre ?

    merci bon code à tous

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 19
    Points : 19
    Points
    19
    Par défaut
    J'ai trouvé l'explication :


    en fait a chaque fois qu'on rappel sa propre fonction ( recursive() ), on sort brutalement de la bouche pour remonter, au lieu de "finir".

    Donc le deuxiéme print n'est pas executé. Mais c'est pas pour ça que nous avons pas une "dette" envers le programme qui "mémorise" que nous aurions dû le faire !

    Donc une fois les 5 boucles récursives terminées, le programme fini le travail mémorisé en effectuant les 5 fois la fin du programme sur le deuxième print.

    Mais il fini en commençant par le dernier qu'il aurait effectué, c'est a dire 5 et remontant le temps jusqu'au premier donc un.


    en gros si nous etions sortis 1000x sur recursive, le programme aurait ensuite fait 1000x la fin du programme à l'envers

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

Discussions similaires

  1. Aide pour une fonction récursive.
    Par fred61 dans le forum Débuter
    Réponses: 13
    Dernier message: 21/01/2015, 08h39
  2. Réponses: 3
    Dernier message: 30/05/2014, 22h04
  3. Recherche à l'aide d'une fonction récursive
    Par Phoenix89 dans le forum Shell et commandes GNU
    Réponses: 32
    Dernier message: 24/04/2014, 10h58
  4. Fonction récursive : à l'aide!
    Par petitange_lili dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 15/04/2013, 12h14
  5. Exemple QProcess FAQ: aide compréhension
    Par Nykoo dans le forum Qt
    Réponses: 9
    Dernier message: 01/04/2008, 00h28

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