1. C# / Говнокод #18424

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    public int MapToLowerPageBoundary(int rowIndex)
    {
           return (rowIndex / RowsPerPage) * RowsPerPage;
    }

    Нашел этот метод в проекте... Интересно о чем думал автор...

    Запостил: alex493049469, 01 Июля 2015

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

    • Таким образом можно получить индекс первого рядка на странице
      Ответить
      • Если взять любое число разделить и умножить на другое число получится тоже самое число;
        (5/2)*2=5
        Ответить
        • (5/2)*2=4
          чяднт?
          Ответить
          • На калькуляторе посчитай...
            Ответить
            • У нас тип int, значит, нужно округлять до целых после каждой операции. Я медленно достаю калькулятор...
              Ввод: FIX 0
              Ввод: 5 ÷ 2 =
              Вывод: 3
              Ввод: 3 × 2 =
              Вывод: 6

              У меня получилось больше всех!
              Ответить
              • Бля специально набросал в шарпе) короче правильно (5/2)*2=4;
                Так так 5/2 округляется до 2; O_o
                Ответить
                • >> 01 Июля 2015
                  охуеть, свежачок
                  с 1 июля прошло не так уж и много времени
                  https://pbs.twimg.com/profile_images/1983716031/1228563685377_400x400.png
                  Ответить
                • А теперь внимание! Найдите два отличия между кодами:
                  https://ideone.com/deyBD1
                  https://ideone.com/tH9DYo
                  Ответить
    • Как хорошо, что в Паскале различаются знаки целочисленного деления (div) и вещественного (/). Вроде ещё в Бейсике был отдельный знак для целочисленного (\).
      Ответить
      • Самый лютый пиздец с этим, имхо, в питоне 2...
        def div(a, b):
            print a, b, a/b
        
        div(3.0, 2)
        div(3, 2)
        Даже у пыха и жс не всё настолько ужасно...
        Ответить
        • Это поведение сишки/жавы же, в чем пиздец?
          Ответить
          • У сишки и жабы поведение можно понять прочитав код (посмотрел типы и знаешь что в итоге). У питона - хуй.
            Ответить
            • То есть пиздец в том что у питона динамическая типизация? Мне казалось что такие вещи надо знать.
              Ответить
              • Ну в пыхе, жс и третьем питоне это, имхо, лучше решили - деление всегда с плавающей точкой. Надо целочисленное - пиши явно. Больше предсказуемости, хоть типизация и динамическая.
                Ответить
                • >Самый лютый пиздец с этим, имхо, в питоне 2...
                  >Это поведение сишки/жавы же, в чем пиздец?
                  Харэ ныть, нытик, питон старше явы.
                  Ответить
                  • > питон старше явы
                    Мне вот интересно, его вообще кто-то юзал где-то до 2.4?
                    Ответить
                    • Гвидо
                      Ответить
                    • А зачем вообще питон? Ради чего в мире языков плодятся всё новые и новые сущности?

                      Я понимаю, что могу в своей личной программке сделать Совершенно Новый™ DSL, который будет очень эффективно работать с определениями косоугольных грамугольников Ваншперштейна и окажется совершенно бесполезным для всех остальных задач. Я так могу, ведь я - простой человек, а не комитет из бородатых дядь.

                      Но зачем бородатые дяди так делают? Зачем нам питоны (несовместимые даже с собой), руби, пачка каких-то экмаскриптов, луа и прочая питушня, когда есть PHP? Зачем всякие паскали, сишки жабы и шарпы, когда есть плюсы? Зачем мне стандартные библиотеки C, Java, JS, когда можно взять одну?

                      Почему нельзя определить основные парадигмы (императивное с процедурами, императивное с ООП, функциональное, ...) основные статико-динамические характеристики (всё в статике, есть Object, всё в динамике), синтаксические характеристики (как C/C++, как python, как HTML) и требуемое направление компиляции (x86, .Net, ВМ браузера, микроконтроллер) и свести всё к общему знаменателю?
                      Тогда единственными ограничениями будут попытки скомпилировать менее строгий код с более строгими флагами (например, скрипты для браузера собрать под микроконтроллер), а всё остальное будет работать и так.

                      Зачем мне писать сервер на C++, серверные скрипты на PHP, а клиентские - на JS? Почему бы мне просто не написать сервер на C++, серверные скрипты - на C++ с флагом --dynamic, а клиентские - на C++ с флагами --dynamic и --browser?
                      А придёт потом 3_14dar, запустит гуёвый конвертер и за пару секунд создаст себе исходники на питоне, которые скомпилируются в тот же сервер и те же скрипты.

                      P.S. В .NET хорошее начало. Где же конец?
                      Ответить
                      • Дело в том что не бывает идеального инструмента. У каждого своя ниша)
                        Ответить
                        • Но ведь можно выделить группы, которые делают примерно одно и то же.
                          Можно спокойно взять особенности джавы и слить их в .NET. Джаву к чертям снести, а .NET всем вместе развивать (баги будут исправляться гораздо эффективнее). Дошли же Опера-сты до того, что можно не плодить свой лишний движок.
                          На то они и языки общего назначения, чтоб быть универсальными, а не делить фичи.
                          Ответить
                          • Как по мне в настоящее время .Net самая универсальная вещь) web, desktop, mobile)
                            Ответить
                            • А ещё впихнули невпихуемое: C#, F# и JScript.NET работают в одной упряжке.
                              Ответить
                            • Еще и на линупс/андроид конпелируется.

                              Все это умеет и жава, но... как она это умеет - вопрос другой.
                              Ответить
                          • Presto — не лишний. Это Webkit лишний!
                            Ответить
                            • Не важно, кто, но один точно лишний.
                              Ответить
                              • Они оба лишние, только IE6. Так что ли?
                                Ответить
                                • Кстати, почему бы и нет? Зачем потреблять всё больше и больше памяти ради решения тех же задач?
                                  Вот придёт насыщение, запилят все нужные фичи, и можно будет оставить какой-нибудь IE20 как стандарт на ближайшие 20 лет (как какой-нибудь HTTP). Будет он есть 1Гб на вкладку что в 2020м году, что в 2030м.
                                  Ответить
                                  • >Кстати, почему бы и нет?
                                    ТЫ его хоть застал, мальчик?
                                    Ответить
                                    • Застал. Был он у меня. Только не помню, заходил ли я с него на сайты или в оффлайне был.
                                      Ответить
                      • Ну понимаешь ли, на новых языках обкатываются новые фичи. В питоне, например, ввели отступы вместо фигурных скобок, которые вполне прижились. В сишарпе ввели await, linq. Стандартные библиотеки C и java отличаются принципиально - первая заточена под юнипс, вторая более-менее кроссплатформенна.
                        Ответить
                        • > обкатываются новые фичи.
                          > В питоне <...> отступы вместо фигурных скобок
                          > В сишарпе ввели await, linq

                          Сразу вспомнился анекдот
                          Разговорились два поручика: один — поляк, другой — наш, Ржевский.
                          — А правда, что у вас в Польше люди не на русском языке разговаривают, а на каком-то другом?
                          — Разумеется, правда — на польском языке.
                          — Да? А как будет по-польски, допустим «дом»?
                          — Дом.
                          — Хм. А как тогда будет «село»?
                          — Село.
                          — Странно. Hу, а как тогда будет «жопа»?
                          — Дупа!
                          — Ха! И стоило ради одного слова новый язык придумывать?!


                          По идее, надо обкатать новые фичи да выбросить язык. Годные фичи добавить в существующие языки, нейтральные фичи - в опции компилятора/интерпретатора. Зачем мне новые питоны ради отступов, когда можно добавить в компиляторы C и C# флаг --pythonic? В крайнем случае, сделать конвертер питона в C#, чтоб жизнь упросить и библиотеки C# переиспользовать.

                          Вот стоило браузерам допустить только один JS, как народ напилил CoffeeScript, TypeScript и прочее, свои стандартные библиотеки не создающее и друг с другом совместимое. Красота.
                          Ответить
                          • js самый долбоебский язык который для этого можно было придумать.
                            Ответить
                            • Потому, что надо было всем сразу сесть и сделать один хороший язык, а не плодить сущности.

                              Но теперь он хотя бы один, теперь никто не пишет на ГК, что у CoffeeScript или TypeScript под виндой плохо с юникодом, т.к. в JS и Node под виндой всё хорошо.
                              Создатели этих языков небось вообще ни разу пальцем не шевельнули ради юникода на винде.
                              Ответить
                              • Если не будет конкурренции - получим новый долбоие же.

                                >т.к. в JS и Node под виндой всё хорошо.
                                В консоли?
                                Ответить
                                • В консоли.
                                  В консоли печатает русские буквы; в файл из консоли перенаправляет UTF-8.
                                  Ответить
                                  • >В консоли печатает русские буквы;
                                    Это не то. Одновременно русские, греческие и латинские non-ascii умеет?
                                    Ответить
                                    • C:\Users\Поняша> node -e console.log(decodeURIComponent('%CE%94'))
                                      ?
                                      C:\Users\Поняша> node -e console.log(decodeURIComponent('%CE%94')) > file.txt

                                      В консоль выводит вопросик, а в file.txt будет красивая дельта.
                                      Ответить
                        • > Стандартные библиотеки C и java отличаются принципиально - первая заточена под юнипс, вторая более-менее кроссплатформенна.

                          Вот это уже серьёзное различие. Ну и такая мелочь как наличие сборщика мусора разделяет. Тут да, уже есть какой-то "барьер", нельзя так просто слить в один язык, в отличие, например, от пары JS и Lua.
                          Ответить
                      • Алсо ты забыл что из одних языков можно дергать апи других. Библиотеки во всех скриптовых языках написаны на c(++)-
                        Ответить
                        • Ну хоть что-то хорошее...
                          Ответить
                          • Так и делают, имеем большую библиотеку написанную на языке со статической типизацией (libxml, curl, работа с графикой) и дергаем ее из языка с динамической типизацией.
                            Ответить
                    • Но ты понимаешь, что деление можно было поменять только сломав обратную совместимость?
                      Ответить

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