1. Куча / Говнокод #13145

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Правила пользования метрополитеном
    ...
    9. Всем лицам, находящимся на территории метрополитена, запрещается:
    ...
    9.6. Провозить громоздкий багаж, сумма измерений которого по длине, ширине, высоте, а для рулона - по высоте и двум его диаметрам или осям в основании,  превышает 200 см, или длина которого свыше 220 см

    Запостил: TarasB, 10 Июня 2013

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

    • показать все, что скрыто
      Если (Не Багаж.Рулон И Багаж.Длина+Багаж.Ширина+Багаж.Высота > 200) Или
           (Багаж.Рулон И Багаж.Диаметр1 + Багаж.Диаметр2 + Багаж.Длина > 200) Или
           Багаж.Длина > 220
      Тогда
          ...
      КонецЕсли
      Как-то так? Что-то я не совсем понимаю что за два диаметра у рулона. Большая и малая ось эллипса, если он помятый? Или же диаметры концов, если он представляет собой нечто коническое?
      Ответить
      • показать все, что скрытоА все, понял в чем говнокод. Условие про 220 явно лишнее. Ну а в остальном - понятие bounding box'а обывателю довольно трудно растолковать.
        Ответить
      • показать все, что скрытоА бутылки Кляйна там возить можно?
        Ответить
        • показать все, что скрытоТолько если ты из неё не будешь пить спиртное.
          Ответить
        • показать все, что скрытоСрочно запретить провоз материальных предметов с поверхностью, не имеющей ориентации или с эйлеровой характеристикой выше двух.
          Ответить
          • показать все, что скрытоДопустим, у нас есть два куба с ребром 35 см. Тогда сумма их измерений 2 × (35 + 35 + 35) = 210, что превышает лимит.

            Лайвхак: связываем два куба верёвкой или склеиваем. Тогда сумма измерений будет 35 + 35 + 2 × 35 = 140, что укладывается не только в питерский лимит, но и в московский.
            Ответить
            • показать все, что скрытоА где сказано, что для нескольких предметов указанные габариты суммируются. Захочу я перевезти миллион спичечных коробков по отдельности, никто мне ничего не скажет.
              Ответить
              • показать все, что скрытоДействительно, и в Питере, и в Москве провоз багажа с суммой измерений до 121 см (не включая) и длинномерных предметов длиной до 151 см (не включая) не оплачивается. Так что выгоднее большие предметы распилить, тогда за них платить как за багаж не придётся.
                Ответить
              • показать все, что скрытоЛайфхак: разделите групногабаритный предмет на бесконечное число не имеющих объёма частиц и вам удастся провезти его в метро. Вы даже сможете собрать из этих полос вдвое больше предметов, но и тащить в таком случае придётся вдвое больше.
                Ответить
                • показать все, что скрыто>можете собрать из этих полос вдвое больше предметов,
                  Лол. Я когда начал читать про "бесконечное число не имеющих объёма частиц", то подумал об том же.
                  Парадокс Банаха - Тарского, в общем.
                  Ответить
                • показать все, что скрытоХе, так это они объём не будут иметь, а вот суммарные габариты зашкалят за бесконечность!
                  P.S. Мне в таких случаях каждый раз вспоминается http://bash.im/quote/404148
                  Ответить
                • показать все, что скрытоМожно еще поворачивать объект в 4+n измерении, пока его проекция не уменьшится до объема, не превышающего допустимые.
                  Ответить
      • показать все, что скрытоКак-то так:
        unsigned int sx,sy,sz;
        ...
        if (sx+sy+sz>200 || sx>220 || sy>220 || sz>220) ...
        Ответить
        • показать все, что скрытоСишкоблядство какое-то.
          Ответить
          • показать все, что скрытоНу да, ради понятности приходится иногда опускаться до уровня стада.
            Ответить
            • показать все, что скрытоТак я в целом не люблю вот эти сдвоенные конструкты.
              ==, ||, &&, ++, --
              Они неочевидны для новичка, и чреваты опечаткой для среднего кодера.
              И так как ||, && используются только в условиях, то следовало заменить их на православные и понятные AND и OR.
              А побитовые оставить наравне с + - / *.
              Встретить в условии & или | можно в одном случай на миллион. И 90% что это говнокод или опечатка.

              ++ - не нужен, из-за глупого побочного эффекта. Его легко можно заменить кошерным двухоперандным конструктом, напоминающим об ассемблерных временах. Удлинив при этом код всего на символ.
              Ответить
              • показать все, что скрытоПоэтому в Турбо-Паскале всё правильно сделали, введя процедуры Inc(x) и Dec(x) вместо неочевидных x++ и x--.
                Ответить
                • показать все, что скрытоНу собственно да. Кстати очень давно мы обсуждали эту тему с инкрементами. И выяснили что это UBшное зло.
                  Да если можно обойтись возможностями языка (процедуры), то незачем вводить лишние конструкты.
                  Правда пасцаль не люблю за другое.
                  Ответить
                • показать все, что скрытоПричём они не возвращают значения.
                  Хотя кто мешает написать свои PreInc и PoctInc, возвращающие значение, и с их помощью написать крестоблядский непонятный код?
                  Ответить
              • >Встретить в условии & или | можно в одном случай на миллион. И 90% что это говнокод или опечатка.
                Ну не скажи... возьми, например встроенное ПО
                Ответить
                • > возьми, например встроенное ПО
                  Ну вот его не так и много, как раз те 10% и наберутся.
                  Ответить
                  • Ну тут у кого как... У меня 90% встроенного...
                    Ответить
                    • > У меня 90% встроенного...
                      Хм, что-то аватарка показалась знакомой. Я вас на радиокоте не видел? Или у меня глюки?
                      Ответить
      • показать все, что скрытоdel
        Ответить
    • показать все, что скрытоА в Московском Ордена Ленина Ордена Трудового Красного Знамени метрополитене имени Л. М. Кагановича В. И. Ленина так:
      2.10. Запрещается провозить в метрополитене (находиться с ним в вестибюле станций):
      
      2.10.1. Громоздкий багаж, сумма измерений которого (за исключением специально оговоренных случаев) по длине, ширине (двум диаметрам или осям в основании рулона) и высоте превышает 150 см, длинномерные предметы, длина которых свыше 220 см.
      Ответить
    • Тарас отжог, но почему все заминусованы?.. Сон затуманил глаза.
      Ответить
      • Потому что некое школоло училось отправлять HTTP запросы (или кликать по ссылкам из JS).
        Ответить

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