1. 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) RSS

    • А при чем тут ООП?
      Ответить
      • Можно было объявить массив из Series и использовать этот массив. Хотя бы.
        Ответить
        • Использование массивов это у нас теперь уже ООП? хм...
          Ответить
        • 1: case Kolvo_Issledovanii of
                      1: Series6.Assign(Series33);
                      2: Series34.Assign(Series33);
                      3: Series59.Assign(Series33);
                      end;


          а смысл?: оно было бы всё так же УГ... но уже с индексами:
          1: case Kolvo_Issledovanii of
                      1: Series[6].Assign(Series[33]);
                      2: Series[34].Assign(Series[33]);
                      3: Series[59].Assign(Series[33]);
                      end;

          тут нужно сам подход менять -- хотя бы подумать как можно это дело упростить: прописать какие-то вычисляемые индексы или чот еще...

          зы: а вообще смешанные эмоции:
          норм: Не только в нашем универе проходили курс ООП, изучая как перетянуть кнопочку на формочку в УГ делфе =(

          но в то же время: Это пздц какой-то, какие дибилы составляют программу и допукают имбицилов преподавать в вузах на ит -(((
          Ответить
          • да и если бы аффтор упростил бы код, там вышло примерно 1 страница...

            зы: хотя для тех участков в конце - индексы были бы супер...
            Ответить
    • А если бы Series было бы 1000?..
      Ответить
    • Можно и без ООП от кейсов избавиться.
      http://govnokod.ru/4249
      Ответить
    • 100% говнокод.
      как дипломная работа (читай защита квалификации инженера) - отстой.
      Инженерная задача не решена, в реализации (может быть даже и нормального инженерного решения) не проведен какой-либо анализ (в противном случае получился бы более-менее приличный код по канонам ООП), позволяющий не делать индусский код
      Однако при защите дипломных работ прежде всего рассматривается алгоритмический подход к решению задачи и понимание студента проблемы (сам так делал - а что еще можно сделать за 10 минут?) Качество кода не смотрят никогда - почему-то
      это никого не интересует. Даже защитах по специальности "Программное обеспечение".
      Более того при нынешнем подходе можно защитить диплом по этой специальности не имея работающей программы (не написав ни строчки кода все-таки не получится).
      При написании дисера - вообще не нужно писать программу самому - это в первую очередь научная работа, где должна быть "научная новизна", т.е. инженерная задача для этого не подходит. Подразумевается, что инженерные задачи должны реализовывать студенты при выполнении курсовых или дипломных работ. А непосредственно тот, кто пишет дисер должен понять закономерности, как-то систематизировать, предложить новый подход и т.д.
      Откуда возьмутся преподаватели (не считая редких единичных случаев), которые будут нормально преподавать?
      В результате мы получаем подобные дипломы.
      Ответить
    • Вперед, пишем скрипт для генерации дипломной на несколько строк кода :)
      Ответить

    Добавить комментарий