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

Algorithmes et structures de données Discussion :

Avis sur une structure de programme


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut Avis sur une structure de programme
    Bonjour tout le monde !

    Dans un code, je viens de trouver une structure de l'algorithme qui me semble assez peu efficace...
    Qu'en pensez-vous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    do
    {
      if(!ma_fonction1(arg1)) break;
      if(!ma_fonction2(arg2)) break;
      //etc...
    }while(0)
    ma_fonction1 et ma_fonction2 vont mettre en forme arg1 dans une classe par exemple, et retourner un false en cas d'erreur.

    Je trouve cela commode, mais inefficace...
    Qu'en est-il ?

    Merci d'avance !

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par progfou Voir le message
    Bonjour tout le monde !

    Dans un code, je viens de trouver une structure de l'algorithme qui me semble assez peu efficace...
    Qu'en pensez-vous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    do
    {
      if(!ma_fonction1(arg1)) break;
      if(!ma_fonction2(arg2)) break;
      //etc...
    }while(0)
    ma_fonction1 et ma_fonction2 vont mettre en forme arg1 dans une classe par exemple, et retourner un false en cas d'erreur.

    Je trouve cela commode, mais inefficace...
    Qu'en est-il ?

    Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while(mafonction1(arg1) && mafonction2(arg2));
    avec évaluation paresseuse des booléens ?

  3. #3
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Et dans le cas où ce ne sont pas deux mais 20 ou 30 fonctions (ce qui est le cas) ?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par progfou Voir le message
    Et dans le cas où ce ne sont pas deux mais 20 ou 30 fonctions (ce qui est le cas) ?
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(!ma_fonction1(arg1));
    else if(!ma_fonction2(arg2));
    else if(!ma_fonction1(arg3));
    /* ... */
    else if(!ma_fonction20(arg20));

    sinon il y a les pointeurs sur fonctions...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Qu'est-ce qui est le mieux ?
    Ce qui sera bien optimisé par le compilo, facile à lire, etc. ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Par défaut
    Bonjour,

    Pour reprendre l'idée de pseudocode, pourquoi ne pas construire une liste chainée de "fonctions" (une implémentation possible du design pattern "chaine de responsabilité") :
    Plus :
    - code compact (sauf l'initialisation de la liste)
    - code évolutif

    Moins :
    - pas très lisible, ou du moins compréhensible

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Encore plus sale:

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ma_fonction1(arg1) && ma_fonction2(arg2) && ma_fonction3(arg3);
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Oui, ok pour quelques fonctions, mais est-ce que c'est bien de faire cela quand on a des dizaines de fonctions ?

Discussions similaires

  1. [Modèle Relationnel] Avis sur la structure d'une table
    Par le_bono dans le forum Schéma
    Réponses: 4
    Dernier message: 28/07/2009, 05h39
  2. Avis sur la façon de programmer une équation
    Par feynman dans le forum Fortran
    Réponses: 1
    Dernier message: 24/04/2008, 13h59
  3. Avis sur la structure d'une base de données
    Par ange_dragon dans le forum Modélisation
    Réponses: 2
    Dernier message: 29/05/2007, 15h45
  4. avis sur une structure css
    Par sardo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 13/03/2007, 17h19
  5. [Programmation distribuée] Votre avis sur une archi
    Par Acarp47 dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 7
    Dernier message: 29/06/2005, 14h01

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