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

PL/SQL Oracle Discussion :

Calcul itératif récursif avec initialisation de variable à chaque itération


Sujet :

PL/SQL Oracle

  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut Calcul itératif récursif avec initialisation de variable à chaque itération
    bonjour tout le monde,

    j'ai une table TABLA_XA contient 5 ColonneS A,B,C,D initialement vide
    le nombre de lignes (n) est variable, donc si je mets en entrée 4 j'aurai 4 lignes ainsi de suite ...

    j'ai un nombre de départ : NB := X,

    j'ai besoin de faire des calculs de la manière suivante :

    La ligne 1 :
    B1 = X*10%
    C1 = D1-B1
    D1 = X*10%/(1-X)
    A1 = X-C1
    dans ce cas
    X := A1

    La ligne 2 :
    B2 = X*10%
    C2 = D2-B2
    D2 = X*10%/(1-X)
    A2 = X-C2
    X :=A2

    La ligne 2 :
    B3 = X*10%
    C3 = D3-B3
    D3 = X*10%/(1-X)
    A3 = X-C2
    X :=A3

    on général, je dois faire des calculs qui dependent de la ligne précédente selon le nombre de ligne (n)

    merci d'avance

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    je vais détailler un peu :

    il s'agit du calcul d'une valeur à partir d'autre valeur située dans la ligne précédente,

    autrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i IN 1..Nb loop
       for j in 2.. nb loop
     
    A(j):= A(i)-C(j) 
     
    ...
    -- i val colonne A ligne précédent;
    -- j val colonne B ligne courante;

  3. #3
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,

    Me trompe-je ou on se mords la queue la?:
    Citation Envoyé par LandGreen Voir le message
    La ligne 1 :
    B1 = X*10%
    C1 = D1-B1
    D1 = X*10%/(1-X)
    A1 = X-C1
    dans ce cas
    X := A1
    Tu dis "X := A1", mais dans le même temps "A1 = X-C1".
    C'est "suspect", je ne sais pas ce qu'en penserons les autres qui passeront par la. Mais perso, je ne vois pas comment résoudre cela.

    @+

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    Oui à la fin de literation X prend na valeur de A pour passer à la ligne suivante

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Comme C est calculé avant D, à part B1 et D1 tout sera NULL.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Comme ceci :
    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
    with cte_nb_x (X) as
    (
    select 17 from dual
    )
      ,  cte_tableA (B, D, C, A, X, lvl) as
    (
    select X*10/100 as B
         , X*10/100 / (1-X) as D
         , (X*10/100 / (1-X)) - X*10/100 as C
         , X - (X*10/100 / (1-X)) + X*10/100 as A
         , X
         , 1
      from cte_nb_x
     where X > 1
     union all
    select A*10/100 as B
         , A*10/100 / (1-A) as D
         , (A*10/100 / (1-A)) - A*10/100 as C
         , A - (A*10/100 / (1-A)) + A*10/100 as A
         , X
         , lvl + 1
      from cte_tableA
     where lvl < X
    )
    select A, B, C, D
      from cte_tableA
     
    A                                            B                                           C                                            D
    -----------------------------------------    -----------------------------------------   ----------------------------------------     ------------------------------------------
    18.80625                                     1.7                                         -1.80625                                     -.10625
    20.79249100561600561600561600561600561601    1.880625                                    -1.98624100561600561600561600561600561601    -.1056160056160056160056160056160056160056
    22.97679252731912017776385517541062251282    2.0792491005616005616005616005616005616     -2.18430152170311456175823916979461689681    -.1050524211415140001576775692330163352121
    25.37902203459230299515067553159617123643    2.29767925273191201777638551754106225128    -2.40222950727318281738682035618554872361    -.1045502545412707996104348386444864723334
    28.02102612531584218584690191602247219041    2.53790220345923029951506755315961712364    -2.64200409072353919069622638442630095398    -.1041018872643088911811588312666838303387
    30.92682955955331678813303571521264817999    2.80210261253158421858469019160224721904    -2.90580343423747460228613379919017598958    -.1037008217058903837014436075879287705367
    34.12285399876871126741343308691055232433    3.092682955955331678813303571521264818      -3.19602443921539447928039737169790414434    -.103341483260062800467093800176639326342
    37.638158462159967879743917538181782319      3.41228539987687112674134330869105523243    -3.51530446339125661233048445127122999467    -.1030190635143854855891411425801747622352
    41.50470370319812202007921724678093696904    3.7638158462159967879743917538181782319     -3.86654524103815414033529970859915465004    -.1027293948221573523609079547809764181379
    45.75764292258624883166741769319641984964    4.1504703703198122020079217246780936969     -4.2529392193881268115882004464154828806     -.1024688490683146095802787217373891837043
    50.43564147012442366973812108448386221994    4.57576429225862488316674176931964198496    -4.6779985475381748380707033912874423703     -.1022342552795499549039616219678003853391
    55.58122844918730950619389235836397320322    5.04356414701244236697381210844838622199    -5.14558697906288583645577127388011098328    -.1020228320504434694819591654317247612918
    61.24118342582680404391486258093828670879    5.55812284491873095061938923583639732032    -5.65995497663949453772097022257431350557    -.101832131720763587101580986737916185248
    67.46696176235902441802665063020988620088    6.12411834258268040439148625809382867088    -6.22577833653222037411178804927159949209    -.1016599939495399697203017911777708212097
    74.31516244545590739446264505471606392721    6.74669617623590244180266506302098862009    -6.84820068309688297643599442450617772633    -.1015045068609805346333293614851891062386
    81.84804266433728981605219060133882952277    7.43151624454559073944626450547160639272    -7.53288021888138242158954554662276559556    -.1013639743357916821432810411511592028388
    90.13408381909514529861762687529961937024    8.18480426643372898160521906013388295228    -8.28604115475785548256543627396078984747    -.1012368883241265009602172138269068951899

  7. #7
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    Lvl C'est le nombre de lignes ?

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    En réordonnant les calculs pour que D soit calculé avant C :
    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
    SELECT a,b,c, d FROM (
    select i,a,b,c, d from (SELECT 1 AS lvl FROM dual)
    model
      dimension by(lvl)
      measures (0 AS i, 0 AS x, 0 as a, 0 AS b, 0 as c, 0 as d)
      rules iterate(6) (  -- N lignes
       i[iteration_number] = iteration_number+1,
       x[0] = 17, -- Nombre initial
       b[iteration_number] = x[iteration_number] * 0.1,
       d[iteration_number] = b[iteration_number] / (1- x[iteration_number]),
       c[iteration_number] = d[iteration_number] - b[iteration_number],
       a[iteration_number] = x[iteration_number] - c[iteration_number],
       x[iteration_number+1] = a[iteration_number]
      )
    )
    where i is not null
    ORDER BY i
      ;
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    18.80625    1.7    -1.80625    -0.10625
    20.79249100561600561600561600561600561601    1.880625    -1.98624100561600561600561600561600561601    -0.1056160056160056160056160056160056160056
    22.97679252731912017776385517541062251282    2.0792491005616005616005616005616005616    -2.18430152170311456175823916979461689681    -0.1050524211415140001576775692330163352121
    25.37902203459230299515067553159617123643    2.29767925273191201777638551754106225128    -2.40222950727318281738682035618554872361    -0.1045502545412707996104348386444864723334
    28.02102612531584218584690191602247219041    2.53790220345923029951506755315961712364    -2.64200409072353919069622638442630095398    -0.1041018872643088911811588312666838303387
    30.92682955955331678813303571521264817999    2.80210261253158421858469019160224721904    -2.90580343423747460228613379919017598958    -0.1037008217058903837014436075879287705367

  9. #9
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    C'est un peu compliqué, parce que a b c d sont des variables ainsi que x
    Et si on souhaite mettre le programme en une procédure avec des variables IN ?

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    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
    20
    21
    22
    23
    24
    25
    26
    27
     
    CREATE OR REPLACE PROCEDURE CREATE_DATA 
    (
      NLINES IN NUMBER 
    , STARTVAL IN NUMBER 
    ) AS 
    BEGIN
    EXECUTE IMMEDIATE('INSERT INTO T_ABCD(a,b,c,d)
      SELECT a,b,c, d FROM (
    select i,x,a,b,c, d from (SELECT 1 AS lvl FROM dual)
    model
      dimension by(lvl)
      measures (0 AS i, 0 AS x, 0 as a, 0 AS b, 0 as c, 0 as d)
      rules iterate(' || NLINES || ') (  
       i[iteration_number] = iteration_number+1,
       x[0] = ' || STARTVAL || ', 
       b[iteration_number] = x[iteration_number] * 0.1,
       d[iteration_number] = b[iteration_number] / (1- x[iteration_number]),
       c[iteration_number] = d[iteration_number] - b[iteration_number],
       a[iteration_number] = x[iteration_number] - c[iteration_number],
       x[iteration_number+1] = a[iteration_number]
      )
    )
    where i IS NOT null
    ORDER BY i');
    COMMIT;
    END CREATE_DATA;
    ou

    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
     
    CREATE OR REPLACE PROCEDURE CREATE_DATA
    (
      NLINES IN NUMBER 
    , STARTVAL IN NUMBER 
    ) AS 
    BEGIN
    INSERT INTO T_ABCD(a,b,c,d)
      SELECT a,b,c, d FROM (
    select i,x,a,b,c, d from dual
    model
      dimension by(0 as i)
      measures (0 AS x, 0 as a, 0 AS b, 0 as c, 0 as d)
      rules iterate(4000000000) until(iteration_number = NLINES-1) (  
       x[0] = STARTVAL, 
       b[iteration_number] = x[iteration_number] * 0.1,
       d[iteration_number] = b[iteration_number] / (1- x[iteration_number]),
       c[iteration_number] = d[iteration_number] - b[iteration_number],
       a[iteration_number] = x[iteration_number] - c[iteration_number],
       x[iteration_number+1] = a[iteration_number]
      )
    )
    where a IS NOT null
    ORDER BY i;
    COMMIT;
     
     
    END CREATE_DATA;

  11. #11
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    Je vous remercie pour votre réponse,

    ici on doit avoir la même valeur pour la colonne D qui n'est pas le cas
    aussi la valeur de A (X) doit diminuer jusqu’à atteindre le 0 (la dernière itération) qui n'est pas le cas
    aussi la valeur de B doit diminuer aussi : qui n'est pas le cas

    je pense qu'on peut simplifier on utilisant un simple curseur




    après on commence les UPDATES...

  12. #12
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Comme ceci :
    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
    with cte_nb_x (X) as
    (
    select 17 from dual
    )
      ,  cte_tableA (B, D, C, A, X, lvl) as
    (
    select X*10/100 as B
         , X*10/100 / (1-X) as D
         , (X*10/100 / (1-X)) - X*10/100 as C
         , X - (X*10/100 / (1-X)) + X*10/100 as A
         , X
         , 1
      from cte_nb_x
     where X > 1
     union all
    select A*10/100 as B
         , A*10/100 / (1-A) as D
         , (A*10/100 / (1-A)) - A*10/100 as C
         , A - (A*10/100 / (1-A)) + A*10/100 as A
         , X
         , lvl + 1
      from cte_tableA
     where lvl < X
    )
    select A, B, C, D
      from cte_tableA
     
    A                                            B                                           C                                            D
    -----------------------------------------    -----------------------------------------   ----------------------------------------     ------------------------------------------
    18.80625                                     1.7                                         -1.80625                                     -.10625
    20.79249100561600561600561600561600561601    1.880625                                    -1.98624100561600561600561600561600561601    -.1056160056160056160056160056160056160056
    22.97679252731912017776385517541062251282    2.0792491005616005616005616005616005616     -2.18430152170311456175823916979461689681    -.1050524211415140001576775692330163352121
    25.37902203459230299515067553159617123643    2.29767925273191201777638551754106225128    -2.40222950727318281738682035618554872361    -.1045502545412707996104348386444864723334
    28.02102612531584218584690191602247219041    2.53790220345923029951506755315961712364    -2.64200409072353919069622638442630095398    -.1041018872643088911811588312666838303387
    30.92682955955331678813303571521264817999    2.80210261253158421858469019160224721904    -2.90580343423747460228613379919017598958    -.1037008217058903837014436075879287705367
    34.12285399876871126741343308691055232433    3.092682955955331678813303571521264818      -3.19602443921539447928039737169790414434    -.103341483260062800467093800176639326342
    37.638158462159967879743917538181782319      3.41228539987687112674134330869105523243    -3.51530446339125661233048445127122999467    -.1030190635143854855891411425801747622352
    41.50470370319812202007921724678093696904    3.7638158462159967879743917538181782319     -3.86654524103815414033529970859915465004    -.1027293948221573523609079547809764181379
    45.75764292258624883166741769319641984964    4.1504703703198122020079217246780936969     -4.2529392193881268115882004464154828806     -.1024688490683146095802787217373891837043
    50.43564147012442366973812108448386221994    4.57576429225862488316674176931964198496    -4.6779985475381748380707033912874423703     -.1022342552795499549039616219678003853391
    55.58122844918730950619389235836397320322    5.04356414701244236697381210844838622199    -5.14558697906288583645577127388011098328    -.1020228320504434694819591654317247612918
    61.24118342582680404391486258093828670879    5.55812284491873095061938923583639732032    -5.65995497663949453772097022257431350557    -.101832131720763587101580986737916185248
    67.46696176235902441802665063020988620088    6.12411834258268040439148625809382867088    -6.22577833653222037411178804927159949209    -.1016599939495399697203017911777708212097
    74.31516244545590739446264505471606392721    6.74669617623590244180266506302098862009    -6.84820068309688297643599442450617772633    -.1015045068609805346333293614851891062386
    81.84804266433728981605219060133882952277    7.43151624454559073944626450547160639272    -7.53288021888138242158954554662276559556    -.1013639743357916821432810411511592028388
    90.13408381909514529861762687529961937024    8.18480426643372898160521906013388295228    -8.28604115475785548256543627396078984747    -.1012368883241265009602172138269068951899

    ici A,B,C,D sont des variables, comment peut-on générer ça?

    si c'est le nombre d'itérations, ou est le nombre initial X ?

  13. #13
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    dans ce problème, nous avons les variables dépendantes c.à.d l'une dépdent de l'autre,

    pour calculer A nous avons besoin de C
    pour calculer C nous avons besoin de B
    pour calculer B nous avons besoin de A

  14. #14
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par LandGreen Voir le message
    Je vous remercie pour votre réponse,

    ici on doit avoir la même valeur pour la colonne D qui n'est pas le cas
    aussi la valeur de A (X) doit diminuer jusqu’à atteindre le 0 (la dernière itération) qui n'est pas le cas
    aussi la valeur de B doit diminuer aussi : qui n'est pas le cas
    D dépend de X qui prend la valeur de A à chaque itération et A doit tendre vers 0 et D ne doit pas varier...
    bonne chance pour X != 0...

    A ne diminuera en tendant vers 0 que si le X de départ est < à environ 0.90900...
    pour des valeurs supérieures il augmentera, pour des valeurs négatives il sera diminuera (valeurs négatives de plus en plus grandes en absolu)

    les exemples fournis ont tous utilisés des X >> 1, donc c'est normal que A ne tende pas vers 0,
    et si X de départ vaut 1 votre algorithme du premier post provoque une division par zéro

    Écrivez d'abord des spécifications correctes et non contradictoires :
    données, paramètres, résultats : type et espace des valeurs pour chacun d'eux

    (le terme "variable" est générique ce qui ne nous éclaire pas sur ce qui vous voulez dire :
    vous parlez d'une table (a,b,c,d) vide au départ, donc il est sous-entendu que les (a,b,c,d) sont les lignes de résultat à chaque itération)

    algorithme correct, ce que votre énoncé initial n'était déjà pas puisque l'ordre des opération menait à des résultats NULL,
    et avec une condition d'arrêt claire : au départ vous parliez d'un nombre de lignes à générer et maintenant que A doit valoir 0...

  15. #15
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 481
    Par défaut
    je vous remercie encore une fois

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

Discussions similaires

  1. [Débutant] changer le nom d'une variable à chaque itération
    Par CeCherPH dans le forum MATLAB
    Réponses: 3
    Dernier message: 05/08/2013, 08h21
  2. initialisation des variable avec une boucle
    Par grospatapouf dans le forum Langage
    Réponses: 10
    Dernier message: 10/01/2009, 12h17
  3. Réponses: 4
    Dernier message: 21/03/2008, 17h40
  4. initialiser une variable avec de l'hexadecimale
    Par dietrich dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/01/2007, 10h21

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