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

Débats sur le développement - Le Best Of Discussion :

Quel est le pire bout de code que vous ayez jamais écrit ?


Sujet :

Débats sur le développement - Le Best Of

  1. #41
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par SurferIX Voir le message
    Si c'était en C je ne comprends pas comment tu peux éviter ça à moins que tu ne veuille dire "elseif" ou "continue" ou "break" à la fin de chaque évaluation ?
    Citation Envoyé par rt15 Voir le message
    La variable code ne peut a priori pas être à la fois égale à 1, 6, 'c', etc... en même temps (Sauf si elle change dans les "..."). Donc des else if serait plus adapté. Mais le code ne serait environs que deux fois plus rapide (Complexité passant de n à n/2). Si code == 'c', on comparerait code avec 1, 6 et 'c', mais plus les suivant. Une optimisation est donc de mettre les cas courants dans les premiers else if. Comme ça on match plus vite.

    Mais si les valeurs de code sont dans une plage relativement petite (Un entier de 0 à 400 par exemple), en C on peut faire un tableau de fonction, et là normalement ça dépote pas mal vu que l'on ne fait plus n tests mais que l'on a un accès direct (Par contre l'appel de fonction aura un coût).

    Code C : 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
    47
    48
    49
    50
    51
    52
    #include <stdio.h>
     
    typedef void (*treatment)();
     
    void treatmentA()
    {
      puts("Alpha");
    }
     
    void treatmentB()
    {
      puts("Bravo");
    }
     
    void treatmentC()
    {
      puts("Charlie");
    }
     
    void treatmentD()
    {
      puts("Delta");
    }
     
    void treatmentE()
    {
      puts("Echo");
    }
     
    treatment treatments[] = {
      treatmentA,
      treatmentB,
      treatmentC,
      treatmentD,
      treatmentE
    };
     
    int __cdecl main(int argc, char* argv[])
    {
      char code;
     
      code = getchar();
      if ((code >= 'a') && (code <= 'e'))
      {
        treatments[code - 'a']();
      }
      else
      {
        printf("Le caractère \"%c\" n'est pas pris en charge.\n", code);
      }
      return 0;
    }
    Pourquoi faire simple quant on peut faire compliqué ?

    La solution simple et efficace en C c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch (code) {
         case 1 :  ...;   break;
         case 6 :  ...;   break;
         case 'c' :  ...; break;
         case 10 :  ...;  break;
         case 'a' :  ...; break;
         case 11 :  ...;  break;
         .....
         default : ....;  break;
         }
    Si tu analyse le code produit par le compilateur, tu t'aperçois que code est transformé en un entier plus ou moins continu qui est ensuite utilisé pour attaquer un tableau d'adresses.

    Mon code de l'époque était d'autant plus navrant que l'instruction correspondante existe en PL1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT;
         WHEN  (CODE=1)   ... ;
         WHEN  (CODE=6)   ... ;
         WHEN  (CODE="c") ... ;
         WHEN  (CODE=10)  ... ;
         WHEN  (CODE="a") ... ;
         WHEN  (CODE=11)  ... ;
         ...
         OTHERWISE ...
    END;
    C'est un type d'instruction qui date pratiquement depuis les débuts de la programmation. C'est ainsi que l'on peut écrire en COBOL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Algorithme transformant CODE en un entier continu allant de 1 à 399 (si 400 cas).
    GO TO P1 P2 P3 P4 ... P999 DEPENDING ON CODE.
    P1.
         ....
        GO TO SORTIE.
    
    P2.
         ....
        GO TO SORTIE.
    .....
    SORTIE..
    C'est évidemment du COBOL, donc horrible, mais il faut prendre en compte l'époque.



    Mais ceci m'a rappelé une autre bévue monumentale, pas du code mal foutu, mais une erreur qui m'a bloqué pendant pratiquement deux semaines.
    C'était sur mon premier ordinateur, un IBM 1620 (si il y a ici des gens qui l'on connut, il auront sans doute un souvenir émut), en 1964.
    La 1620 ne pouvait se programmer qu'en assembler ou en FORTRAN. Il s'agissait d'un programme écrit en assembler dans lequel j'avais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ASSEMBLER :                              ÉQUIVALENT C :
    TF   VALEUR,4                            valeur = *4;
    
    A la place de :
    TFM  VALEUR,4                            valeur = 4;
    Le bug faisait que toute la mémoire était remplie d'un nombre arbitraire, pratiquement jamais le même, impossible d'avoir un état mémoire "post mortem", j'ai passé deux semaine avant de trouver. Parce que chaque fois que j'analysais le code, je me disais, je fais bien le transfert (affectation) donc c'est OK, etc, etc.

  2. #42
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par abgech Voir le message
    C'est un type d'instruction qui date pratiquement depuis les débuts de la programmation. C'est ainsi que l'on peut écrire en COBOL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Algorithme transformant CODE en un entier continu allant de 1 à 399 (si 400 cas).
    GO TO P1 P2 P3 P4 ... P999 DEPENDING ON CODE.
    P1.
         ....
        GO TO SORTIE.
    
    P2.
         ....
        GO TO SORTIE.
    .....
    SORTIE..
    En effet, même certains des premiers BASIC avaient l'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ON variable GOTO ligne1, ligne2, ... lignen

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #43
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Retrouvé dans un vieux programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF Majuscule("i") = "I" THEN
    ...
    Aucune aide par MP, utilisez le forum.

  4. #44
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 78
    Points
    78
    Par défaut
    je suis dans le me cas que thorium90.
    j'ai commencé avec QBasic en 6eme et je n'avais qu'un bouquin expliquant la base du langage et la documentation intégré à l'éditeur (en français).
    j'ai utilisé à outrance GOTO, je ne savais utiliser ni les fonctions, ni les boucles (mais quelque part, c'était similaire). Tester à la main tous les cas (500 lignes qui aurais pus être écrite en 30).

    Avoir honte de ce que j'avais écris? non, j'en ai même encore de la fierté.

    Sinon le code le plus original doit être celui que j'ai réalisé pour m’entraîner à apprendre les régions de France. j'ai dessiné pixel par pixel la carte de la France. chaque pixel étant représenté par une ligne de code (où même plusieurs, je ne sais plus). Au final j'ai dépassé le nombre maximum de lignes de code que pouvait supporter l'éditeur (32768 lignes). Ce qui m'a obligé à utilisé pour la première fois les fonctions (sans argument, je comprennais pas la syntaxe...)

    Ensuite, je suis passé à Visual Basic 5 (version piratée) en Première/Terminal. Pour aujourd'hui programmer en C/C++.

    La dernière fois que j'ai utilisé QBasic, c'était à la fin d'un TP sur les réseaux industriels. Le TP se déroulait sur un viel ordinateur sur DOS. il me semble que j'ai dégrippé le buzzer.

  5. #45
    Membre du Club
    Homme Profil pro
    Chercheur en Sécurité
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en Sécurité

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 56
    Points
    56
    Par défaut c'etait dans projet en C sur "le voyageur de commerce"
    j'ai inverser les arguments du main():
    j'ai écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(char * argv[], int argc)
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char * argv[])
    et ça plantait ça plantait, impossible de savoir d'où vient l'erreur, gdb me signalait autre chose comme source d'erreur.

    c'est après qu'on m'a expliqué que "C" ne contrôle pas le type des arguments il les empile directement dans le pile... c'était très amusant

  6. #46
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Points : 12
    Points
    12
    Par défaut Honte oui, mais plus tard
    Le pire programme que je n'ai jamais fait est celui que je fait en ce moment : Un programme en Java sur Android et je n'est pas encore compris à quoi servait une classe, un héritage, etc... Je suis totalement ignare en programmation objet. Quand j'aurai fini le programme, j'espère que j'aurais le temps de me former...
    Le secret pour développer sans maîtriser le langage ?

    - le besoin
    - Eclipse
    - la ténacité
    - Internet
    - Copier / coller

    Et le pire ? c'est que ça tourne et pas mal en plus...

    Oui, j'ai honte, mais la faim justifie les moyens. cry:

  7. #47
    Membre éclairé Avatar de rt15
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 665
    Points
    665
    Par défaut
    Citation Envoyé par abgech Voir le message
    La solution simple et efficace en C c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch (code) {
         case 1 :  ...;   break;
         case 6 :  ...;   break;
         case 'c' :  ...; break;
         case 10 :  ...;  break;
         case 'a' :  ...; break;
         case 11 :  ...;  break;
         .....
         default : ....;  break;
         }
    Si tu analyse le code produit par le compilateur, tu t'aperçois que code est transformé en un entier plus ou moins continu qui est ensuite utilisé pour attaquer un tableau d'adresses.
    Effectivement, au moins gcc et VC6 le font , même sans flag d'optimisation. Et ça doit être vachement plus rapide que moi vu qu'ils font des jmp là où j'ai mis des call . Trop fort ces compilos.

    Du coup mon code a toute sa place dans ce thread !

  8. #48
    Membre chevronné Avatar de zeyr2mejetrem
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 471
    Points : 2 040
    Points
    2 040
    Par défaut
    Citation Envoyé par Ericou Voir le message
    Le pire programme que je n'ai jamais fait est celui que je fait en ce moment : Un programme en Java sur Android et je n'est pas encore compris à quoi servait une classe, un héritage, etc... Je suis totalement ignare en programmation objet. Quand j'aurai fini le programme, j'espère que j'aurais le temps de me former...
    Le secret pour développer sans maîtriser le langage ?

    - le besoin
    - Eclipse
    - la ténacité
    - Internet
    - Copier / coller

    Et le pire ? c'est que ça tourne et pas mal en plus...

    Oui, j'ai honte, mais la faim justifie les moyens. cry:
    On sait ce que c'est, on est tous passé par là.
    ...
    Si tu veux on peut en parler, ... , personne ne te juge



    Si tu ne sais pas faire, apprends. Si tu fais, fais bien. Si tu sais bien faire, enseigne.
    Mieux vaut paraître stupide quelques temps que rester stupide toute sa vie.

  9. #49
    Membre chevronné

    Homme Profil pro
    Mentaliste
    Inscrit en
    Mars 2008
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Mentaliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 872
    Points : 1 813
    Points
    1 813
    Par défaut
    Citation Envoyé par Ericou Voir le message
    Le pire programme que je n'ai jamais fait est celui que je fait en ce moment : ...

    - la ténacité
    ...
    Déjà t'es tenace, c'est presque la meilleure qualité dans ce cadre
    .I..

  10. #50
    Futur Membre du Club
    Profil pro
    Chef de projet
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par megahertz77 Voir le message
    en vb :

    If True then ....

    (ou bien)

    If a = True then
    b = true
    else
    b = false
    endif

    en général j'optimise dans un 2ieme temps lol : b = a c'est pas mal non plus
    Je suis consultant en ITSM, mais avec un lourd passé dans le dév logiciel, et j'en vois très souvent des codes comme ça, et quand je fais une réflexion aux "Consultants", ils me disent que ça fonctionne aussi bien

  11. #51
    Membre averti Avatar de Amine_sas
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 245
    Points : 307
    Points
    307
    Par défaut
    Ce n'est certainement pas mon pire code mais c'était le pire 'void' que j'ai tapé. En java, un 'void' glissé entre 'public' et le nom du constructeur, ça donne une méthode et le constructeur n'est jamais appelé en initialisation .
    "Un remboursement des programmes défectueux serait envisageable mais toute l'industrie du logiciel ferait faillite la première année." Andrew Tanenbaum.

  12. #52
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Citation Envoyé par pyros Voir le message
    #define private public avant d'inclure un .h.

    Comme l'a dit un collègue, c'est comme ça qu'on devient délinquant
    Le pire c'est qu'on avait cherché, mais on n'avait pas trouvé d'autre solution...
    Chapeau, j'aurais jamais pensé à ça!
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  13. #53
    Membre chevronné Avatar de zeyr2mejetrem
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 471
    Points : 2 040
    Points
    2 040
    Par défaut
    Citation Envoyé par pyros Voir le message
    #define private public avant d'inclure un .h.

    Comme l'a dit un collègue, c'est comme ça qu'on devient délinquant
    Le pire c'est qu'on avait cherché, mais on n'avait pas trouvé d'autre solution...
    RAAAAAAAAAAAHHHHHHHHHHH, Je suis aveugle !!!!!
    Si tu ne sais pas faire, apprends. Si tu fais, fais bien. Si tu sais bien faire, enseigne.
    Mieux vaut paraître stupide quelques temps que rester stupide toute sa vie.

  14. #54
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Citation Envoyé par zeyr2mejetrem Voir le message
    RAAAAAAAAAAAHHHHHHHHHHH, Je suis aveugle !!!!!
    Non, vous êtes peut-être un peu hypocrite! Votre pire bout de code SVP? ca peut toujours aider des vieilles étudiantes comme moi... Merci!
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  15. #55
    Membre du Club
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    54
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Le pire que j'ai eu à écrire était un algo d'optimisation de place pour des produits laitiers dans un rayon en fonction de critères tels que: poids, prix, niveau d'affichage, coefficient de casse, promotion, etc ... j'ai dû me remettre aux transformations de matrices.

    Sinon dans le genre gestion de pile "facon" binaire où on range des 0 et des 1 et la table est "par défaut" initialisée avec des zéros, cherchez l'erreur:

    template <class T, int K>
    class pileBin {
    T bin[K];
    public:
    void insert (int x, T value);
    };

    template <class T, int K>
    void pileBin<T,N>::insert (int x, T value) {
    bin[T]=x;
    }

    -> c'est bin[x] = T bien évidemment ... sinon on n'insert que dans les 2 premières case!

  16. #56
    cedrix57
    Invité(e)
    Par défaut
    J'ai appris la programmation en commencant par le C. Un jour je suis arrivé à un TP ou il faut réaliser le jeux mario sokoban.

    J'ai programmé ce jeux en mettant tout mon code dans la fonction main...
    Dernière modification par Domi2 ; 03/10/2011 à 09h25.

  17. #57
    Membre chevronné

    Homme Profil pro
    Mentaliste
    Inscrit en
    Mars 2008
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Mentaliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 872
    Points : 1 813
    Points
    1 813
    Par défaut
    Citation Envoyé par cedrix57 Voir le message
    J'ai appris la programmation en commencant par le C. Un jour je suis arrivé à un TP ou il faut réaliser le jeux mario sokoban.

    J'ai programmé ce jeux en mettant tout mon code dans la fonction main...
    Pas mal... en parlant de C : mes pires bouts de code sont toujours d'actualité, mes pour mes projets personnels. J'ai un (grave ) problème avec les pointeurs en C, et faire des copies de quelque chose qui n'est pas un pointeur me gêne, alors tout mon code, systématiquement, passe par des pointeurs, même pour copier de même structure à même structure, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        if (psrc != &((*ptabgroup)[*len])) {
            memcpy(psrc, &((*ptabgroup)[*len]), sizeof(struct cell_group));
        }
    Alors que peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        if (psrc != &((*ptabgroup)[*len])) {
            psrc[0] =(*ptabgroup)[*len];
        }
    fonctionnerait (ou quelque chose comme ça), c'est à dire entre 2 et 500 fois plus lisible et maintenable. Mais bon comme c'est pour mes projets personnels, je ne m'en tiens par personnellement grief
    .I..

  18. #58
    Membre averti

    Profil pro
    Inscrit en
    Février 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 284
    Points : 409
    Points
    409
    Par défaut
    Mes pires bouts de code... ceux que je relis quelques temps après, non commentés, as usual^^

  19. #59
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 136
    Points : 89
    Points
    89
    Par défaut
    Un algo qui devait "optimiser" les parcours d'un graphe en fonction du "type" du graphe en choisissant le meilleur algo à chaque fois. On s'est retrouvé à faire des produits de matrices par paquets de cents (en c donc pas du tout optimisé pour ça) pour determiner le type du graphe. Et l'algo d'optimisation avait une complexité supérieure à celle des algos de parcours de graphe "generaux".

  20. #60
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 67
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    La pire ligne jamais rencontrée dans ma carrière :

    if ((a==0) || (a==1) || (a==2) || (a==3) || (a==4) || (a==5) || (a==6) || (a==7) || (a==8) || (a==9) || (a==10) || (a==11) || (a==12) || (a==13) || (a==14)|| (a==15)|| (a==16)|| (a==17)|| (a==18)|| (a==19) )
    {
    }
    Si si.. vérédique


    J'ai aussi vu une génération de requete sql en fonction de 6 cases à cocher.
    64 IF à la suite balayant toutes les possibilités des cases à cocher...

    Sans oublier le fabuleux :
    SI condition
    Faire quelquechose
    SINON
    Faire pareil

Discussions similaires

  1. Le pire bout de code que vous ayez vu
    Par Gordon Fowler dans le forum Actualités
    Réponses: 495
    Dernier message: 06/06/2014, 16h56
  2. Quel est le développeur le plus fainéant que vous ayez rencontré ?
    Par Gordon Fowler dans le forum Actualités
    Réponses: 101
    Dernier message: 13/03/2013, 14h45
  3. Réponses: 85
    Dernier message: 08/02/2011, 18h02
  4. Réponses: 64
    Dernier message: 06/12/2010, 08h04

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