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 :

Aide exercice d'algo


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut Aide exercice d'algo
    Bonjour a tous,

    J'ai un exercice a faire et je doute de ma solution. Voici mon sujet:
    Terminez l’algorithme suivant, qui permet de supprimer un élément de TabElem, cet élément
    étant saisi, en supprimant également son indice dans TabIndex.
    Attention : la suppression d’un élément dans TabElem entraîne la modification des indices
    d’un certain nombre d’éléments de TabElem. Cette modification doit être répercutée dans
    TabIndex. (3 points)
    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
    18
    19
    Saisir (elem)
    // recherche de l'indice de elem dans TabElem
    i ← 1
    TantQue elem <> TabElem[i] et i < NbElem
    Faire i ← i + 1
    FinTantQue
    // i contient l'indice d'elem
    // On suprime elem dans TabElem
    Pour j de i à NbElem
    Faire TabElem[j] ← TabElem[j + 1]
             // modification des indices dans TabIndex
            t ← 1
            TantQue TabIndex[t] <> j+1
            Faire t ← t + 1
           FinTantQue
            TabIndex[t] ← j
    FinPour
    // On cherche et on supprime l'indice d'elem
    // dans tabIndex
    J'ai rajouté ceci qu'en pensez vous et voyez vous une optimisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a ← 1
    b←1
    // Je suis obligé de créer a car lors sinon a la prochaine question l’algo serait faux
    TantQue tabIndex [a] <>i
    Faire a← a+1
    FinTantQue
    //a contient l’indice de i dans tabindex il nous faut maintenant décaler les éléments avec un pour
    Pour b de a à NbElem
    Faire TabIndex[b] ← TabIndex[b + 1]
    Finpour
    Fin
    Avec tous mes remerciements.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 119
    Par défaut
    Bonjour, je ne sais pas si j'ai bien saisie la logique de ton algo, mais personnellement j'aurai comme toi cherché l indice de l'élément a supprimer, puis comme toi j'aurai fais une boucle For allant de l'indice de l'élement jusqu'a la fin du tableau puis tout sauf l'élément a supprimer, tu les met dans une variable tempon (tableau de NbElem-Indice de l'élément a supprimer), puis tu les supprimer tous et tu ajoute les élément de la variable tampon a ton tableau donc si on compilé l'algo de tet sa donne :
    NbElem = 20
    Indice a supprimer 10
    On copie les élement 11 à 20 dans une variable tampon puis on les supprimer ainsi que l'élement d'indice 10
    Il te restera donc t'es 9 Premier élément, tu ajoute ta variable tempon à ton tableau initial ce qui donne dans ton tableau, les 9 premiers élément et les 10 de la variable tempon.
    Car je ne vois pas comment modifié directement l'indice du tableau .

    Ou sinon tu as une autre possibilité

    Pour i=Indice à NbElem-1
    tabElem[i]=tabElem[i+1]
    Fin

    N'oubli pas supprimer ensuite l'element à l'indice 20.

    J'ai pas trop réflechi sur cette algo, mais avec quelque automatisme , sa devient simple de pensé a ce genre de chose.

  3. #3
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    Merci pour votre réponce.

    Je comprend, mais comment supprimé la dernière valeur
    Je lui attribue la valeur "" ?
    Cordialement

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 119
    Par défaut
    C'est sa le principe de l'algorithme, ce n'est pas un langage de programmation au sens propre, donc tu peux inventer toi même les fonction et procédures que tu souhaite, du moment que sa reste comprehensible.
    Notre prof d'algo nous demande pas une syntaxe bien précise, si par exemple pendant un controle , on a besoin de la fonction aléatoire mais qu'il n'a pas préciser comment elle implémenté, on ne se soucie pas de comment est ecrite la fonction, suffit juste de faire comprendre au lecteurs qu'on souhaite utilisé un tel fonction, enfin je ne sais pas si tu me suis , mais pour supprimer une ligne de ton tableau, fais des hypothèse. Personne n'a la mème syntaxe en algo, du moment que sa rejoint l'esprit c'est bouen !

  5. #5
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    Salut,

    Si le problème se pose pour la dernière valeur, qui sera "" ou autre dans ton tableau, pourquoi ne pas recopier ton tableau dans un tableau de dimension NbElem - 1 ?

    Dans ce cas, tu recopie les valeurs une à une dans un nouveau tableau, et tu détruit l'ancien. Après libre a toi de renvoyer ce nouveau tableau ou de le recréer avec une dimension en moins...

    A moins que la question ne se pose pas vraiment comme l'a dit toham...

    A+

Discussions similaires

  1. Aide pour exercices d'algo
    Par couls dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 27/08/2007, 14h05
  2. Aide pour un algo
    Par mic79 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 25/10/2006, 10h29
  3. probleme avec les exercices d'algo
    Par djsito1 dans le forum Windows
    Réponses: 1
    Dernier message: 20/10/2006, 14h20
  4. exercice d'algo
    Par rimbaut dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 11/12/2005, 07h33
  5. besoin d'aide pour des algos
    Par mathieu77 dans le forum Algorithmes et structures de données
    Réponses: 23
    Dernier message: 08/11/2005, 18h33

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