1. Pascal / Говнокод #2841

    +104.4

    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
    procedure TForm1.vibor_chiselClick(Sender: TObject);
    begin
    case vibor_chisel.ItemIndex of
       0: begin
          procedure TForm1.But_sortClick(Sender: TObject);
           begin
           n:=vib_el_v.value;
           setlength(massiv,n);
            for i:=0 to n-1 do
            massiv[i]:=strtoint(stringgrid1.Cells[i,0]);
             case vibor_sortirovki.itemindex of
             0: begin
                 sortpuzirek(n,massiv);
                 for i:=1 to n do
                 stringgrid1.Cells[i,0]:=inttostr(massiv[i]);
                end;
             1: begin
                end;
             2: begin
                end;
             end;
            end;
           end;
       1: begin
           procedure TForm1.But_sortClick(Sender: TObject);
           begin
           n:=vib_el_v.value;
           setlength(mas_siv,n);
            for i:=0 to n-1 do
            mas_siv[i]:=strtofloat(stringgrid1.Cells[i,0]);
             case vibor_sortirovki.itemindex of
             0: begin
                 sort_puzirek(n,mas_siv);
                 for i:=1 to n do
                 stringgrid1.Cells[i,0]:=floattostr(mas_siv[i]);
                end;
             1: begin
                end;
             2: begin
                end;
             end;
            end;
           end;
          end;
      end;
    end;

    Орали всей группой. А вы часто описываете процедуры в case of ?)
    PS
    Работает.)

    Запостил: Grivus, 22 Марта 2010

    Комментарии (32) RSS

    • Мило.
      Но зачем? (%
      Ответить
      • Очень) Вот и мы так думали, а что интересно - работает блин)
        Ответить
        • Работает - это дело десятое.
          Мне интересно зачем так делать (%
          Ответить
    • " end;
      1: begin
      end;
      2: begin
      end;
      end;
      end;
      end;
      1: begin"

      не понимаю, ч\то людям так нравится в паскале.
      ужас же нечитаемый.
      Ответить
      • > ужас же нечитаемый.
        Уважаемый, это вопрос грамотного оформления исходника. На том же C можно создать куда более нечитаемый код.
        Ответить
        • хз, я подобное часто вижу. или мне только говнокод попадается?
          Ответить
        • просто как бы это психологические факты

          1) в Си скобки фигурные чётко отличимы от остального текста. begin и end - отличимы хуже.

          2) по конвенции отступ всего 2 символа у паскаля. это тоже заставляет глаза болеть (у сишников - четыре).
          Ответить
          • 1) раньше писал на Паскале. Сейчас пишу на Cи и произошедших от него по синтаксису языках. Фигурные скобки - хорошая вещь, но паскалевские begin и end - до сих пор гораздо ближе и роднее. Так что дело вкуса.
            2) по борландовским стандартам - да, два пробела у Паскаля, но на деле каждый строчит как хочет. Касаемо Си это ещё более справедливо: на Нульчане как-то был тред-опрос про отступы - выяснилось, что сишники юзают два, четыре, восемь, а кто-то и три пробела.
            Ответить
            • Во, у нас на работе по внутрикорпоративному стандарту как раз 3.
              Я привык к 2, но 4 - это слишком много, так что ломка не сильная. Примерно как пинта супротив поллитра.
              Ответить
              • Лично я ещё со школы использую один пробел, и ничего. Это дело привычки.
                Ответить
          • > 1) в Си скобки фигурные чётко отличимы от остального текста. begin и end - отличимы хуже

            Это твоё мнение. А по мне - наоборот.

            > 2) по конвенции отступ всего 2 символа у паскаля. это тоже заставляет глаза болеть (у сишников - четыре).

            А знаешь, почему? А потому, что в Паскале куски текста прекрасно различаются и при двух пробелах, а в сях - нет. Фигурные скобочки плохо видны потому что. И приходится сишникам делать 4 пробела. Сам пробовал в С делать по два пробела, знаю.
            Ответить
            • фигурные скобки видны нормально.
              проблема отступов не в этом. когда идёт жёсткая лесенка, если отступов мало, то сложно соотносить начал с концом, потому что в глазах одно путается с другим.

              begin
                blabla
                begin
                  blabla
                  begin
                     blabla();
                  end;
                  blabla
                end;
                blabla
              end;


              {
                  blabla
                  {
                      blabla
                      {
                          blabla();
                      }
                      blabla
                  }
              }


              хз, в первом случае у меня глаза на лоб лезут, без ста грамм не разобрать, что куда

              во втором случае чётко видно, какая скобка к какой относится. begin-end'ы слишком тяжелые и плохо отличимы от остального текста. а скобки маленькие, поэтому их сразу видно на строке.

              алсо и писать пальцами меньше надо
              Ответить
              • Во-первых слова бегин и енд выделяются ещё и жирным шрифтом. Впрочем, я и на ТП6 без подсветки не особо мучался.
                Во-вторых, скобки слишком лёгкие и не видны вообще.
                Это если спорить о вкусах. А если объективно, то стандарт на отступ был выбран из соображений читабельности и то, что сишники вынуждены были брать больший отступ (а не которым уже и 4 мало, ставят 8), когда дельфисты с 2мя работают и не парятся - о чём-то говорит.
                Ответить
                • Точно, наструячат сишники своих пробелов, потом по горизонтали скролить задолбаешься...
                  или считать где какой параметр по счету...
                  читаемость, мля...
                  Ответить
                  • это ты говнокод читал, значит

                    или у тебя монитор с разрешением 600 на 400
                    Ответить
                    • У меня монитор с разрешением 80 на 25, и, да, я не люблю длинные строки.
                      Если уж говорить за психологию, то вспомнить одну из рекомендаций по быстрому чтению - положение глаз. Длинные строчки в этом смысле невыгодны, даже если не надо скроллить, приходится бегать по строчкам влево-вправо.
                      Ответить
                      • > У меня монитор с разрешением 80 на 25, и, да, я не люблю длинные строки.

                        ну вообще-то в си и считается хорошим тоном, чтобы строка влазила именно в 80 знаков...
                        Ответить
                      • Вам нужно прокачать монитор. Погуглите "разгон монитора"
                        Для примера:
                        http://gorod.tomsk.ru/index-1217502202.php
                        Хотя можно нагуглить и другие методы.
                        У меня уже 1280x960. Скоро повешу на стену, вместо ковра.
                        Ответить
              • А чем еще писать??? Руками, что ли?
                Кстати, если открывающую скобку ставить на отдельной строке, то меньше текста влезает на экран. А это плохо, спросите любого олдфага.
                Ответить
      • просто девочка:
        1) блондинка (не столько по цвету) )
        2) недавно пишет на делфи.
        Ответить
      • }
        }
        }
        }

        намного читаемее, да.
        Ответить
    • Ебать, Школота разошлась.
      Ответить
      • >Школота
        с большой буквы)
        уважает :)
        Ответить
    • Я с Delphi дружил около 10лет то такого никогда не видал. Чесно даже не представляю как оно может работать
      Ответить
      • Мы тоже не представляем, но это работает) *вообще в принципе внутри меток case of во всех языках нечто вроде свободной зоны, но такого конечно никто не ждал)*
        Ответить
    • Пропустив ЭТО через formatter получаем:
      procedure TForm1.vibor_chiselClick(Sender: TObject);
      begin
        case vibor_chisel.ItemIndex of
          0:
          procedure TForm1.But_sortClick(Sender: TObject);
          begin
            n:=vib_el_v.value;
            setlength(massiv,n);
            for i:=0 to n-1 do
              massiv[i]:=strtoint(stringgrid1.Cells[i,0]);
            case vibor_sortirovki.itemindex of
              0:
              begin
                sortpuzirek(n,massiv);
                for i:=1 to n do
                  stringgrid1.Cells[i,0]:=inttostr(massiv[i]);
              end;
              1: ;
              2: ;
            end;
          end;
      
          1:
          procedure TForm1.But_sortClick(Sender: TObject);
          begin
            n:=vib_el_v.value;
            setlength(mas_siv,n);
            for i:=0 to n-1 do
              mas_siv[i]:=strtofloat(stringgrid1.Cells[i,0]);
            case vibor_sortirovki.itemindex of
              0:
              begin
                sort_puzirek(n,mas_siv);
                for i:=1 to n do
                  stringgrid1.Cells[i,0]:=floattostr(mas_siv[i]);
              end;
              1: ;
              2: ;
            end;
          end;
          
        end;
      end;
      end; // !!!!11111

      В конце лишний "end;" => Значит компилироваться не будет => это бред, а не говнокод.
      Ответить
    • >>>не представляю как оно может работать?
      Анонимные методы. Введены начина с Delphi 2009.
      Анонимные метода, по сути своей, это процедуры и функции, за которыми не закрепляется имя. Фактически анонимный метод это переменная, значением которой может быть любая подпрограмма. Эту подпрограмму мы можем переопределять в коде и даже передавать в качестве параметра другой подпрограмме. ©Alex Bozhko
      Ответить
      • И всё бы хорошо, если бы у нас в лабах стояли 2009-ые делфи, но у нас Delphi 6..)
        Ответить
    • Не знаю, как это может работать, оно не компилится (D2010)
      Ответить
      • Мистика, ели нашол старую Delphi 6, поставил.....
        у мну не компилится :(
        Ответить
    • >sortpuzirek
      >massiv

      detstva 4istye glazenky блядь
      Ответить

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