1. Список говнокодов пользователя maniac

    Всего: 3

  2. Pascal / Говнокод #4553

    +111

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    if Z = 'Pr'
        then
          case N of
          1: Series1.Assign(Series33);
          2: Series2.Assign(Series33);
          3: Series3.Assign(Series33);
          4: Series4.Assign(Series33);
          5: Series5.Assign(Series33);
          end
        else
          if Z = 'ST'
            then
              case N of
              1: case Kolvo_Issledovanii of
                1: Series6.Assign(Series33);
                2: Series34.Assign(Series33);
                3: Series59.Assign(Series33);
                end;
    //пропущено 15 строк 
              5: case Kolvo_Issledovanii of
                1: Series10.Assign(Series33);
                2: Series38.Assign(Series33);
                3: Series63.Assign(Series33);
                end;
              end
            else
              if Z = 'TT'
                then
                  case N of
                  1:
                    case Kolvo_Issledovanii of
                    1: Series11.Assign(Series33);
                    2: Series39.Assign(Series33);
                    3: Series64.Assign(Series33);
                    end;
    //в том же духе, ещё 150 строк
    //вообще-то, в том же духе - весь код, около 5000 строк
    //...
    
    //в другом месте:
      Series1.Clear;
      Series2.Clear;
      Series3.Clear;
      Series4.Clear;
    //пропущено 75 строк
      Series80.Clear;
      Series81.Clear;
      Series82.Clear;
      Series83.Clear;
    //...
    
      Series1.Active:=false;
      Series2.Active:=false;
      Series3.Active:=false;
      Series4.Active:=false;
    //пропущено 75 строк
      Series80.Active:=false;
      Series81.Active:=false;
      Series82.Active:=false;
      Series83.Active:=false;

    Фтопку ООП!
    Такой вот диплом был сдан кем-то в прошлом году.

    maniac, 07 Ноября 2010

    Комментарии (16)
  3. C++ / Говнокод #3835

    +148

    1. 1
    Block *** Cells;

    Лаконичная семантика C++.
    Глядишь на код -- и всё понятно: Cells - это указатель массива указателей на массивы указателей объектов класса Block.
    А устно с первого раза хрен выговоришь.

    maniac, 30 Июля 2010

    Комментарии (37)
  4. C++ / Говнокод #3473

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    //TransFunc.h
    
    //Девиз
    #ifndef MyOwn
    #define MyOwn
    #define Blackjack J♠
    #define Hookers
    #endif
    
    class TransferFunction
    {
    private:
      //...
      class Polynom
      {
        Polynom(TransferFunction * Base);  //Ссылка на базовый класс обязательна!
        //...
      }
      Polynom *Numerator, *Denominator;
    
      //...
    
      class TransferProcess
      {
        TransferProcess(TransferFunction * Base); //Ну куда же я без него...
        DynamicArray<double> TransGraphic;  //Данные графика.
        //...
      }
      TransferProcess * TrancProc;
    
      //...
    
      class SystemOptimisator
      {
        SystemOptimisator(TransferFunction * Base); //Именно так и никак иначе.
        TransferFunction * TempFunction;  //Это я так, на всякий случай...
        Polynom *Backup_Numerator, *Backup_Denominator;
        DynamicArray<Polynom> CorrectingDevice;  //А чо? Работает ведь...
        //...
      }
      SystemOptimisator * Opt;
    
    //Тут ещё классы "Matrix", "Vector", "Report"  и многие другие.
    
    publuc:
      TransferFunction();
      ~TransferFunction();
      void Optimize();
    };

    Краткость - сестра таланта:-)
    Захотелось мне удивить преподавателя (в программировании он не особо подкован (впрочем, как и я :-) )) короткой и простой "программой". Оно работало, до определенного момента, когда я попытался вставить ещё один класс... Потом я, конечно, всё переписал, по-человечески структурировав и избавившись от DynamicArray, но эти грабли я запомнил на всю жизнь.

    maniac, 14 Июня 2010

    Комментарии (113)