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 :

Inverser les éléments d'un tableau


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Inverser les éléments d'un tableau
    Bonjour à tous, je dois inverser les éléments d'un tableau sans passer par un tableau intermédiaire

    voici les valeurs de mon tabeau

    10 20 30 40 50 60 70 80 90 100

    et je dois avoir ceci apres la permutation des éléments

    100 90 80 70 60 50 40 30 20 10

    je ne demande pas la réponse mais juste me mettre sur le bon chemin car je ne vois pas bien comment faire, merci d'avance

    Mike

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Tu n'as même pas une petite idée ?

    Cherche la formule qui donne l'élement en position i après avoir inversé le tableau (par rapport au tableau non inversé).

    Il faut ensuite parcourir tous les éléments et utiliser cette formule (en faisant attention de ne pas écraser n'importe quoi).

  3. #3
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Non je ne vois pas bien, je dois utiliser combien de boucle ici ?, merci pour ta réponse

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par IDE
    voici les valeurs de mon tabeau

    10 20 30 40 50 60 70 80 90 100

    et je dois avoir ceci apres la permutation des éléments

    100 90 80 70 60 50 40 30 20 10

    je ne demande pas la réponse mais juste me mettre sur le bon chemin car je ne vois pas bien comment faire, merci d'avance
    Le fait que tableau soit ordonné, c'est un hasard ? Parce que c'est un cas très particulier qui autorise une astuce comme retrier dans l'ordre inverse (qsort() est ton ami).

    Sinon, et pour un petit tableau comme ça, une fonction récursive fait la farce... Pour un gros tableau, il faut un tableau d'index que l'on retrie. Il y a peut être d'autres solutions que j'ignore. Voir le forum Algorithmes

  5. #5
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Merci je vais aller voir sur se forum, à bientôt

    Merci

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Trouve d'abord à la main une méthode simple. Une fois que tu l'as trouvée, essaie de trouver une/des formules mathématiques donnant les index dans le tableau.
    Essaie de raisonner de façon logique et ordonnée.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Membre éclairé Avatar de elghadi_mohamed
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Par défaut
    bonjour

    utilise une variable intermediaire pour stocker la valeur à changer et procede comme suit pour le premier elemnt je le permute avec le dernier , le deuxieme je le permute avec celui qui precede le dernier ainsi de suite , n'oublie pas la variable intermediare pour ne pas ecraser tes valeurs !!!

  8. #8
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Mais tu passes par une boucle pour faire cela, car je ne vois pas comment je peux incrementer ma boucle d'un coté et la décrinmenter de l'autre coté, merci pour ta réponse

  9. #9
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Citation Envoyé par elghadi_mohamed
    utilise une variable intermediaire pour stocker la valeur à changer
    On peut même faire pareil sans variable intermédiaire (puisque apparemment l'exercice est axé sur l'économie de place mémoire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (i = 0; i < n / 2; i++) {
      t[i] ^= t[n - i - 1];
      t[n - i - 1] ^= t[i];
      t[i] ^= t[n - i - 1];
    }

  10. #10
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Je reposte ce que j'ai déjà dit dans le forum C :

    Cherche la formule qui donne l'élement en position i après avoir inversé le tableau (par rapport au tableau non inversé).

    Il faut ensuite parcourir tous les éléments et utiliser cette formule (en faisant attention de ne pas écraser n'importe quoi).

    Non je ne vois pas bien, je dois utiliser combien de boucle ici ?, merci pour ta réponse
    Une seule

  11. #11
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Donc je peux faire ceci iTableau[iI+9] <- iTableau[iI]

    en faisant ceci la position 9 prendra la valeur 10

    ?

    Merci

  12. #12
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Si tu considère que ton indice de tableau commence à 1.

    Alors T[9] <- T[1] permet effectivement de mettre 10 dans le 9ém élément du tableau.

  13. #13
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Mais comment je peux faire avec une seul boucle pour faire diminuter le T[9] et faire augmenter le T[1]

  14. #14
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    commence par ecrire une fonction "swap" qui echange 2 element d'indicie i et j. pour cela, il suffit de passer par une variable intermediaire...

    ensuite, tu parcourt ton tableau en appliquant cette fonction, et en t'arretant quand il faut.. (pas trop loin du mileu )

  15. #15
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    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
     
    const n = ...;
    var m     : integer;
         data : array[0..n-1] of T;  // T integer, real, ...
       begin   
       m:= n div 2 ;  { partie entiere de n/2 }
       for i:= 0 to m do swap(Data[i], Data[n-1-i] );
       end; 
    procedure swap( var i, j : T );
      var H : T;
       begin
       H:=Data[i];
       Data[i] := Data[j];
       Data[j] := H;
       end;

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

Discussions similaires

  1. algorithme pour inverser les éléments d'un tableau
    Par nitch01 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 19/11/2009, 18h37
  2. Lister les éléments d'un tableau
    Par uado dans le forum ASP
    Réponses: 8
    Dernier message: 22/05/2006, 12h02
  3. Réponses: 10
    Dernier message: 27/03/2006, 18h38
  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