Школоло / Говнокод #2841 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 Grivus, (Updated )

Комментарии (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 знаков...
                      Ответить
            • А чем еще писать??? Руками, что ли?
              Кстати, если открывающую скобку ставить на отдельной строке, то меньше текста влезает на экран. А это плохо, спросите любого олдфага.
              Ответить
    • просто девочка:
      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 блядь
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8