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

Algorithmes et structures de données Discussion :

Procédure Récursives


Sujet :

Algorithmes et structures de données

  1. #1
    Débutant  
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Procédure Récursives
    bjr
    voila g un prob , je comprend po trop les procédures récursives en algo et la g un exo a faire .. sans la récursivité c faisable mé avec je pas ...
    enfin voila :
    Ma procédure doit faire un TRI selectif :
    voila la procédure normal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Procedure Tri_Select(T[1..N]:tableau)
    Var i,j,max,imax:entier
    Debut
    Pour i de 1 a N-1 faire 
    	max<-T[i]
    	imax<-i
    	Pour J de i+1 à N faire
    		Si T[j]< max alors imax<-j
    	Fpour
    T[i]<-T[imax]
     
    Fpour
     
    Fin
    je pense qu'L é correct mé je c po comment faire une récursive avec tt ca ...
    - Sometimes the Truth hurts -

  2. #2
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 64
    Points
    64
    Par défaut
    Une preocedure recursuve c'est une fonctin qui s'appelle elle meme.
    Par exemple au lieu d'utiliser une boucle tu peut utiliser une fonction recursive.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     fonction_name()
    {
         n=n-1;
         f=f*n;
         fonction_name();
    }


    (cet exemple ne sarrete jamais met tu peut lui mettre une condition pour qu'il sorte de ce cycle.)

  3. #3
    Débutant  
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 14
    Points
    14
    Par défaut prob tjrs avec la récursivité
    ok j'ai compris mé je vois tjrs po comment je pe faire avec mon exemple
    - Sometimes the Truth hurts -

  4. #4
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Bon je crois ke tu t'es planté mais bon je me rapelle plus trop du tri par sélection donc excuse moi si je me trompe. L'id si je rapelle bien, c de trouver le max du tableau, de mettre le max a la fin et de recommencer avec le tableau avec un élément de moins.

    En itératif, ca doit donner ca (excuse si les notations, c pas ca mais j'ecris rarement d'algo sous cette forme).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Procedure Tri_Select(T[1..N]:tableau)
    Var i,j,max,imax,temp:entier
    Debut
    Pour i de 1 a N-1 faire 
      max<-T[i]
      imax<-i
      Pour J de i+1 à N faire
        Si T[j]< max alors imax<-j
      Fpour
    temp <- T[i] /* il fo echanger les cases i et imax, pas seulement mettre imax dans i */
    T[i]<-T[imax]
    T[imax] <-temp
     
    Fpour
     
    Fin
    De manière recursive, ca doit donner ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Procedure Tri_Select(T[1..N]:tableau)
    Var len,j,max,imax,temp:entier
    len <-longueur T
    max <- T(1)
    imax <- 1
    Pour J de 2 à len faire
    Si T[j]< max alors imax<-j
      Fpour
    temp <- T[i] 
    T[i]<-T[imax]
    T[imax] <-temp
    Tri_select(T[2..N]:tableau)
    En esperant pas mettre trop tromper

    ZUL

  5. #5
    Débutant  
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 14
    Points
    14
    Par défaut encore une petit Xplication
    je comprend pas dans la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tri_select(T[2..N]:tableau)
    pkoi on é mé T[2..N] ( c le 2 que je saisi pas )
    - Sometimes the Truth hurts -

  6. #6
    Jay
    Jay est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2002
    Messages : 124
    Points : 189
    Points
    189
    Par défaut
    Ben a chaque fois que tu rapelles la fonction il faut bien enlever un element sinon tu feras toujours le meme calcul !!!


    @+
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  7. #7
    Débutant  
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Tout a fé dakor
    Je suis dakor , j'aV bien pigé ca , mé je comprend po pkoi on mé 2 parce que quand il aurait traité le 2 ème cas fo qu'il pass au 3 et c la ou je pige pas ...
    - Sometimes the Truth hurts -

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Re: encore une petit Xplication
    Bon moi ce que je ferais c'est que je mettrais en paramètre le tableau, et surtout l'indice de début (2 paramètres donc et pas un seul je trouve pas ça rigoureux ).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tri_select(T:tableau, indice : entier)
    Si T est un tableau de 1 à N.

    Ensuite dans la procédure il faudrait peut-être mettre un test si indice < N parce que sinon elle va tourner longtemps la procédure...

  9. #9
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    En fait par 2, je considérai le deuxième élément du tableau d'entrée. Désolé mais la notation etait pas tres clair. Sinon c vrai ke l'id de gregory est bien et ca evite ce genre de prob.

    ZUL

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/12/2009, 12h04
  2. Procédure récursive et pointeurs
    Par paulfr dans le forum Langage
    Réponses: 6
    Dernier message: 04/08/2008, 23h49
  3. Réponses: 2
    Dernier message: 29/05/2008, 10h53
  4. Procédure récursive nb max d'appel
    Par Fred29 dans le forum SQL
    Réponses: 1
    Dernier message: 08/05/2008, 08h53
  5. [VB] Organigramme d'une procédure récursive.
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 06/11/2005, 10h53

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