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

  1. #21
    IDE
    IDE est déconnecté
    Membre régulier Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Points : 89
    Points
    89
    Par défaut Suite
    En fait je pensais que je devais inverser l'élément 0 du tableau avec l'élément 9 du tableau, ensuite l'élément 2 du tableau avec l'élément 8 du tableau ainsi de suite, mais je pense que je vais abandonné car je bloque de trop sur cet exercice, pourtant je pensais bien avoir compris le principe des tableaux, mais j'en doute maintenant

    Mais je te remercie vraiment de prendre du temps pour me réponde, c'est super sympa de ta part, car je dois vraiment être d'une lourdeur hihihi

    Michael

  2. #22
    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
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par IDE
    inverser l'élément 0 du tableau avec l'élément 9 du tableau, ensuite l'élément 2 du tableau avec l'élément 8 du tableau ainsi de suite,
    N'abandonnes pas, ce n'est pas si dur. La tu as mis le doigt sur ton erreur, il faut faire 9-il et non 9+il. Mais pour etre plus general, il te faudra penser par la suite a remplacer 9 par autres choses pour que cela fonctionne avec tous les tableaux.

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Points : 89
    Points
    89
    Par défaut Suite
    Merci pour tes encouragements, je vais devoir partir, mais je posterai la solution si je l'a trouve, encore un grand merci pour tes conseils et bonne journée.

    Michael

  4. #24
    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
    Points : 6 498
    Points
    6 498
    Par défaut
    Je veux échanger les éléments de ce tableau : 10 20 30 40 50 60 70 80 90 100

    Comment faire ce travail ?

    Je prends le premier et le dernier, je les échange
    Je prends le deuxième et l'avant dernier, je les échange
    je prends le trosième et l'antépénultième, je les échange.

    En fait j'ai deux indices, l'un qui augmente et l'autre qui diminue.
    Je vais donc faire une action avec un indice qui va augmenter de 1 et l'autre qui va diminuer de 1 à chaque tour.
    Quand vais-je m'arréter? Eh bien lorsque ce lui qui augmente deviendra égal ou plus grand que celui qui décroit.
    Je vais avoir une boucle qui s'éxécutera donc tant que l'index croissant sera inférieur à l'index décroissant

    Mon algo peut s'écrire comme celà :

    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
    algo inversion_de_tableau
     
      variable tab : tableau de nb nombres à inverser
      variable i : entier index croissant 
      variable j : entier index décroissant
     
      Commentaire : Initialisation
      i <- 1
      j <- nb
     
      Commentaire : boucle du programme
      tant que i < j faire
        echanger les éléments d'index i et j du tableau
        i <- i + 1
        j <- j - 1
      fin tant que
    fin algo
    Il ne reste plus qu'à écrire l'algo d'inversion des deux éléments d'index i et j du tableau.
    Il y a eu assez d'explications pour que tu puisses le faire seul.

    Cet algo est une première étape, on peut optimiser, le faire avec un seul index qui jouera un double rôle mais il faut bien comprendre le principe de la boucle au départ.

    Bon courage.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Points : 18
    Points
    18
    Par défaut
    le faire avec un seul index qui jouera un double rôle
    Salut, pourrais-tu donner quelques petites explications là-dessus? J'ai fait, en exercice proposé sur un site, quelquechose de msiliare à ça (inversion des valeurs d'un tableau) avec la même méthode (i croissant j décroissant), j'aimerai donc savoir de quoi il est question lorsque tu parle "d'un seul index", et surtout, vers où se diriger pour lui faire jouer un double-rôle?
    Merci!

  6. #26
    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
    Points : 6 498
    Points
    6 498
    Par défaut
    Je me suis mal exprimé en disant qu'il joue un double rôle excuse moi.
    Simplement, si on remarque que i+j à chaque tour de boucle est toujours égal à n+1, on peut garder i et remplacer j par n+1-i.
    Ce qui fait que i sert pour les deux index (j et n+1-j).
    On boucle donc avec toujours j < n+1-j c'est à dire tant que j < (n+1)/2

  7. #27
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    il suffit de remarquer qu'a tout moment, j=tailleTableau-i-1

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Points : 18
    Points
    18
    Par défaut
    C'est compris!
    si on remarque que i+j à chaque tour de boucle est toujours égal à n+1
    J'ai mis un peu de temps à comprendre mais, c'est bon!

  9. #29
    IDE
    IDE est déconnecté
    Membre régulier Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Points : 89
    Points
    89
    Par défaut
    Ah voila, grace à vos conseils je suis heureux, je suis enfin sorti de mes problemes hihih, voici le pseudo code que j'utilise :

    Tableau entier iTableau taille 10
    <* = {10,20,30,40,50,60,70,80,90,100} *>
    Variable indice iI
    Variable entiere iEchange



    Début du traitement

    /* Boucle : */
    Initialisation

    iI <- 0

    Compter avec iI de 0 à 4

    iEchange <- iTableau[iI]
    iTableau[iI] <- iTableau[9-iI]
    iTableau[9-iI] <- iEchange

    Fin de compter

    /* Boucle : */

    Initialisation
    Compter avec iI de 0 à 9

    Afficher iTableau[iI]
    Tab

    Fin de compter

    Attente

    Fin du traitement


    Encore un grand merci à toutes les personnes qui m'ont aidées.

    Michael

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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, 19h37
  2. Lister les éléments d'un tableau
    Par uado dans le forum ASP
    Réponses: 8
    Dernier message: 22/05/2006, 13h02
  3. Réponses: 10
    Dernier message: 27/03/2006, 19h38
  4. Réponses: 4
    Dernier message: 11/01/2006, 10h22
  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, 13h13

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