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

Langage Pascal Discussion :

Règles de passage de l'itératif au récursif


Sujet :

Langage Pascal

  1. #1
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Octobre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 19
    Points : 18
    Points
    18
    Par défaut Règles de passage de l'itératif au récursif
    Bonsoir,
    svp y'a t'il des règles de passage du procédé itératif vers le procédé récursif?
    s'il y en a lesquelles?

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    oui la règle dite "idiote" ...

    vouloir passer de l'itératif au récursif c'est comme passé d'une formule 1 à une 2CV!
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Foe,
    Citation Envoyé par Dr.Who Voir le message
    oui la règle dite "idiote" ...

    vouloir passer de l'itératif au récursif c'est comme passé d'une formule 1 à une 2CV!
    +infini.

    La seule bonne règle est de passer du récursif à l'itératif.
    Si les cons volaient, il ferait nuit à midi.

  4. #4
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    +1

    Bon, ne soyons pas trop méchants. Je suppose qu'il y a des problèmes qui se résolvent plus facilement en récursif qu'en itératif. Le parcours d'une arborescence, par exemple.
    Pour le reste, c'est vrai que c'est tarte de s'encombrer de la récursion. C'est comme les pointeurs, d'ailleurs : faut surtout pas en abuser !
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Lae,

    Sans parler d'un processus récursif utilisant des pointeurs.

    Mais il est vrai que la récursivité est utile pour certaines tâches. Ce qui me fait réagir, c'est que nombres de profs l'enseignent avec des exemples qui sont à l'antipode de cette utilité (typique : factorielle ).
    Si les cons volaient, il ferait nuit à midi.

  6. #6
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par droggo Voir le message
    Lae,

    Sans parler d'un processus récursif utilisant des pointeurs.

    Mais il est vrai que la récursivité est utile pour certaines tâches. Ce qui me fait réagir, c'est que nombres de profs l'enseignent avec des exemples qui sont à l'antipode de cette utilité (typique : factorielle ).
    On dit toujours qu'une méthode récursive peut se transformer en itérative et vice-versa. Il serait quand même bien de savoir les manipuler même si les exemples ne sont pas trop constructifs.
    Une fois la méthode acquise, on pourra alors choisir de l'utiliser à bon escient.

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hei,

    Oui, mais quand c'est pour apprendre, l'enseignant se doit d'expliquer que c'est seulement un exemple, et préciser que la récursivité n'est utile que si elle apparaît naturellement dans la description du problème.

    Son usage pour calculer une factorielle, que je retrouve souvent dans les programmes autres que ceux d'apprentissage me hérisse littéralement, montre que le prof n'a pas fait son boulot.
    Et je ne parle que de la factorielle pour simplifier, mais il y a de nombreux autres exemples d'usage aberrant.
    Si les cons volaient, il ferait nuit à midi.

  8. #8
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    Eh oui !
    Mais qui te dit que le prof ne l'a pas clairement expliqué ?
    Certaines études ont, à ce que j'ai entendu dire, démontré que, lors d'une conférence, les auditeurs ne retenaient que 10 % du discours.
    Même si l'enseignant est très bon, on ne peut espérer un "rendement" supérieur à 20 - 25 %, ce qui laisse un minimum de 75 % de "déchet" !
    Il arrive donc à tout le monde de retenir d'un cours des informations erronées.

    Sans compter que le programmeur peut se faire un petit plaisir en codant un truc d'une façon originale, même si ce n'est pas la plus lisible, la plus efficace...
    Souvenons-nous de certains programmeurs en C qui s'ingéniaient à coder toute une boucle dans la seule ligne for (...)... À la base c'était aussi un exercice d'école (d'ingénieurs, surtout), pour apprendre à bien maîtriser le langage. C'est vite devenu une mode , puis un moyen de garder son emploi (le développeur étant le seul à pouvoir comprendre ce qu'il a écrit...) , enfin une faute professionnelle.

    Ceci dit, il existe des profs, purs théoriciens, qui ne rêvent que de récursivité & autres machins tordus du même style, car le code est plus élégant, car c'est conforme au fonctionnement d'une machine théorique, car c'est plus proche de l'axiome de Truc...

    Bref, avant de désigner les coupables...
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Noe,

    Étant moi-même enseignant, je sais très ce qui se fait, je n'ai qu'à regarder les cours de collègues.

    D'ailleurs, quand j'ai des élèves venant d'autres cours, je constate que la plupart vont coder la factorielle () en récursif. Et quand je leur demande pourquoi ils n'utilisent pas la version itérative, qui est naturelle puisque découlant directement de la définition, la réponse est quasi systématiquement "notre professeur nous a expliqué que c'était mieux". Et là, ça me fait bondir à chaque fois.

    Que des théoriciens de l'informatique discutent de ça, et même l'affirment, c'est leur droit, encore que souvent ils oublient le côté utile pour ne penser qu'à la beauté, ce qui dans la pratique de la programmation ne conduit pas vraiment très loin, sauf en ce qui concerne la perte de temps et d'efficacité (car il faut que le programmeur ET son programme soient efficaces, ce qui inclut facilité de lecture, compréhension, reprise en mains par un autre ...).


    Mais de là à ce qu'un prof enseigne ce genre de "certitude" à des élèves débutants, il y a une très grosse différence, et je m'insurge contre ça.
    Si les cons volaient, il ferait nuit à midi.

  10. #10
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    Là, je ne peux qu'approuver.
    À 100 %.
    D'ailleurs, c'est ce que j'avais écrit (en gros) dans mon premier message.
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  11. #11
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par droggo Voir le message
    Mais de là à ce qu'un prof enseigne ce genre de "certitude" à des élèves débutants, il y a une très grosse différence, et je m'insurge contre ça.
    je connais ça , bien qu'étant étudiant, ça m'arrive de donner quelques cours de soutient sur le langage C.Bien souvent, un élève peut affirmer que le prof ne nous a pas appris un tel truc ou nous a dit que tel truc ne marche pas. Mais est-ce la vérité? ça m'arrive meme parfois de jurer par pascal qu'un prof ne nous a jamais parlé d'un theme donné
    Mais je pense que l'élève comprendra mieux si on lui montre pourquoi on dit qu'un truc est meilleur que l'autre au lieu d'affirmer sans povoir le montrer.

  12. #12
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    on devrait inventer un langage qui refuse de compiler les méthodes récursives.
    et les blocs notes aussi.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  13. #13
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    Fastoche !
    Il suffit de retirer cette fonctionnalité des compilateurs existants.
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  14. #14
    Membre à l'essai
    Profil pro
    Enseignant
    Inscrit en
    Octobre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    A OUI?
    Tout a fait d'accord avec vous, et je signala en plus que la recursite s'adapte bien avec les algo recurrents d'ordre >=2 généralement comme le triangle de pascal, le calcul de combinaisons Cnp, ...
    c'est en fait un autre esprit de pensée;

  15. #15
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    salut.
    d'aprés Niklaus Wirth : il faut éviter d'utiliser la récursivité lorsqu'il y a une solution itérative.

Discussions similaires

  1. XML/XSL parcours itératif et récursif
    Par greIn dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/11/2012, 00h04
  2. Réponses: 29
    Dernier message: 20/09/2010, 18h02
  3. transformer un code itératif en récursif
    Par FstDsi dans le forum Débuter
    Réponses: 28
    Dernier message: 17/10/2009, 10h32
  4. régles de passage d'un diagramme de classe à un langage orienté objet
    Par lasmarmann dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 22/01/2007, 18h16
  5. transformer de l'itératif en récursif
    Par hiina dans le forum C
    Réponses: 8
    Dernier message: 27/11/2005, 21h16

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