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

Collection et Stream Java Discussion :

[Tableau][Base]Création d'une classe de gestion de tableau


Sujet :

Collection et Stream Java

  1. #21
    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
    Ah d'accord :
    Et bien tu initialises d'abord une chaine s avec le crochet ouvrant ('[')
    Ensuite tu parcours le tableau avec une boucle for et tu concatènes ta chaîne s avec la chaîne de caractères correspondant au nombre contenu[i] auquel tu ajoutes la virgule, puis lorsque tu as terminé le parcours du tableau tu refermes le crochet ouvrant.
    (Au passage, je viens de voir l'intêrét de l'arrêt à taille - 1 )
    "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

  2. #22
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Points : 46
    Points
    46
    Par défaut
    merci; c'est claire maintenant ; mais pourquoi il ne faut pas l'appeller? c'est une methode.. Je devrai dans la methode main comme par exemple le sort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class Tableau{
       public static void main(String args[]){
          Table tab = new Table(5);
          tab.sort();
    ici j'appelle la methode sort par mais cette methode public n'as pas besoin il suffit de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system.out.println(+tab)
    pour qu'elle fonctione.. cela a avoir un le mot clef public? si j'aurait mis un void cela aurait fonctioné aussi?

  3. #23
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    C'est lié au fait que la méthode toString() redefinit la méthode toString() de la classe Object (la classe dont tout le monde hérite).
    En fait, lorsque tu fais un system.out.println(UnObject); par défaut, il va chercher la méthode toString() de l'object.

    Tu devrais utiliser des StringBuffer à la place de tes String dans la méthode toString();

    J'suis au boulot, j'ai pas vraiment le temps d'expliquer pourquoi mais c'est la bonne méthode pour des raisons de performances.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  4. #24
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Points : 46
    Points
    46
    Par défaut
    voila pratiquement tout ce que j'ai fait grace a vous, je dois encore remplacer quelques trucs surtout avec les string par stringbuffers..
    le tri fonctionne mais le tableau ne s'inverse pas... je commence a lire de taille -1 jusqu'a 0 par pas de moins 1..
    si mon tableau est 8.6.1 je devreai avoir 1.6.8 non?
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    class Table{
       private int contenu[];
       private int taille;
     
       Table(){
          System.out.println("quelle est la taille du tableau à créer");
          taille = Clavier.lireInt();
          System.out.println("le contenu du tableau");
          contenu = new int[taille];
          for&#40;int i=0;i<taille;i++&#41;&#123;
            contenu&#91;i&#93;=Clavier.lireInt&#40;&#41;;
          &#125;
     
       &#125;
       Table&#40;int n&#41;&#123;
         taille = n;
         System.out.println&#40;"valeur de chacune des cases"&#41;;
         contenu = new int&#91;taille&#93;;
         for&#40;int i=0;i<taille;i++&#41;&#123;
           contenu&#91;i&#93;= Clavier.lireInt&#40;&#41;;
         &#125;
       &#125;
       // fonction d'affichage
       public String toString&#40;&#41;&#123;
            String s="&#91;";
            for&#40;int i=0;i<taille-1;i++&#41;
    	       s=s+contenu&#91;i&#93;+",";
               s=s+contenu&#91;taille-1&#93;+"&#93;";
            return&#40;s&#41;;
       &#125;
     
       public void reverse&#40;&#41;&#123;
          String s="&#91;";
          for&#40;int i = taille -1; i>=0;i--&#41;&#123;
           s=s+contenu&#91;i&#93;+",";
           s+="&#93;";
          &#125;
       &#125;
     
       public void sort&#40;&#41;&#123;
         int j;
         for&#40;int i=1;i<taille;i++&#41;&#123;
            for&#40;j=0;contenu&#91;j&#93;<contenu&#91;i&#93;;j++&#41;;
            int tampon = contenu&#91;i&#93;;
            for &#40;int k=i;k>j;k--&#41;
                contenu&#91;k&#93; = contenu&#91;k-1&#93;;
            contenu&#91;j&#93; = tampon;
         &#125;
     
       &#125;
    &#125;
    public class Tableau&#123;
       public static void main&#40;String args&#91;&#93;&#41;&#123;
          Table tab = new Table&#40;5&#41;;
          tab.sort&#40;&#41;;
          System.out.println&#40; "tableau trié " + tab&#41;;
           Table tab1 = new Table&#40;&#41;;
           System.out.println&#40;"tableau non inverse  " +tab1&#41;;
           tab1.reverse&#40;&#41;;
          System.out.println&#40;"tableau inversé " +tab1&#41;;
     
     
       &#125;
    &#125;

  5. #25
    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
    La methode Reverse doit inverser les nombres du tableau, pas créer une string que d'ailleurs tu n'utilises pas.
    "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

  6. #26
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    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
    16
    17
    18
    19
     
    Table&#40;&#41;&#123;
          System.out.println&#40;"quelle est la taille du tableau à créer"&#41;;
          taille = Clavier.lireInt&#40;&#41;;
          System.out.println&#40;"le contenu du tableau"&#41;;
          contenu = new int&#91;taille&#93;;
          for&#40;int i=0;i<taille;i++&#41;&#123;
            contenu&#91;i&#93;=Clavier.lireInt&#40;&#41;;
          &#125;
     
       &#125;
       Table&#40;int n&#41;&#123;
         taille = n;
         System.out.println&#40;"valeur de chacune des cases"&#41;;
         contenu = new int&#91;taille&#93;;
         for&#40;int i=0;i<taille;i++&#41;&#123;
           contenu&#91;i&#93;= Clavier.lireInt&#40;&#41;;
         &#125;
       &#125;

    D'ailleurs il y a une amélioration possible.
    Comme dit précédemment par euh... beaucoup de monde... Tu peux utiliser ton constructeur avec parametre dans le constructeur sans paramètre.

    Si tu regardes attentivement, après le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         taille = Clavier.lireInt&#40;&#41;;
    dans tes constructeurs, le code est le même. Remplace cette partie dans le constructeur sans paramètre en appelant le constructeur avec paramètre.

    Comme mon explication n'est pas des plus clair je te renvoie vers la première page, où quelqu'un t'as donné un exemple.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  7. #27
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Points : 46
    Points
    46
    Par défaut
    tu te refers a celui ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     Table&#40;&#41;&#123;
          System.out.println&#40;"quelle est la taille du tableau à créer"&#41;;
          taille = Clavier.lireInt&#40;&#41;;
          this=new Table&#40;taille&#41;;
       &#125;
       Table&#40;int n&#41;&#123;
         System.out.println&#40;"valeur de chacune des cases"&#41;;
         contenu = new int&#91;taille&#93;;
         for&#40;int i=0;i<taille;i++&#41;&#123;
           contenu&#91;i&#93;= Clavier.lireInt&#40;&#41;;
         &#125;
       &#125;
    j'imagine que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this= new Table&#40;taille&#41;
    appelle le constructeur avec parametre, je ne l'ai pas utilisé car il y a une erreur de compilation qui dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cannot assign a value to final variable this

  8. #28
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    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
    16
    17
    18
    19
    		   Table&#40;&#41;&#123;
    		      System.out.println&#40;"quelle est la taille du tableau à créer"&#41;;
    		      taille = Clavier.lireInt&#40;&#41;;
    		      contenu = new int&#91;taille&#93;;
    		      initValue&#40;&#41;;
    		   &#125;
     
    		   Table&#40;int n&#41;&#123;
    		     taille = n;
    		     contenu = new int&#91;taille&#93;;
    		     initValue&#40;&#41;;
    		   &#125;
     
    		   private void initValue&#40;&#41;&#123;
    		     System.out.println&#40;"valeur de chacune des cases"&#41;;
    		     for&#40;int i=0;i<taille;i++&#41;&#123;
    		       contenu&#91;i&#93;= Clavier.lireInt&#40;&#41;;
    		     &#125;
    		   &#125;
    Essaies un truc comme ça. On factorise la partie "initialisation au clavier" de manière à avoir un code plus propre.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  9. #29
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Points : 46
    Points
    46
    Par défaut
    cela fonctionne maintenant;. merci...
    Il ne me reste que a faire l'inversion du tableau..
    pour cela je dois creer un tableau 'tampon a fin d'y copier les données?
    quelque chose comme cela?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       public void reverse&#40;&#41;&#123;
          int tab2&#91;&#93;= new int&#91;taille&#93;
          for&#40;int i = taille-1; i>=0;i--&#41;&#123;
             int k =0 ;
             tab2&#91;k&#93; = contenu&#91;i&#93;;
             k++;
          &#125;
          for &#40;int i=0;i<taille;i++&#41;&#123;
             contenu&#91;i&#93;= tab2&#91;i&#93;
          &#125;
       &#125;

  10. #30
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    'jour,

    Ton code a l'air correct.

    Il y a aussi une autre manière, sans utiliser de tableau intermédiare.
    Tu utilises une boucle avec deux indices :
    i qui commence à 0
    j qui commence à taille -1
    Tu parcours tant que i<=j
    et à chaque itération, tu inverses les valeurs de tab[i] et tab[j]
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  11. #31
    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
    Tu devrais tester le code de reverse à la main !!
    Dans ta boucle k est remis constamment à 0, donc tu ne ranges de valeurs que dans tab2[0].
    Essaye de faire l'inversion en n'utilisant qu'un seul tableau et en intervertissant les valeurs.
    "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

  12. #32
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Points : 46
    Points
    46
    Par défaut
    bonjour
    une boucle avec deux index.. tu veux dir une boucle for inbriquée dans une autre boucle for?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for &#40;i=0;i<taille-1;i++&#41;&#123;
       for&#40;j=taille-1;j>=0;j--&#41;&#123;
           while&#40;i<=j&#41;&#123;
                contenu&#91;i&#93;=contenu&#91;j&#93;;
           &#125;
       &#125;
    &#125;

  13. #33
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Oups...
    Effectivement, si tu laisses l'initialisation de k dans la boucle, à chaque passage, il va reprendre la valeur 0.

    Quand je parlais d'utiliser une seule boucle avec deux indices i et j, je pensais à un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		public void reverse&#40;&#41;&#123;
    			for &#40;int i=0, j=this.taille-1; i<j; i++, j--&#41;&#123;
    				int tempVal = contenu&#91;i&#93;;
    				contenu&#91;i&#93; = contenu&#91;j&#93;;
    				contenu&#91;j&#93;=tempVal;
    			&#125;
    		&#125;
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  14. #34
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    L'idée est de se placer de chaque coté du tableau.
    Si tu dois inverser ses valeurs, la première va prendre la dernière place et inversement. Et ainsi de suite jusqu'au milieu du tableau.
    Tu utilises donc un indices au début, un à la fin et tu parcours jusqu'à ce qu'ils se retrouvent.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  15. #35
    Membre régulier Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Points : 70
    Points
    70
    Par défaut
    Quand je parlais d'utiliser une seule boucle avec deux indices i et j, je pensais à un truc du genre :

    public void reverse(){
    for (int i=0, j=this.taille-1; i<j; i++, j--){
    int tempVal = contenu[i];
    contenu[i] = contenu[j];
    contenu[j]=tempVal;
    }
    }
    Pas très joli tout ça et comme ça c'est pas plus clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void reverse&#40;&#41;&#123; 
             int borneSup=&#40;tableau.length+1&#41;/2
             for &#40;int i=0; i<bornesup; i++&#41;&#123; 
                int tempVal = tableau&#91;i&#93;; 
                tableau&#91;i&#93; = tableau&#91;tableau.length-1-i&#93;; 
                tableau&#91;tableau.length-1-i&#93;=tempVal; 
            &#125; 
     &#125;

  16. #36
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Pas très joli tout ça et comme ça c'est pas plus clair :
    C'est au public de décider , mais je trouve pas que ce soit plus clair...
    Surtout que ce genre de truc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int borneSup=&#40;tableau.length+1&#41;/2
    ...
    tableau&#91;i&#93; = tableau&#91;tableau.length-1-i&#93;;
    ...c'est toujours sujet à erreur.
    A mon avis, il vaut mieux éviter les formules quand elles ne sont pas indispensables, surtout dans un cas simple comme celui-là.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  17. #37
    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
    Quitte à faire zoli, on peut peut-être faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       private void swap&#40;int e1, int e2&#41;
       &#123;
           int val = contenu&#91;e1&#93;;
           contenu&#91;e1&#93; = contenu&#91;e2&#93;;
           contenu&#91;e2&#93; = val;
      &#125;
     
        public void Reverse&#40;&#41; &#123;
          for&#40;int i = 0; i < &#40;taille+1&#41; / 2; i++&#41;
              swap&#40;i, taille - 1 - i&#41;;      
       &#125;
    "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

  18. #38
    Membre régulier Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Points : 70
    Points
    70
    Par défaut
    C'est au public de décider , mais je trouve pas que ce soit plus clair...

    Je suis d'accord avec toi, mais mettre deux compteurs dans un for c'est pas une chose qu on voit tous les jours, surtout quand l'un dépend de l'autre.

  19. #39
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    justement, c'est parce que l'on en voit pas tous les jours qu'il faut en mettre. C'est un truc puissant et dans un cas comme celui-là, ça ne complique en rien le code.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  20. #40
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Points : 46
    Points
    46
    Par défaut
    les gars..
    je vous remercie beaucoup pour toute votre aide, j'aspire un jour pouvoir être aussi doué que vous.. J'ai note toutes vos rémarques et différentes solutions fournies a fin d'enrichir mes connaissances. mon programme tourne maintenant. et j'aurai de quoi discuter avec mon prof ....

    en ce qui concerne la methode reverse, j'utilisé un truc beaucoup moins orthodoxe et moins jolie que vous les gars

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void reverse&#40;&#41;&#123;
            int tab2&#91;&#93;= new int&#91;taille&#93;;
              for&#40;int i = taille-1; i>=0;i--&#41;&#123;
                tab2&#91;taille-1-i&#93; = contenu&#91;i&#93;;
     
              &#125;
              for &#40;int i=0;i<taille;i++&#41;&#123;
                contenu&#91;i&#93;= tab2&#91;i&#93;;
              &#125;
            &#125;
    encore merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. definir une classe et initialiser un tableau
    Par rorette68 dans le forum ASP
    Réponses: 3
    Dernier message: 02/03/2010, 16h09
  2. tableau de combobox et textbox dans une classe
    Par hamedi1 dans le forum C#
    Réponses: 1
    Dernier message: 08/02/2010, 18h22
  3. Tableau de structure en C et une classe en C#
    Par Mouti dans le forum C++/CLI
    Réponses: 6
    Dernier message: 10/07/2007, 08h55
  4. Réponses: 2
    Dernier message: 05/08/2006, 14h29
  5. []Abstraction base de donnee grace a une classe
    Par tfh dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/11/2005, 13h04

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