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 :

algorithme pour inverser les éléments d'un tableau


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Points : 44
    Points
    44
    Par défaut algorithme pour inverser les éléments d'un tableau
    salut

    j'aimerais créer un algorithme pour inverser les éléments d'un tableau

    voila ce que j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pour i=0 à n-1 faire
    T'[i]=[n-i]
    finpour
    s'il vous plaît essayez de me rectifier et merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Quelles sont les dimensions de ton tableau ?

    Qu'entends-tu pas "inversion" ?
    Ne souhaites-tu pas plutôt faire des permutations d'éléments ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre habitué
    Avatar de mr_langelot
    Profil pro
    Inscrit en
    Août 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 113
    Points : 150
    Points
    150
    Par défaut
    sinon

    devrait marcher

    EDIT autant pour moi!

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 886
    Points
    52 886
    Par défaut
    Citation Envoyé par mr_langelot Voir le message
    sinon

    devrait marcher
    On est dans le forum Algorithmes ici... pas MATLAB
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Il veut retourner le tableau, le renverser, inverser l'ordre des éléments du tableau, que les premiers deviennent les derniers et réciproquement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pour i=0 à n-1 Faire
      T'[i]=[n-i]
    FinPour
    Si tu as essayé ce code, tu as dû constater qu'il ne marchait pas, qu'en fait il laissait le tableau inchangé, non ?
    C'est parce que tu en fait trop, non seulement tu échange un élément du début du tableau avec l'élément correspondant en fin de tableau, mais tu refais cet échange une deuxième fois, ce qui revient donc à ne pas faire d'échange du tout... Réfléchis à tes bornes et au nombre d'échange que tu as vraiment besoin de faire (ce n'est pas n comme dans ton code) et tu devrais avoir ta solution.

    --
    Jedaï

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Salut, tu peux commencer par remplir le tableau après t'utilise une boucle de i=1 jusqu'à n//2 (//: Division entière)
    tu fais ici les instructions de permutations a l'aide d'une nouvelle variable
    dernier mot t'affiche le résultat
    et c'est fini ^^ Good luck

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    je suis un débutant comme toi mais je vous propose une solution



  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    Au cas où... il existe une astuce qui n'entraîne aucune permutation physique :

    La question est alors de savoir si la formule la plus simple est ou n'est pas un algorithme (et surtout si elle correspond à ce qui est réellement demandé) !

    A plus !

  9. #9
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    Le plus simple est de multiplier ton tableau (matrice) avec la matrice unité symétrique :
    Sous matlab (pardon) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    clear
    A=[3 4 5]
    M=[0 0 1;0 1 0;1 0 0]
    Ainv=A*M
    La matrice M s'obtient aussi avec :

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    Pour la permutation matérielle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    d au début du tableau ( c'est souvent : 0 )
    f à la fin du tableau ( c'est souvent : taille_du_tableau-1 )
     
    tant que d < f faire
        permuter T[d] et T[f]
        incrémenter d
        décrémenter f
    fin tant que
    Une permutation sous cette forme, peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    t = T[d]
    T[d] = T[f]
    T[f] = t
    A plus !

Discussions similaires

  1. Inverser les éléments d'un tableau
    Par IDE dans le forum Algorithmes et structures de données
    Réponses: 28
    Dernier message: 23/10/2006, 23h25
  2. Réponses: 10
    Dernier message: 27/03/2006, 18h38
  3. algorithme pour enlever les occurences d'une liste
    Par bendenice dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 08/02/2006, 23h28
  4. Réponses: 4
    Dernier message: 11/01/2006, 09h22
  5. "inverser" les valeurs d'un tableau
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 12/12/2005, 12h13

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