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

Ada Discussion :

Amélioration, encore et encore, de mon code.


Sujet :

Ada

  1. #1
    Invité
    Invité(e)
    Par défaut Amélioration, encore et encore, de mon code.
    Bonjour, bonjour à tous.

    Voila j'ai pas de doc, j'ai pas de commentaire dans les codes.
    Si vous voulez néanmoins jeter un oeil ?
    Si ça vous intéresse, c'est un agent de dialogue qui exploite une table de réseaux de neurones formel.
    Mono post. Donc, je doit ajouter encore la fonctionnalité réseaux, c'est un détail, pour l'évolution du code.

    Que puis-je faire pour améliorer ce code.
    Si non, qu'en pensez vous simplement ?
    les source ici http://www.toofiles.com/fr/oip/docum...k_000gtar.html

    Merci pour votre contribution.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 21
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    J'espère que la réponse ne s'est pas trop faite attendre.

    Je viens de jeter un œil à "chaos.glossary" et quelque chose m'a chiffonné presque immédiatement : les fonctions "<" et ">" sur T_Word qui comparent les champs "word" respectifs de Left et Right. On peut procéder ainsi (je fais uniquement "<", la chose pouvant se commuter aisément) :

    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       function "<"(Left, Right : in T_word) return Boolean is
          Left_String : String := Unbounded.To_String(Left.word);
          Right_String : String := Unbounded.To_String(Right.word);
       begin
          return Left_String < Right_String;
       end "<";

    Ce qui est tout de suite plus simple. On pourrait même se "débarrasser" des variables mais cela risque d'être assez illisible après par contre.

    Ada se débrouille très bien (à mon avis) pour comparer les chaînes de longueurs différentes. Par exemple, les inégalités suivantes sont vraies en utilisant l'opérateur prédéfini :

    "ab" < "aba"
    "aba" < "ac"

    En lisant votre code, je vois aussi :

    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
          if Left.Item > Right.Item then
             return True;
          else
             return False;
          end if;

    On peut se contenter d'écrire :

    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          return Left.Item > Right.Item;

    Enfin, je vous dis ceci à titre indicatif, ce n'est peut-être pas votre "école".

    Pour les exceptions, c'est peut-être du détail, mais on pourrait faire un message un peu plus développé que "explicit raise" en utilisant le package Ada.exceptions.

    Je vais essayer de regarder le reste mais je ne garantis pas que ça soit particulièrement rapide.

    En espérant que ça vous aide

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Jaizu, bonjour à tous.
    Merci de l'intérêt que vous portez à mon projet.
    Je prends note de vos remarque.
    Je ne savais pas pour les chaînes de caractères.
    Je regarderai du côté de Ada.Exceptions.
    Prenez votre temps, j'ai tout le mien.
    Merci déjà pour ça.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour, bonjour Jaizu. Je vous poste la dernière version de ce programme que j'ai remanier en vue d'implémenter une version réseau.
    Il ne contient toujours mas de commentaire.
    De plus, je n'ai pas supprimer mes point de débugage , dont il y a des put(TOTO) un peut partout.
    Je n'ai pas encore appliquer votre correction concernant la comparaison des chaînes.
    En vous souhaitant bonne lecture et vous remerciant de l'aide que vous m'apporterez.

    J'oubliais le paquets. :: np-2.01100e+003.tar.gz

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 21
    Points : 30
    Points
    30
    Par défaut
    Bonsoir Jovalise,

    Malheureusement, pas grand chose de neuf... Mais un peu quand même !

    J'ai regardé en détail "Np.Glossary". Il y a juste une chose qui peut se faire vraiment plus simplement :

    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    Fixed."*"(1,Character'Val(I))

    Qui peut se faire tout simplement :

    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    (1 => Character'Val(I))

    Cela créera une String de taille 1 avec Character'Val(I) en valeur à l'indice 1.

    Le reste est plus de l'ordre de la suggestion ou du regard extérieur qu'autre chose. J'ai "balisé" certains ajouts pour qu'ils soient plus visibles et je les ai commenté pour les expliquer au mieux.

    Voilà voilà ! Et désolé pour l'attente

    edit : avec la pièce jointe, c'est mieux...
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour jaizu,
    Je poste juste pour te remercier de l'investissement que tu as fait.
    Je prendrais en compte des corrections.
    Merci.

Discussions similaires

  1. Votre avis pour améliorer mon code (opérations matricielles)
    Par Schopenhauer dans le forum Débuter
    Réponses: 42
    Dernier message: 17/09/2010, 19h25
  2. [WD15] Comment améliorer mon code LanceAppli
    Par papydev dans le forum WinDev
    Réponses: 13
    Dernier message: 20/08/2010, 12h17
  3. Encore un pb avec mon tree
    Par debo41 dans le forum Flex
    Réponses: 4
    Dernier message: 24/09/2008, 19h55
  4. (encore un)Problème avec mon simulateur de pluie
    Par Jordinateur dans le forum SDL
    Réponses: 6
    Dernier message: 09/09/2007, 11h51
  5. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 20h13

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