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

Langage Delphi Discussion :

Opérateur = extended et Epsilon


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut Opérateur = extended et Epsilon
    Comment forcer Delphi à prendre en compte l'epsilon quand il fait un = avec des variables de type extended et/ou float ? Je connais la fonction CompareValue qui fait ça mais moi j'aimerais que Delphi le fasse nativement sur le =.

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 764
    Points : 28 527
    Points
    28 527
    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
    28
    29
    30
    31
    32
     
    type
      TSingle = record
        Value: Single;
        class operator Implicit(a: Single): TSingle;
        class operator Equal(a, b: TSingle): Boolean;
        class operator NotEqual(a, b: TSingle): Boolean;
      end;
     
    class operator TSingle.Implicit(a: Single): TSingle;
    begin
      Result.Value := a;
    end;
     
    class operator TSingle.Equal(a, b: TSingle): Boolean;
    begin
      Result := Abs(a.Value - b.Value) < Epsilon;
    end;
     
    class operator TSingle.NotEqual(a, b: TSingle): Boolean;
    begin
      Result := Abs(a.Value - b.Value) >= Epsilon;
    end;
     
    begin
      var s1, s2, s3: TSingle;
      s1 := 1;
      s2 := 1 + Epsilon / 2;
      s3 := 2;
      assert(s1 = s2);
      assert(s1 <> s3);
    end.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    Je trouvais l'idée intéressante de pouvoir créer un nouveau type exemple TNumber qui serait en interne un extended.
    Avec des implicit qui convertit en integer ou en string etc....
    Par contre ça devient vite fastidieux à faire, il faut refaire tous tous tous les opérateurs possibles avec tous les types possibles qui peuvent interagir lolllll.

    Moi tout ce dont j'ai besoin c'est de régler le problème de ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
        tempVal: extended;
    begin
     
        tempVal := 0.001;
     
        while (tempVal < 1) do
        begin
            tempVal := tempVal * 10;
        end;
     
    end;
    Au bout de 3 tours tempval vaut 1 mais le < 1 répond false.
    En prenant en compte 'epsilon dans la comparaison, je peux régler ça avec CompareValue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
        tempVal: extended;
    begin
     
        tempVal := 0.001;
     
        while (CompareValue(tempVal, 1) = -1) do
        begin
            tempVal := tempVal * 10;
        end;
     
    end;
    Mais je ne veux pas commencer à mettre des CompareValue partout dans mon programme, ça devient compliqué.
    Je chercher à overrider les opérateurs = < > pour qu'il utilise le CompareValue nativement.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 764
    Points : 28 527
    Points
    28 527
    Par défaut
    dans ce cas utilise des entiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var
        tempVal: Integer;
    begin
     
        tempVal := 1;
     
        while (tempVal < 1000) do
        begin
            tempVal := tempVal * 10;
        end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    Je ne peux pas, hehehe les valeurs qui vont rentrer dans ma fonction sont des valeurs monétaires.

    Pour l'exemple j'ai mis tempVal := 0.001 mais en vrai, tempval va venir d'une valeur monétaire passée en paramètre. Je dois compter quelle est la profondeur des décimales du résultat selon la position du digit le plus haut.

    Exemple :

    4.0 va donner 0
    56.76 va donner 1
    124.45 va donner 2
    0.4 donne -1
    0.0232 donne -2
    0.001 va donner -3
    0.00000006898 donne -8

    Pour l'exemple j'ai mis seulement le while qui vérifie en bas de 1.

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 764
    Points : 28 527
    Points
    28 527
    Par défaut
    currency alors, ça a l'apparence d'un extended mais c'est un entier à virgule fixe en fait.

    Currency est un type de données à virgule fixe. L'erreur maximale lors de la conversion de virgule flottante en Currency est de 0.00005.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    12 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2006
    Messages : 12 978
    Points : 23 624
    Points
    23 624
    Par défaut
    Si c'est du monétaire, il faut respecter quelques règles comptables avec le compte d'arrondi pour gérer l'égalité d'une somme lors d'une conversion de devises.
    En particulier depuis l'Euro qui impose un calcul sur 6 digits pour gérer correctement l'arrondi vers le Currency (puis vers le Centime)

    Citation Envoyé par myflash Voir le message
    mais je veux pas commencer a mettre des CompareValue partout dans mon programme ca devient compliquer.
    Ou alors il manque une généricité à votre code, peut-être travailler sur des objets métiers qui regroupent ce besoin précis.



    Si c'est juste compter le nombre de digits après la virgule, il y a surement plus simple, pourquoi ne pas un ToString puis compter la position du premier chars <> 0 avant et après le séparateur décimal ... sans parler des fonctions de Logarithme

    je pense qu'il y a une évidence mathématique :

    Floor(Log10(4,0)) = Floor(0,6020599...) = 0
    Floor(Log10(56,76)) = Floor(1,7540423...) = 1
    Floor(Log10(124,45)) = Floor(2,0949949...) = 2
    Floor(Log10(0,4)) = Floor( -0,3979400...) = -1
    Floor(Log10(0,0232)) = Floor(-1,6345120151...) = -2
    Floor(Log10(0,001)) = Floor(-3)
    Floor(Log10(0,00000006898)) = Floor(-7,161276...) = -8

    Floor je pense, arrondi positif vers le bas et le négatif vers le prochain entier inférieur (donc -7.5 devient -8 si je me trompe pas)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    Quand je teste en Delphi :

    Log10(0,001) = -3
    Floor(Log10(0,001)) = -4

    Sûrement encore mon problème d'epsilon lolllllllll

    J'imagine que Log10(0.001) doit donner quelque chose comme -3.0000000000001

  9. #9
    Expert confirmé
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    juin 2004
    Messages
    987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juin 2004
    Messages : 987
    Points : 5 108
    Points
    5 108
    Par défaut
    Pourquoi ne pas regarder ici : https://blog.grijjy.com/2021/05/05/high-precision/

    J'ai parfois aussi utilisé la fonction RoundTo qui permet de ne conserver que les X décimales significatives voulues (ça évite de se retrouver avec un 3.00000000001 après calcul par exemple)

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    12 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2006
    Messages : 12 978
    Points : 23 624
    Points
    23 624
    Par défaut
    Cela me fait penser à une solution un peu pourri que j'avais utilisé d'arrondir en deux temps, l'un pour purger l'epsilon en quelque sorte pour que le second ne derive pas trop comme le Floor(-3) qui donne -4 ce qui est aberrant !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //---------------------------------------------------------------------------
    procedure SimpleRoundToE(const AValue: Extended; const ADigit: TRoundToRange = -2): Extended;
    begin
      if ADigit < 0 then
        Result = SimpleRoundTo(SimpleRoundTo(AValue, ADigit - 2), ADigit)
      else
        Result = SimpleRoundTo(AValue, ADigit);
    end;
    Que donne, en théorie, j'ai pas Delphi sous la main, uniquement pour les valeurs < 0

    Floor(SimpleRoundTo(Log10(0,001), -2) = -4
    Floor(SimpleRoundTo(-3.0000000000001, -2)) = -3 ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  11. #11
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 764
    Points : 28 527
    Points
    28 527
    Par défaut
    les entiers c'est tout de même plus simple...dans un de mes derniers projets je suis d'ailleurs passé par là pour un problème d'arrondi, la version utilisant FMod partant en vrille.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  12. #12
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    Je code une solution crypto...
    Les valeurs peuvent aller de + 18 a -18 digits
    999999999999999999,999999999999999999
    (si je ne me trompe pas)
    Tout ça sans aucune erreur de calcul ou de comparaison à la 18ième decimale.
    Même si je prends un extended qui a encore plus de précision, ça reste que 0 n'est pas egal a 0.000000000000000000000000000000000000000000000000000000000000000001
    hehehehe

    Je suis en train de faire des fonctions comme les if en DOS :

    EQU : Equal
    NEQ : Not equal

    LSS : Less than <
    LEQ : Less than or Equal <=

    GTR : Greater than >
    GEQ : Greater than or equal >=

    Ouein ça c'est une autre chose quand je vais avoir fixé mes fonctions, je vais devoir tester avec des nombres négatifs.

    Mais avant je dois au minimum être capable de faire mes 6 fonctions sans aucune erreur à la 18ième décimale.

  13. #13
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 764
    Points : 28 527
    Points
    28 527
    Par défaut
    pour la cryptologie, quand je n'utilise pas les fonctions de l'OS ou d'OpenSSL, j'utilise BigInteger
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  14. #14
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    j'ai lus quelque par que biginteger est pas complet, ya encore des bug pis qu'il a des probleme avec le mod.

  15. #15
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    Bon je commence un type Number qui vas prendre 3 integer pour les entier et 3 pour les fraction, je vais integer tout les operator que je vais avoir besoin au fur et a mesure....

    ma pouvoir prendre les nombre :
    9903520300447984150353281023.9903520300447984150353281023
    faque ma surrement limiter mes valeur a :
    999999999999999999999999999.999999999999999999999999999

    avez vous des conseils ? je pense je m'embarque dans quelque chose de hazardeux comme terrain...

    Comment je peux controller comment un Number vas etre affecter a un autre Number?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    type
      Number= record
        Value: integer;
        class operator Implicit(a: Number): Number;   <---- E2521 Operator 'Implicit' must take one 'Number' type in parameter or result type
      end;

  16. #16
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 764
    Points : 28 527
    Points
    28 527
    Par défaut
    Citation Envoyé par myflash Voir le message
    j'ai lus quelque par que biginteger est pas complet, ya encore des bug pis qu'il a des probleme avec le mod.
    tu as lu ça où ?

    en quoi est-il incomplet ?

    PS: à ma connaissance Rudy Velthuis est décédé, ce repository ne bougera sans doute plus.

    Je l'utilise dans mon compilateur APKPascal pour signer les APK et n'ai rencontré aucun soucis.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  17. #17
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    bon au moin ca l'air a marcher pour avoir des tres gros chiffre...

    au fait comment on fait pour inclure un unit qui est dans un sous repertoire ? BigNumbers a trop de fichier, j'aimerais le laisser dans un sous folder BigNumbers pour garder les dependence clair.

  18. #18
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 764
    Points : 28 527
    Points
    28 527
    Par défaut
    Citation Envoyé par myflash Voir le message
    bon au moin ca l'air a marcher pour avoir des tres gros chiffre...
    c'est un peu le but...
    Citation Envoyé par myflash Voir le message
    au fait comment on fait pour inclure un unit qui est dans un sous repertoire ? BigNumbers a trop de fichier, j'aimerais le laisser dans un sous folder BigNumbers pour garder les dependence clair.
    il suffit d'ajouter le répertoire dans Projet/Options/Compilateur Delphi : Chemin de recherche.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  19. #19
    Futur Membre du Club Avatar de myflash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : juillet 2011
    Messages : 43
    Points : 8
    Points
    8
    Par défaut
    tout cas merci Paul, ma dire que ca me tentais pas de me tapper la job que Rudy a fait pour faire son BigNumber.... offf mais il faut ce qu'il faut, j'aurrais fait une version simplifier de ca, mais neanmoin ca aurrais pris beaucoup de temp.
    merci aussi pour l'aide que tu m'a apporter avec le websocket. j'ai reussi a faire une version tres raisonable que j'utilise pour faire mon programme.

  20. #20
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    mars 2006
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : mars 2006
    Messages : 1 419
    Points : 2 649
    Points
    2 649
    Billets dans le blog
    10
    Par défaut
    Le processeur effectue les calculs en base 2. On sait donc exprimer un demi, un quart, un huitième, etc. soit 1 / 2^n mais on ne sait pas décrire 1/10 ou 1/100 qui sont des nombres incommensurables en base 2. Voilà donc un résultat de cette anomalie.
    Nom : aaa.jpg
Affichages : 60
Taille : 22,0 Ko
    Tu peux reproduire le problème avec n'importe quel outil. Voir exemple ci joint en excel
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [Binaire] Opérateurs de rotation dee bits ?
    Par Tifauv' dans le forum C
    Réponses: 3
    Dernier message: 09/11/2017, 12h29
  2. Opérateur de statistique
    Par Phil951 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/01/2004, 16h12
  3. Opérateur like
    Par Troopers dans le forum ASP
    Réponses: 3
    Dernier message: 15/09/2003, 20h19
  4. opérateur non applicable à ce type d'opérande
    Par Amon dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 19h07
  5. [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    Par Amon dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 08/11/2002, 23h22

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