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 :

Question de bââse


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut Question de bââse
    Bonjour à tous !
    J'ai une question qui pour moi est une évidence, mais je suis en train de lire du code depuis quelques jours, et je me dis, que je dois me planter complètement


    Question 1 :
    Qu'elle est la l'instruction qui dure le moins longtemps en mémoire : SI ? POUR ? SELON ?

    Question 2 :
    Qu'est ce qui vaut mieux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SI a="1"
       SI b = "2"
           SI n = "3" ALORS
           n="0"
           FIN
       FIN
    FIN
    OU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SI a="1" ET b="2" ET n="0" ALORS
    n="0"
    FIN
    Voila.

    Ca me donne des boutons, le code est partout comme ca avec des
    SELON Z
    SELON Y
    SELON X

    et autre... Alors je me demande si j'ai raison ou si je me bloque pour pas grand chose.

    Merci beaucoup pour vos éventuelles réponses !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Par défaut
    Ben ça dépends du langage

    si ton langage examine toutes les conditions dans un if, le si a & b & c ... sera plus long que si a, si b, si c ...Si au contraire il arrête dès qu'une condition est fausse, les deux formes de si sont équivalentes.

    Ensuite, je ne sais pas ce que fait ton appli, mais s'il y a par ex. des accès fichiers ou bases de données, le temps passé dans les tests est insignifiant par rapport à celui de ces accès.

    Et je te parles pas d'une appli. interactive ou elle passe 99% de son temps à attendre que l'interface chaise/clavier s'active

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    Je suis sous WinDev (...). L'application est assez conséquente (plusieurs milliers de ligne).
    Mais quand je vois une procédure qui fait 3000 lignes avec 70-100 SI ou SELON comme je l'ai présenté ci dessus, je me dis que ce n'est pas si insignifiant que ca .

    Parce que si j'améliore toutes les procédures et que je gagne ne serait-ce que 30 ou 40 SI par procédure, je pense que ca peut être intéressant.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Par défaut
    Tout dépends du nombre de fois ou ta proc. est utilisée : si c'est dans une boucle en centaines de milliers, ça peut être intéressant (j'ai bien dit "ça peut" hein et encore, tu ne va gagner que quelques millièmes de seconde, à toi de voir si le temps que tu va y passer vaut le temps gagné à l'utilisation ), si c'est 1000 fois, tu a certainement d'autres moyens d'optimiser.

    Après si c'est pour réduire ta proc. de taille, regarde plutôt pour la découper en plusieurs. Ca sera plus lisible et plus maintenable (un des mes profs. m'a toujours rabaché : je ne veut pas de proc. qui fait plus d'un écran de long ! si ça dépasse, c'est qu'elle est trop complexe et que tu a mal analysé ton traitement, ben je continue sur la même voie^^).

    Sinon, c'est quoi "selon" comme structure de contrôle ? "select/case" ?
    Pour réduire des select case, je ne connais pas de SilverBullet.
    Ca dépends aussi du langage, de ce que tu veut faire, etc...

    Par ex. avec VB6, "choose" peut parfois remplacer un select/case la ou un langage sans équivalent va t'obliger à utilise ce select/case, etc...

    Mais à mon avis, te braque pas sur les SI en tant que tel, regarde plutôt comment découper ta proc.
    A la rigueur, des fois tu peut remplacer de "groupes" de condition par une variable.
    par ex: tu a plusieurs fois sans que a,b,c ne soient modifiés entre deux if ? une variable puis tu remplace tes if par ...ça revient au même fonctionnellement mais 1) l'évaluation du "a & b & c" n'est faite qu'une fois 2) code est - à mon sens - plus lisible.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    > Sinon, c'est quoi "selon" comme structure de contrôle ? "select/case" ?

    C'est bien ca.


    Mais tu as répondu à ma question, je te remercie. Je vais pousser ses idées : découper ces procédures sans fin, et arrêter de me bloquer sur ces instructions.
    Merci en tout pour avoir éclairer ma lanterne.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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