1. C++ / Говнокод #12172

    +17

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #include <iostream>
     
    int main() {
        std::cout << (2,0 * 2,5) << std::endl;   // 5
        std::cout << (0,625 * 6,4) << std::endl; // 4
        std::cout << (2,5 * 2,0) << std::endl;   // 5?
        return 0;
    }

    Почему в с++ умножение некоммутативно?

    http://ideone.com/Erp3uv

    Запостил: bormand, 21 Ноября 2012

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

    • Запятые на точки надо поменять!
      Ответить
      • Слишком просто. Надо так: http://ideone.com/rj0N9O
        Ответить
        • Как ты это сделал? Минута пристального вглядывания в код не принесла мне понимания.
          Ответить
          • Сильная магия. Обычно ее используют для борьбы со школьными учителями информатики.
            Ответить
        • Хитро. А я то думаю, что ideone таким широким стал.
          Ответить
          • пока ты не сказал, я бы так и не заподозрил
            все блоки стандартной ширины и внизу скролла нет
            мейджик джонсон
            Ответить
            • Ты похоже тоже все лабораторные сам сдавал без таких хаков. Ох уж эта посредственность, обманывающая учитетелей, а не решающая задачи правильно.
              Ответить
              • Заметьте. Не поняли как работает тот код именно самые умные люди ресурса, будь то борманд или дификейстра, которые лабы сами решали до упора. Что как-бы показательно. Уверен, Роман, если бы увидел код, тоже бы не догадался сходу, но он пропустил все веселье, к сожалению.

                Борманду следует повысить уровень за +5 к наблюдательности, хоть суть идеи он и не знал.
                Ответить
                • в этом недостаток туалетного устройства - никаких скроллов, пока не начнешь пальцем елозить в нужную сторону
                  а лабы я сам сдавал, конечно, батрачил за себя и того парня, думаю, на этом ресурсе других посетителей и нет
                  Ответить
                  • >батрачил за себя и того парня, думаю, на этом ресурсе других посетителей и нет
                    Я это ты или тот парень? И кто из нас админ этого сайта?
                    Ответить
                    • все, надоело самому с собой разговаривать
                      пойду смотреть как миллиард будет бегать по полю в усладу моих очей
                      Ответить
                • Это андроиду спасибо, на нем ideone показался с огромным зумом, и справа болтались какие-то точки, которые при ближайшем рассмотрении оказались дефайном.
                  Ответить
                • Я тоже не заметил, минут 5 пялился, пока не решил клонировать код и разобраться в нем самому.
                  А ты снова показал свою тупость, потому что сам то ты нихера не заметил.
                  От тебя не было слышно ничего конструктивного, только кукареканье
                  >Как ты это сделал?
                  А затем ты начал переиначивать чужие комменты
                  http://govnokod.ru/12172#comment161716
                  >Ох уж эта посредственность, обманывающая учитетелей
                  Эх, Гумно, такое гумно.
                  Ответить
          • Пока ты не сказал, я так и не понял, откуда O взялась
            благо, правильный шрифт позволяет легко отличить 0 от O
            Ответить
            • Я тоже довольно быстро заметил О, но очень долго искал, как же оно может работать.
              Ответить
          • Я очень долго думал, где в иостриме, да ещё и вне std, определён O. Потом прочитал твой комментарий, подумал ещё над ним. Только потом дошло.
            Да, это хорошо, что на ideone ширина страница зависит от ширины текста.
            А в реальной ИДЕ зависимости часто нету, вот весело над преподом издеваться-то!
            Ответить
            • Сначала я, как последний идиот, перерыл все файлы, связанные с иостримом, но ничего не нашёл. Потом заметил, что не компилируется, если удалить «пустую» строку. Только потом заметил, что «пустая» строка длиннее остальных (выделение подсказало).

              Чтобы трюк полностью прошёл, нужна ИДЕ, которая не вырезает финальные пробелы, чтобы по случайному нажатию клавиши End в «пустой» строке не увидеть код.
              Ответить
              • А ктрл+клик по букве О, ой блядь, в крестоблядской студии нет этого дельфиноудобства пкм по букве О и "показать декларацию"? Или западло ради такого говна открывать студию и заводить тестовый говнопроект?
                Ответить
                • Западло ради такого говна качать и устанавливать студию. Только gcc и текстовый редактор, только хардкор.
                  Ответить
        • А у меня выполняется без ошибки: http://ideone.com/AXcYkv
          Ответить
      • а ещё случаются перлы из-за зависимости разделителя целой и дробной части от настроек винды
        Ответить
        • Случаются... Но не в C++. А с Экселем пришлось побороться...
          Ответить
          • Оказывается, от настроек винды зависит поведение формата csv. Например, американский csv на русском компьютере не открывается. И что прикажете делать, если заказчик заказывает программу, читающую csv? Либо завязываться на формат присланных примеров, либо на настройки винды, либо какой-то автодетект городить...
            Ответить
            • Спрашивать у юзера при импорте каждого файла, какой там разделитель.
              Ответить
            • Не поведение формата, а поведение Excel. Я всегда в этих случаях модифицирую файл автозаменой, если собираюсь в другой программе использовать. Ненавижу Майкрософт за их любовь к локализации всего подряд.

              На днях обнаружили баг с базой на SQL Server - на тестовом сервере даты работали в формате США, на боевом были локализованные и из-за этого неправильно парсились в приложении. Спасла функция CONVERT(varchar, @govnodate, 126): http://msdn.microsoft.com/en-us/library/ms187928.aspx
              Ответить
              • > Ненавижу Майкрософт за их любовь к локализации всего подряд.
                Золотые слова.

                Имхо локализация нужна только в тех местах, с которыми взаимодействует юзверь - собственно морда приложения. В файлах же, базах данных и сетевых протоколах она нахер не сдалась, и только все портит.
                Ответить
                • Это вам не нравится, зато 95% в восторге.
                  У 1С тоже много поклонников. Почему MS должна терять рынок не осиливших иностранные наречия?
                  Ответить
                  • > Почему MS должна терять рынок не осиливших иностранные наречия?
                    Не совсем так. "Почему MS должна терять потенциальных индусов-погромистов, не осиливших иностранные наречия, но желающих поговнокодить динамические опердени".

                    А пользователь ничего бы не заметил, эти 95% не будут лазить даже в CSV, что уж там говорить о базах данных и прочем.
                    Ответить
                  • Я не говорю, что плохо показывать пользователям данные в привычном формате. Я говорю, что плохо использовать отличный от стандартного формат хранения этих данных. CSV - это comma separated values, а не semicolon separated values.
                    Ответить
                    • Несмотря на наличие RFC, на сегодняшний день, под CSV, как правило, понимают набор значений, разделенных какими угодно разделителями, в какой угодно кодировке с какими угодно окончаниями строк. wiki
                      Ответить
                      • fence separated values
                        time separated values
                        destiny separated values
                        prosto-ne-podhodim-drug-drugu separated values
                        ...
                        Ответить
                        • > drug-drugu
                          осторожно! гонококки!
                          Ответить
                        • frequency division multiple access
                          time division multiple access
                          code division multiple access
                          et cetera division multiple access
                          Ответить
              • Про SQL Server кстати, сталкивался вот с такой ерундой - ставишь русский формат - получаются DD.MM.YYYY, DD/MM/YYYY и YYYY-DD-MM, ставишь США - MM.DD.YYYY, MM/DD/YYYY и YYYY-MM-DD. В результате одновременно использовать DD.MM.YYYY и YYYY-MM-DD никак.

                То ли у меня руки кривые были, то ли у них...
                Ответить
                • В экселе вообще почётно, когда "1.2" превращается в "01 февраля". Приходится выдирать, менять на запятые тупым редактором и возвращать обратно. При этом этой суке абсолютно пофиг, какой формат у ячейки. Он явно считает себя умнее всех.
                  Ответить
                  • И при повторной вставке оказывается, что формат ячеек уже запомнился как "дата", и всё вставляется совсем не в том виде. А, чёрт! Заходишь в свойства ячеек и меняешь формат на "Общий". Но "дата" уже попыталась распознать вставленные значения и сохранила в ячейке ещё что-то непредсказуемое. А, чёрт!
                    Ответить
                    • С датой борюсь очень просто. Если нужно хранить строки - сразу забиваем эти ячейки нужным типом. Аналогично с числовым типом. А общий тип - да, подглючивает на автодетекте. Еще это бесит, когда нужно что-нить вроде паролей сохранить в экселевском файле, а строчка начинается с равно и эксель думает, что это формула...
                      Ответить
    • Подтверждаю: http://ideone.com/UyEdBC
      Ответить
    • показать все, что скрытоХуйня. Думал что здесь и правда что-то интересное,а здесь просто про приритеты запятой. Вот у нас в 1С есть монада, которую, вызвав, добавяет +10 к случайности следующей операции. Так вот мы с коллегами над бухгалтерами так издевались, что они в итоге скомпилировали буст и перешли на boost::1C
      Ответить
    • баян
      Ответить

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