1. PHP / Говнокод #3581

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $vl_c=fetch_array($rs_c);
    $ch1=$vl_c[0]%4;$ch2=((int)$vl_c[0]/4)%4;$ch3=((int)$vl_c[0]/16)%4;
    if($vl_c[16]==''||$vl_c[16]==0){$ch2=0;}if($vl_c[18]==''||$vl_c[18]==0){$ch3=0;}
    $s1=$vl_c[19]%2; $s2=($vl_c[19]/2)%2; $s3=$vl_c[19]/4;
    
    if(($vl_c[20]==0||$vl_c[20]==2&&$s1==1)&&($ch1>1||$ch1==0)){$chk_status1=check_sert(str_replace("\\'","'",$vl_c[1]),str_replace("\\'","'",$vl_c[2]),str_replace("\\'","'",$vl_c[3]),$vl_c[4],$vl_c[5],$vl_c[6],$vl_c[13],$vl_c[14]);} else{$chk_status1=$ch1;}
    if(($vl_c[20]==0||$vl_c[20]==2&&$s2==1)&&($ch2>1||$ch2==0)&&($vl_c[16]!=''&&$vl_c[16]!=0)){$chk_status2=check_sert(str_replace("\\'","'",$vl_c[1]),str_replace("\\'","'",$vl_c[2]),str_replace("\\'","'",$vl_c[3]),$vl_c[7],$vl_c[8],$vl_c[9],$vl_c[15],$vl_c[16]);} else{$chk_status2=$ch2;}
    if(($vl_c[20]==0||$vl_c[20]==2&&$s3==1)&&($ch3>1||$ch3==0)&&($vl_c[18]!=''&&$vl_c[18]!=0)){$chk_status3=check_sert(str_replace("\\'","'",$vl_c[1]),str_replace("\\'","'",$vl_c[2]),str_replace("\\'","'",$vl_c[3]),$vl_c[10],$vl_c[11],$vl_c[12],$vl_c[17],$vl_c[18]);} else{$chk_status3=$ch3;}
    $chk=$chk_status1+$chk_status2*4+$chk_status3*16;

    Запостил: AdOLF_04, 27 Июня 2010

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

    • комментарии будут? а то мне лень смотреть говно, и выискивать, в каком месте ржать
      Ответить
      • будут. могу сказать онозначно, что это не С++. кстати, кэп, не тебе выспрашивать комментарии)

        какие нафиг комментарии? погляди на этот код, его же анриал сопровождать даже из-за форматирования!
        Ответить
        • Кажется, я начинаю понимать, зачем в Паскале после слова if нужно слово then
          Ответить
          • >> Кажется, я начинаю понимать, зачем в Паскале после слова if нужно слово then

            Угу, язык сочинялся с оглядкой на говнокодеров, как и бейсик.
            Ответить
            • Чтобы видно было, где кончается условие.
              Ответить
              • > Чтобы видно было, где кончается условие.

                Это и так видно, если правильно форматировать. Говорю же - с оглядкой.
                Ответить
                • А в Паскале видно, даже если и неправильно форматировать. Хотя что значит неправильно?
                  Например, строчку
                  if a>b then c := a+5 else c := b-5 дробить на несколько смысла нет.
                  Ответить
                  • Потому что это

                    c = (a > b)? a + 5: b - 5;
                    Ответить
                    • показать все, что скрытоТы слишком много дрочишь... на Си.
                      Ответить
                      • хе-хе-хе, Вебкилл испытал шок от тернарных выражений :D
                        Ответить
                    • while (i > 0) and (s[i] <> '\') do dec(i);

                      (да, то, что булевы операторы приоритетнее операторов сравнения, меня самого бесит)

                      или

                      for i := 0 to Length(D) - 1 do with D[i] do WriteLn(Info);

                      Вот тут do очень вытягивает читаемость.
                      Ответить
                      • В чём проблема

                        while (i > 0 && s[i] != '\\')
                           i--;


                        ?

                        Если уж приспичит, то можно так:

                        while (i > 0 && s[i] != '\\') 	i--;


                        Умелое форматирование творит чудеса. Для этого поддержка на уровне языка не нужна.

                        Наоборот, ключевые слова тиипа do/begin/with превращают код в символьную кашу, и читать паскалевый код можно нормально только с подсветкой (чтобы, допустим, болд отделял их визуально от идентификаторов), в то время как сишный - где угодно читаем.
                        Ответить
                        • вообще, чем меньше ключевых слов в языке, тем лучше. где то 15и хватает для большинства мощных языков
                          Ответить
                          • > где то 15и хватает для большинства мощных языков

                            зависит от языка-таки, смотря что в нём есть. лучше подсчитывать не в общей сумме, а сколько операторов существует на, так сказать, семантему: т.е., допустим, сколько ключевых слов на ветвление кода, сколько ключевых слов на вычисление выражения/операторы, на объектную систему и т. д. Глупо как-то подсчитывать кучей.
                            Ответить
                      • Дискредитируешь Паскаль же :р
                        почему от 0 до обеда длины D - 1 печатается какое-то Info?
                        Ответить
                        • Не какое-то, а относящееся к D[i].
                          В паскале, понимаш, есть with, в отличие от сей.
                          Ответить
                          • что оно делает?
                            Ответить
                            • g оператор with LOL

                              Только слово LOL в запрос писать не надо.
                              Ответить
                              • А, точно.

                                Глупая фишка, делает код менее читаемым (не кристально понятно, что к чему относится).
                                Я бы по уму сделал обращение через точку:

                                for i := 0 to Length(D) - 1 do with D[i] do WriteLn(.Info);


                                А вообще для си это и не надо, потому что в си переменные можно указывать в любом месте и есть scope'ы разных уровней, т.е. в паскале with - это костыль вокруг негибкости var-области
                                Ответить
                                • Через точку не поможет:
                                  with A do with B do C
                                  C относится к A или B?

                                  Но если иметь мозг, то фишка всё равно полезная.
                                  Ответить
                                  • > Но если иметь мозг, то фишка всё равно полезная.

                                    Чем?
                                    Ответить
                                    • Понимаешь, когда тебе надо купить хлеб, молоко и сыр в магазине "тухлое яблочко", ты не говоришь "купить хлеб в "тухлом яблочке", купить молоко в "тухлом яблочке", купить сыр в "тухлом яблочке"", ты говоришь "купить хлеб, молоко и сыр в "тухлом яблочке"". Так вот, with группирует логику.
                                      with "тухлое яблочко" do begin
                                      купить хлеб;
                                      купить молоко;
                                      купить сыр;
                                      попиздеть с продавщицей;
                                      end;
                                      И ещё, не надо думать, что если в Паскале есть фича, которой нет в кулхацкерском языке си-плюс-плюс, то это фича бесполезна.
                                      Ответить
                                      • Ты так и не понял моего пойнта?

                                        В "кулхацкерском" си это делается так:

                                        void f(void)
                                        {
                                           /* ... куча кода ... */
                                        
                                           RottenApple* a = blabla.getRottenApple(666);
                                           a.buy(BREAD);
                                           a.buy(MILK);
                                           a.buy(CHEESE);
                                        }


                                        В паскале такое же не катит, ибо получается так (синтаксис не особо знаю, так что не обессудьте):

                                        procudere f;
                                        var
                                           a: RottenApple;
                                        begin
                                        { ... куча кода ... }
                                        
                                          a = blabla.getRottenApple(666);
                                           a.buy(BREAD);
                                           a.buy(MILK);
                                           a.buy(CHEESE);
                                        end;


                                        Т.к. переменные определяются только в одном блоке в самом начале, было бы очень сложно понять, что где.
                                        Поэтому-то Коля Вирт и придумал костыль к этому не знай зачем существующему ограничению: оператор with -- т.к. класс. паскаль позволяет указывать переменные только в одном блоке в самом начале и нет скопов.

                                        В си можно также сделать отдельный скоп через {}, тогда можно иметь сразу несколько переименных по имени "а" в одной функции.
                                        Ответить
                                        • В общем, как-то так:

                                          { RottenApple* store = blabla.getRottenApple(666);
                                             store.buy(BREAD);
                                             store.buy(MILK);
                                             store.buy(CHEESE); }
                                          Ответить
                                          • Когда все переменные в одном месте, легче искать объявление.
                                            Обявлять вмеренную переменную и делать лишнее присваивание - это не круто и не так наглядно.
                                            Ответить
                                            • На самом деле полезная вешь. Меньше лишней писанины. Хотя поддерживать такой код тяжелее. Но если нужно быстро состряпать что-нибудь, то самое оно.
                                              RottenApple& store = blabla.getRottenApple(666);
                                              with(store)
                                              { 
                                                 buy(BREAD);
                                                 buy(MILK);
                                                 buy(CHEESE); 
                                              }
                                              Ответить
                          • Знаю, оператор вырывания из контекста ;-)
                            Ответить
            • >язык сочинялся с оглядкой на говнокодеров, как и бейсик.

              максимально приближенным к человеческому английскому
              Ответить
          • условие заканчивается на {
            Ответить
        • показать все, что скрытоЭтот "кэп" просто очевидного говна на видит.
          Ответить
      • Просто кусок говна. Enjoy.
        Ответить
    • Ниасилил. Виной всему — горизонтальная прокрутка.
      Ответить
      • в том и гуано
        Ответить
      • Дело было в перекур, делать было нечего...
        http://paste.org/pastebin/view/20083
        Сюда не стал, чтобы комменты не растягивать.
        Ответить
        • показать все, что скрытоЯ к вам через Microsoft Telnet подключится немогу. Разблокируйте порты пожалуйста.
          Ответить
          • Перед вводным словом нужна запятая, у возвратных глаголов в инфинитиве пишется "-ться" на конце, при обращении к конкретному человеку "Вы" пишется с большой буквы, наконец, "не" с глаголами пишется раздельно (материал второго класса, если мне память не изменяет). Готовимся к ЕГЭ-то, готовимся, там разговор короткий будет, да и меньше денег на репетиторов уйдёт, хоть их за тебя и мама с папой оплачивают.
            Ответить
        • Дело было в свинокур, делать было нечего...
          Ответить
    • показать все, что скрытоvanished
      Ответить

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