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

 C Discussion :

Fonction et pointeurs


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut Fonction et pointeurs
    Bonjour,

    je voudrais creer une fonction en C
    qui modifie 2 variables a travers de pointeurs

    seulement cette fonction ne modifie pas les variables
    si quelqu'un pourrait corriger SVP voici le code :
    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
    #include <stdio.h> 
    #include <stdlib.h> 
     
    char tab[2]; 
    char* p; 
    char* q; 
     
    char* test() 
    { 
    p='x'; 
    q='y'; 
    char y='y'; 
    return 0; 
    } 
     
    main (void) 
    { 
    tab[0]='a'; 
    tab[1]='b'; 
    p=&tab[0]; 
    q=&tab[1]; 
    test(); 
    printf("%c|%c",tab[0],tab[1]); 
    return 0; 
    }
    merci d'avance

  2. #2
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    Qu 'est ce que tu veux faire au juste ?

    je voudrais creer une fonction en C
    qui modifie 2 variables a travers de pointeurs

    seulement cette fonction ne modifie pas les variables
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

  3. #3
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    Si tu veux affecter de nouvelles valeurs à tab étant donné qu'il est déclré en globale, il te suffit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void test(void)
    {
    tab[0]='x';
    tab[1]='y';
    }
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    en fait au depart j'ai deux matrices char 3x3 ke je dois envoyer dans une fonction pour ensuite renvoyer deux valeurs type char.

    au debut j'essayais de renvoyer plusieurs variables, ce qui ne marchait pas

    ensuite j'ai essaye de renvoyer un tableau char[2] ce qui doit etre faisable mais je n'ai pas reussi

    donc je me suis dit que peut etre en declarant les 2 char dans main et les modifier depuis la fonction avec des pointeurs mais je n'y arrive pas non plus

    svp propose moi une solution

    merci pour ta reponse

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    super ca marche

    et si je me limitais a declarer tab dans mon main() et pas en global comment je ferais?

    merci en tou cas

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    en fait si ca tinterresse voila le code de mon programme :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    #include <stdlib.h>
    #include <stdio.h>
    #include "fonctions.c"
    //--------------------------------------
     
    int main(int argc,char*argv[]) {
    //Arguments d'entree//
         int i=0;
         int j=0;
         printf("Parametres d'entree : ");
         printf("argc =%d\n\n",argc);
     
         for (i=0;i<argc;i++){
                 printf("argv[%d]=%s\n",i,argv[i]);
         }
         printf("\n");
    //-------------------------------------------------------
    //recuperation du puzzle de depart//
         char matrix1[TAILLE_1][TAILLE_1];
         for (i=0;i<TAILLE_1;i++){
                 for (j=0;j<TAILLE_1;j++){
                         matrix1[i][j]=argv[1][i*TAILLE_1+j];
                 }
        }
    //-------------------------------------------------------
    //affichage du puzzle de depart//
        printf("Puzzle de depart : \n");
        for(i=0; i<TAILLE_1; i++) {
                for(j=0; j<TAILLE_1; j++){
                        printf("%c ", matrix1[i][j]);
                }
                printf("\n");
        }
    //-------------------------------------------------------
    //recuperation du puzzle d'arrivee//
        char matrix2[TAILLE_1][TAILLE_1];
        for (i=0;i<TAILLE_1;i++){
                for (j=0;j<TAILLE_1;j++){
                        matrix2[i][j]=argv[2][i*TAILLE_1+j];
                }
        }
    //-------------------------------------------------------
    //affichage du puzzle d'arrivee//
        printf("Puzzle d'arrivee : \n");
        for(i=0; i<TAILLE_1; i++){
                for(j=0; j<TAILLE_1; j++){
                        printf("%c ", matrix2[i][j]);
                }
                printf("\n");
        }
    //-------------------------------------------------------
    //comparaison des deux matrices//
        char temp1[TAILLE_2];
        char temp2[TAILLE_2];
        short c=0;
        for(i=0;i<TAILLE_1;i++){
                for(j=0; j<TAILLE_1; j++){
                        temp1[i*TAILLE_1+j]=matrix1[i][j];
                        temp2[i*TAILLE_1+j]=matrix2[i][j];
                }
        }
        for (i=0; i<TAILLE_2; i++){
                for (j=0; j<TAILLE_2; j++){
                        if (temp1[i]==temp2[j]){
                                c++;
                        }
                }
        }
        if (c<TAILLE_2){
                printf("les 2 matrices ne contiennent pas les memes elements");
        }else{
    //-------------------------------------------------------
    //Calcul des erreurs//
           int errtot;
           errtot=calcul_erreur(matrix1,matrix2);
           printf("total erreurs : %d",errtot);
    //---------------------------------------------------------
    //Choix aleatoire d'un element a deplacer
          int m=0;
          char direction;
          int k;
          int l;
          while (m==0){
              k=r();
           sleep(SUP);
              l=r();
           if (matrix1[k][l]==SP)
           {
                   m=0;
           }
              else if (matrix1[k+1][l]==SP && k+1<TAILLE_1)
              {
                      m=1;
                      direction='b';
              }
              else if (matrix1[k-1][l]==SP && k-1>0)
              {
                      m=1;
                      direction='h';
              }
              else if (matrix1[k][l+1]==SP && l+1<TAILLE_1){
                      m=1;
                      direction='d';
              }
              else if (matrix1[k][l-1]==SP && l-1>0){
                      m=1;
                      direction='g';
              }
              else{
                      m=0;
              }
          }
          printf("lettre aleatoire : %c",matrix1[k][l]);
           printf("coords : %d | %d \n",k,l);
          printf("\ndeplacable a : %c",direction);
           }
    //--------------------------------------
     
        printf("fin\n");
        return 0;
    }
    et donc le choix aleatoire d'une lettre a deplacer j'aimerais transformer ca en une fonction a lakel jenvoi matrix1 et matrix2 et je recupere la lettre et la direction

  7. #7
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Voici un petit exemple qui te change la valeur d'une variable à l'aide de pointeur:
    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
    #include<stdio.h>
     
    void changeVal(int *pointeurSurVar);
     
    int main(void)
    {
        int nombre = 5;
     
        changeVal(&nombre); /* On envoie l'adresse de nombre à la fonction */
        printf("%d", nombre); /* On affiche la variable nombre. La fonction a directement modifié la valeur de la variable car elle connaissait son adresse */
     
        return 0;
    }
     
    void changeVal(int *pointeurSurVar)
    {
        *pointeurSurVar = 10; /* On affecte la valeur 10 à la variable nombre */
    }
    Vous pouvez aller voir mes tutos et mes critiques: ici
    Ainsi que mon: blog

    Je ne répondrai à aucune question technique par MP les forums sont présents pour ça

    c'est très intelligent un ordinateur: "Keyboard ERROR. No keyboard Connected. Press any key to continue..."

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    ok snake je compren maintnan

    alors eske jpeu envoyer dans cette fonction la matrice matrix1 plus deux pointeurs (lettre et direction)

    car au final je veux recuperer les deux char lettre(matrix1[k][l]) et direction
    en utilisant cette matrice

    merci pour vos reponses c super

  9. #9
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    Si tu veux declarer ton "tab" dans le main tu peux:
    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
     
     
    void test(char tab[])
    {
    tab[0]='x';
    tab[1]='y';
    }
     
    int main (void)
    {
    char tab[2];
     
    tab[0]='a';
    tab[1]='b';
     
    printf("%c|%c\n",tab[0],tab[1]);
     
    test(tab);
     
    printf("%c|%c\n",tab[0],tab[1]);
     
    return 0;
    }
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

  10. #10
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Pourrais-tu poster ton code avec des balises s'il te plait car la ton code est vraiment illisible et aussi écrire dans un français correct merci
    Vous pouvez aller voir mes tutos et mes critiques: ici
    Ainsi que mon: blog

    Je ne répondrai à aucune question technique par MP les forums sont présents pour ça

    c'est très intelligent un ordinateur: "Keyboard ERROR. No keyboard Connected. Press any key to continue..."

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    D'accord excuse-moi pour le français.

    Revoici le code, je ne mets que la partie qui me pose problème, celle que je voudrais transformer en fonction afin d'y faire appel de manière récurrente,
    j'éspere que c'est plus clair :


    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
    //Choix aleatoire d'un element a deplacer
          int m=0;
          char direction;           //premier char à modifier au travers de la fonction
          int k;
          int l;
          while (m==0){
              k=r();                 //choix aleatoire d'une lettre
           sleep(SUP);
              l=r();                  //dans la matrice r() étant basé sur srand()
           if (matrix1[k][l]==SP)  //matrix1[k][l] est la lettre aléatoire à déplacer
           {
                   m=0;
           }
              else if (matrix1[k+1][l]==SP && k+1<TAILLE_1)
              {
                      m=1;
                      direction='b';         //déplacement vers le bas
              }
              else if (matrix1[k-1][l]==SP && k-1>0)
              {
                      m=1;
                      direction='h';         //déplacement vers le haut
              }
              else if (matrix1[k][l+1]==SP && l+1<TAILLE_1){
                      m=1;
                      direction='d';         //déplacement vers la droite
              }
              else if (matrix1[k][l-1]==SP && l-1>0){
                      m=1;
                      direction='g';         //déplacement vers la gauche
              }
              else{
                      m=0;
              }
          }
    //--------------------------------------
    En somme je veux envoyer matrix1 (une 3x3 avec 8 char et un espace) dans la fonction, y rechercher une lettre aléatoire ayant ledit espace en haut, en bas, à gauche, ou à droite, et renvoyer d'une part cette lettre déplaçable et d'autre part la direction dans laquelle je peux la déplacer.

    Merci beaucoup pour ton aide

  12. #12
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    La balise code c'est le #
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

  13. #13
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    En somme je veux envoyer matrix1 (une 3x3 avec 8 char et un espace) dans la fonction, y rechercher une lettre aléatoire ayant ledit espace en haut, en bas, à gauche, ou à droite, et renvoyer d'une part cette lettre déplaçable et d'autre part la direction dans laquelle je peux la déplacer.
    résumons :
    . Tu disposes d'une matrice 3*3 de char
    . Tu veux véerifier la présence d'un élément
    . Tu veux recuperer la position ligne-colonne de cet élément
    . Tu veux savoir si elle est voisine de la case vide
    . Si oui possibilité de les echanger
    . Sinon tu ne peux pas la déplacer


    ON dirai un jeu de taquin, c'est ça ?
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Eh bein je ne connais pas le taquin mais en effet le but du programme est un jeu connu : on a un puzzle de départ et un puzzle d'arrivée et il faut que le programme calcule les différentes étapes pour passer de l'un à l'autre.

    Exemple : passer de

    a b c
    d e
    f g h

    à

    b f c
    h d
    e a g

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Alors j'arrive déjà à récuperer les 2 matrices, m'assurer qu'elles contiennent les mêmes éléments dans des positions différentes.

    Mon procédé est le suivant :
    A chaque itération :
    - je calclule par la méthode de Hamming le taux d'erreur de chaque lettre par rapport à son emplacement final
    - je trouve une lettre au hasard avec un espace à côté et la déplace
    - je recalcule le taux d'erreur général
    - si le taux d'erreur a baissé, je valide le déplacement et passe à la prochaine itération
    - dans le cas contraire j'annule le déplacement et passe à la prochaine itération

  16. #16
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    voila qui pourra t'aider
    taquin algorithme
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Ah oui c'est très interessant, et ça ressemble fort à la méthode de résolution que j'envisage.

    Mais j'ai toujours le souci de coder cette fonction de déplacement

    Merci en tout cas pour l'algorithme.

  18. #18
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    voici un bout de code qui intervertit deux éléments d'une même matrice

    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
    66
    67
    68
    69
    70
     
    #include <stdlib.h>
    #include <stdio.h>
     
     
    void affiche(char mat[3][3]);
    void affecte(char mat[3][3], char tam[3][3]);
    void echange(char mat[3][3], int i, int j, int p, int q);
     
    int main (void){
     
     
    char matrice_initiale [3][3];
    char matrice_temporaire [3][3];
     
     matrice_initiale [0][0]='b';
     matrice_initiale [0][1]='d';
     matrice_initiale [0][2]='a';
     matrice_initiale [1][0]=' ';
     matrice_initiale [1][1]='c';
     matrice_initiale [1][2]='e';
     matrice_initiale [2][0]='f';
     matrice_initiale [2][1]='g';
     matrice_initiale [2][2]='h';
     
    affiche(matrice_initiale);
     
    affecte(matrice_temporaire, matrice_initiale);
     
    affiche(matrice_temporaire);
     
    echange(matrice_temporaire, 1, 1, 1, 0);
     
    affiche(matrice_temporaire);
     
     
     
     
    return 0;
    }
     
     
    void affiche(char mat[3][3])
    {
      printf("\t -----------\n");
      printf("\t| %c | %c | %c |\n",mat[0][0],mat[0][1],mat[0][2]);
      printf("\t| %c | %c | %c |\n",mat[1][0],mat[1][1],mat[1][2]);
      printf("\t| %c | %c | %c |\n",mat[2][0],mat[2][1],mat[2][2]);
      printf("\t -----------\n\n\n");
    }
     
    void affecte(char mat[3][3], char tam[3][3])
    {
      int i,j;
      for ( i=0; i<3; i++)
      {
         for ( j=0; j<3; j++)
         {
           mat[i][j]=tam[i][j];
         }
      }
    }
     
    void echange(char mat[3][3], int i, int j, int p, int q)
    {
      char temp;
      temp=mat[i][j];
      mat[i][j]=mat[p][q];
      mat[p][q]=temp;
    }
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Ok ça a l'air très bien ça.

    Je vais essayer les deux méthodes affectation et pointeurs.

    Merci beaucoup pour votre aide et à bientôt.

  20. #20
    Membre régulier Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    pense a mettre
    Pourquoi les pierres carrées font elles des ronds dans l'eau ?

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

Discussions similaires

  1. Passage de tableau à une fonction par pointeur
    Par progfou dans le forum C++
    Réponses: 15
    Dernier message: 23/02/2007, 11h45
  2. Fonction et pointeur
    Par Flophx dans le forum C
    Réponses: 14
    Dernier message: 22/02/2007, 17h29
  3. Réponses: 8
    Dernier message: 10/03/2006, 17h28
  4. C++ Problème de fonctions et pointeurs
    Par zmatz dans le forum C++
    Réponses: 3
    Dernier message: 01/10/2005, 16h20
  5. Réponses: 10
    Dernier message: 03/02/2005, 13h09

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