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

  1. #1
    Candidat au Club
    Homme Profil pro
    Sans Emploi
    Inscrit en
    avril 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : avril 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Débuts en langage C - nombre de lignes et de variables
    Salut à tous,

    Je débute en C, je fais des exercices avec des "mini-programmes".

    Je réussi bien le programme, il fonctionne bien mais par rapport à la correction j'ai toujours plus de lignes (variables, calculs, if...)

    Est ce que c'est important d'avoir le minimum de lignes possible ? Pourquoi ? L'application sera plus rapide en utilisation ?

    Merci à tous.

  2. #2
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    juillet 2020
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : juillet 2020
    Messages : 138
    Points : 529
    Points
    529
    Par défaut
    Bonjour,

    Citation Envoyé par card15nod2 Voir le message
    Est ce que c'est important d'avoir le minimum de lignes possible ? Pourquoi ? L'application sera plus rapide en utilisation ?
    Le moins de lignes possible ?
    Non ce n'est pas du tout, mais pas du tout du tout important. Ce qui est très important est d'avoir un code clair et lisible, un code qui se comprend à la lecture.
    Ce qui est important aussi, est de connaître les algos classiques, de savoir les implémenter et de savoir quand les utiliser.

    Pourquoi ?
    Parce que nous ne sommes plus dans les années 80 où les compilateurs «traduisaient» plus ou moins ligne à ligne le code. Ils sont désormais bien plus intelligents, bien plus qu'un développeur en ce qui concerne la création de code machine. Le code ne sera plus traduit «littéralement», enfin sauf si tu le demandes expressément.
    Un compilateur qui optimise le code choisira la meilleure production de code. Il n'y a pas beaucoup d'humains capables de faire mieux.
    Mais bon, cela fonctionne à condition de bien orienter le compilateur, de ne pas le tromper ⇒ et un moyen simple est de garder ton code simple.

    Une application plus rapide au runtime si le code a moins de LOC ?
    Non. Il n'y a pas, en général, un rapport direct entre le nombre de lignes de code et la vitesse d'exécution. Mais souvent dans un même contexte tu verras une différence en choisissant le bon algorithme. Par exemple, si tu tries un tableau de nombre qui au départ n'a pas de structure, un simple tri à bulle est plus court à écrire qu'un quicksort et pourtant quicksort sera bien plus performant qu'un tri à bulle en général.

  3. #3
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    décembre 2015
    Messages
    1 270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2015
    Messages : 1 270
    Points : 6 240
    Points
    6 240
    Par défaut
    Salut,

    Ça dépend de ce qu'il y a dans les lignes en plus.
    • Si tu as plus décomposé en utilisant des variables supplémentaires. Le code généré sera surement identique donc aucun impact.
    • Si tu as moins bien factorisé du code. c-à-d, tu as des même séquences de code plusieurs fois. C'est aussi identique à l'exécution. Le code produit sera peut-être un peu plus gros, mais pas plus lent. La fénéantise te fera progresser.
    • Si tu as ajouté des étapes impossibles. On appelle cela du code mort. Là aussi aucun impact. Mais la aussi, une vision plus claire qui s'acquiert avec l'expérience te fera progresser.
    • Si tu as ajouté des étapes inutiles. Là ça peut avoir un impact mais surement minime.
    • Si par contre tu as utilisé un algorithme plus complexe que la solution, là ça peut produire un code moins optimal. Par exemple un tri peut être plus lent si tu t'y es mal pris.

    Il y a peut-être d'autres cas, tu peux poser la question sur un exemple précis.

    Il faut surtout se méfier des cas inverses où ta solution a des choses en moins. Par exemple, tu as pu omettre des actions nécessaires tels que des tests de validité. Là ton code ira même plus vite que la solution mais il est alors faux. Il te faut bien comprendre la solution pour détecter ces anomalies.
    Dans tous les cas, relis bien la solution et comprends là. On peut parfois dire, mon code est bon, en le validant sur quelques exemples. Mais un code peut paraître bon et ne pas l'être. C'est cela que l'on appelle un bug; tout est "bon" mais plus tard un utilisateur activera le morceau de code rare qui posera un problème.

    Ton code peut être plus long que la solution mais être plus optimal.
    En tout cas l'objectif n'est pas d'avoir le moins de lignes possible. Il faut surtout un code clair que tu comprends et que tu pourras relire plus tard. Il sera donc plus robuste et aura d'autant plus de chance d'être optimal à l'exécution.

  4. #4
    Expert éminent
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    3 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 3 914
    Points : 8 759
    Points
    8 759
    Par défaut
    Je vais aller 1 peu à contre-courant des 2 VDDs (voisin du dessus)

    1 code ayant le moins de lignes est important pour 1 lecture rapide et pour faire de la maintenance (<- même si ton IDE t'aide avec le "code folding", la recherche, ...)
    Mais rendre compact son code cela s'apprend. En effet, par exemple, pour moi
    • mettre les accolades ouvrantes/ fermantes sur 1 seule ligne, cela fait perdre en compacité pour rien
    • mettre plusieurs lignes de code sur 1 ligne rend le code difficile à lire et on doit être très attentif à ne pas louper 1 "truc"
    • par contre, mettre plusieurs lignes identiques de code sur 1 ligne comme des affectations ou des incrémentations par exemple, cela ne doit pas être trop gênant.

    Donc, cela dépend de tes conventions de codage ("coding style" en anglais)

    Et 1 autre truc, le nombre de variables. Point trop n'en faut
    Mais les variables et surtout leur nom permet d'indiquer ce qu'elle doit contenir/ fait, et donc rend le code + lisible.
    Donc, pour moi, il faut faire attention au nombre magique et au variable qu'on réutilise (sauf variable temporaire et compteur de boucle par exemple)

    D'autant + si, comme le dit @WhiteCrow, dans 1 premier tu codes les algo/ traitements de façon classique, 1 développeur pourra tout suite détecter leur utilité.
    Enfin, d'après ce que j'ai compris, les compilateurs aiment analyser et "comprendre" le code, et donc il faut mieux faire du code qui n'essaye pas de cacher/ optimiser sans "raison".

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 071
    Points : 24 940
    Points
    24 940
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Ce serait bien que tu nous donnes un exemple de ce que tu fais, on pourrait mieux t'indiquer ce qui va de ce qui ne va pas. Mais d'une façon générale l'important n'est pas le nombre de lignes mais le nombre de lignes "utiles". Tu as par exemple parlé de "if". A ce propos il m'est arrivé de voir ici des trucs comme
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (expression) {
    	actionA;
    	actionC;
    }
    else {
    	actionB;
    	actionC;
    }
    Il est ici clair que l'actionC n'a rien à faire dans le if et pourrait parfaitement en être sortie. Ce qui donnerait...
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (expression) {
    	actionA;
    }
    else {
    	actionB;
    }
    actionC;
    ... et dans ce cas, comme le dit foetus, les accolades peuvent disparaitre...
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (expression)
    	actionA;
    else
    	actionB;
    actionC;
    ... ce qui peut alors donner au final
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (expression) actionA;
    else actionB;
    actionC;
    (mais perso j'aime moins... les goûts et les couleurs...)

    En revanche, et contrairement à certaines idées reçues, la compacité (sauf cas particuliers) n'accélère généralement pas le code. Et écrire une expression a=2*(i++) + b n'ira pas plus vite que a=2*i+b; i++. Donc comme les autres, ce qui compte c'est d'avoir du bon sens dans sa logique pour que ce bon sens se reflète dans ton code qui sera alors automatiquement plus clair et plus facilement compréhensible/modifiable.
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  6. #6
    Candidat au Club
    Homme Profil pro
    Sans Emploi
    Inscrit en
    avril 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : avril 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour vos réponses rapides et très clair.

    J'avais peur de ne pas commencer sur des bases solides.
    Je fais de très petits bouts de code pour des calculs simple et je prends le temps de faire quelque chose de détaillé et compréhensible.

    Vous êtes super, encore merci. Je n'hésiterai pas à revenir pour plus d'aide quand l'apprentissage sera plus difficile.

  7. #7
    Candidat au Club
    Homme Profil pro
    Sans Emploi
    Inscrit en
    avril 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : avril 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Voila un exemple de code avec la correction, je vois clairement mon erreur de répétition grâce à vos explications.

    mon 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
    26
    27
    28
    29
    30
    31
    #include <stdio.h>
    int main (){
     
        int nombreJ = 0;
        int equipe1 = 0;
        int equipe2 = 0;
        int sommeEquipe1 = 0;
        int sommeEquipe2 = 0;
     
        scanf("%d", &nombreJ);
     
        for(int i = 0 ; i < nombreJ ; i++ ){
            scanf("%d", &equipe1);
            scanf("%d", &equipe2);
            sommeEquipe1 = sommeEquipe1 + equipe1;
            sommeEquipe2 = sommeEquipe2 + equipe2;
        }
     
        int total = sommeEquipe1 > sommeEquipe2;
        if(total){
            printf("L'équipe 1 a un avantage\n");
            printf("Poids total pour l'équipe 1 : %d\n", sommeEquipe1);
            printf("Poids total pour l'équipe 2 : %d\n", sommeEquipe2);
        }else{
            printf("L'équipe 2 a un avantage\n");
            printf("Poids total pour l'équipe 1 : %d\n", sommeEquipe1);
            printf("Poids total pour l'équipe 2 : %d\n", sommeEquipe2);
        }
     
        return 0;
    }

    Et la correction :

    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
    #include <stdio.h>
    int main() {
        int nbMembres = 0;
        int poidsTotalEquipe1 = 0;
        int poidsTotalEquipe2 = 0;
        int poidsLu = 0;
        scanf("%d", &nbMembres);
        for(int i=0 ; i < nbMembres ; i++){
            scanf("%d", &poidsLu);
            poidsTotalEquipe1 = poidsTotalEquipe1 + poidsLu;
            scanf("%d", &poidsLu);
            poidsTotalEquipe2 = poidsTotalEquipe2 + poidsLu;
        }
        int avantageEquipe1 = poidsTotalEquipe1 > poidsTotalEquipe2;
        if(avantageEquipe1){
            printf("L'équipe 1 a un avantage\n");
        }else{
            printf("L'équipe 2 a un avantage\n");
        }
        printf("Poids total pour l'équipe 1 : %d\n", poidsTotalEquipe1);
        printf("Poids total pour l'équipe 2 : %d\n", poidsTotalEquipe2);
        return 0;
    }
    J'imagine que ce n'est pas tres bon ma gestion du if. Le reste me semble correct. Non ?

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 071
    Points : 24 940
    Points
    24 940
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par card15nod2 Voir le message
    Voila un exemple de code avec la correction, je vois clairement mon erreur de répétition grâce à vos explications.
    Exact. Déjà tu utilises deux variables différentes pour faire saisir une info (ok il y a deux saisies d'info mais une fois que la première saisie a été traitée, la variable n'est plus nécessaire et peut alors être réutilisée pour la seconde saisie) et effectivement tes deux affichages identiques répétés c'est typiquement le cas que j'ai cité.
    Et par rapport au corrigé, on peut même supprimer la variable "avantageEquipe1" et mettre directement l'évaluation dans le if() mais je pense que le correcteur l'a mise pour montrer qu'on peut stocker aussi le résultat d'une évaluation logique.

    Citation Envoyé par card15nod2 Voir le message
    Le reste me semble correct. Non ?
    Euh oui, le reste c'est comparer les totaux. Ca ça va.

    Ensuite, amélioration possible, faire évoluer le programme pour qu'il puisse gérer 10, 15, 20 équipes. Là on ne parlera plus de "sommeEquipe1" et "sommeEquipe2" mais carrément d'un tableau de sommes. Avec boucle pour la saisie et boucle pour trouver qui a l'avantage. Enfin si tu as vu les tableaux...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  9. #9
    Candidat au Club
    Homme Profil pro
    Sans Emploi
    Inscrit en
    avril 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : avril 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Non, je n'ai pas encore vu les tableaux.

    J'ai beaucoup cherché sur les sites bien connus de formation en ligne en vidéo. Et il y a très peu de formation sur le langage C.
    J'en trouve seulement 2 sur les bases et fondamentaux.
    Aucunes formations vidéo "avancé"...

    Pourquoi le langage le plus utilisé au monde est si peu partagé ?
    Quels sont les choses a faire pour bien progresser ?

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 071
    Points : 24 940
    Points
    24 940
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par card15nod2 Voir le message
    Aucunes formations vidéo "avancé"...
    Perso la formation vidéo je déconseille car la vidéo induit une attitude passive tandis qu'un tutoriel écrit induit une attitude active (on peut copier/coller/tester les exemples). Va voir ici...

    Citation Envoyé par card15nod2 Voir le message
    Pourquoi le langage le plus utilisé au monde est si peu partagé ?
    Plus utilisé au monde c'est vite dit. Je ne crache pas sur le C car ça a été mon premier vrai langage professionnel mais le C n'est qu'un langage parmi d'autres. Ok il est assez plébiscité par les hackeurs car c'est le langage de base d'Unix/Linux donc on peut grâce au C entrer en profondeur dans ces OS, mais si tu veux faire un logiciel ergonmique style Word tu vas vraiment galérer. Ok tout est faisable en C mais bon, il y a des choses que d'autres langages permettent de faire plus facilement. Rajouter un tableau B dans un tableau A en Python? tabA.extend(tabB). Rajouter un tableau B dans un tableau A en C? Boucler sur chaque élément du tableau B, regarder s'il y a la place pour le mettre dans A sinon agrandir le tableau A et dans ce dernier cas, tester que l'agrandissement a réussi sinon tout annuler (en libérant alors l'espace précédemment alloué qui, lui, avait réussi). Puis mettre l'élément à sa bonne position et recommencer. Approximativement une dizaine de lignes. Et ce n'est que pour rajouter un tableau...
    Aucun langage de programmation n'est parfait. Il n'existe même pas un langage meilleur que d'autres ; il n'y a que des langages en adéquation ou peu conseillés pour des buts particuliers. (Herbert Mayer).

    Citation Envoyé par card15nod2 Voir le message
    Quels sont les choses a faire pour bien progresser ?
    Aimer développer et avoir un but.
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  11. #11
    Candidat au Club
    Homme Profil pro
    Sans Emploi
    Inscrit en
    avril 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : avril 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Mon but et de pouvoir lire des codes sources en C et de les comprendre.
    Et ensuite pourquoi pas essayer de travailler si c'est en freelance, ça me convient.

    Merci beaucoup pour ton aide.

  12. #12
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    3 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 3 022
    Points : 9 424
    Points
    9 424
    Par défaut
    Y'a peu de chance (donc proche de 0%) que tu puisse trouver un jobs free-lance en C .
    (surtout qus les "rare" jobs qui demande du C , demande souvent des connaissance pointu en embarquée avec )

  13. #13
    Candidat au Club
    Homme Profil pro
    Sans Emploi
    Inscrit en
    avril 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : avril 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Y'a peu de chance (donc proche de 0%) que tu puisse trouver un jobs free-lance en C .
    (surtout qus les "rare" jobs qui demande du C , demande souvent des connaissance pointu en embarquée avec )
    D'accord, dans ce cas, tu conseillerais quels langages qui permettraient de travailler depuis le domicile ?

  14. #14
    Expert éminent
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    3 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 3 914
    Points : 8 759
    Points
    8 759
    Par défaut
    Citation Envoyé par card15nod2 Voir le message
    D'accord, dans ce cas, tu conseillerais quels langages qui permettraient de travailler depuis le domicile ?
    La question est mal posée

    Je peux me tromper, mais ce sont surtout les bibliothèques et les cadriciels essentiellement : Web avec Angular et React (peut-être Node.js), WordPress et 1 peu de mobile natif sur iOS (majoritement Swift), Android (essentiellement Kotlin) et je vois Xamarin (C#)

  15. #15
    Candidat au Club
    Homme Profil pro
    Sans Emploi
    Inscrit en
    avril 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : avril 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par foetus Voir le message
    La question est mal posée

    Je peux me tromper, mais ce sont surtout les bibliothèques et les cadriciels essentiellement : Web avec Angular et React (peut-être Node.js), WordPress et 1 peu de mobile natif sur iOS (majoritement Swift), Android (essentiellement Kotlin) et je vois Xamarin (C#)
    Merci beaucoup, je vais pouvoir me renseigner.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/07/2020, 11h44
  2. Formulaire avec nombre de lignes de saisie variable
    Par NadègeG dans le forum Langage
    Réponses: 9
    Dernier message: 03/10/2006, 08h10
  3. Réponses: 2
    Dernier message: 02/03/2004, 19h38
  4. Réponses: 3
    Dernier message: 21/01/2004, 08h47
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25

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