Буратино 0 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба а еще можно попробовать: с=(!a + !b) % 2; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба а еще можно попробовать: с=(!a + !b) % 2; Можно, но зачем? Дабы восхититься красотой абсурда? Понятно, что можно нагородить множество конструкций, дадущих верный ответ, но... Абстракционисты - тоже художники... Я вот читаю ветку и хоть не специалист, но аргументы уважаемого ARV кажутся мне весьма убедительными. Хорошо владеть языком в совершенстве, и стоит к этому стремиться. Но богатые возможности языка совсем не обязывают использовать их непременно в полной мере. Важнее, имхо, чтобы программу можно было читать, а не требовалось расшифровывать. Разумеется, при прочих равных. Или иногда даже в ущерб размеру. Ведь абстракциониста оценит лишь абстракционист. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба Можно, но зачем? Дабы восхититься красотой абсурда?О каком абсурде вы говорите? Вы гляньте во что оно компилится на целевой архитектуре, сравните с изначальным вариантом. А потом делайте выводы. Си - это очень выразительный язык. Он позволяет решать любые задачи множеством путей. Соль программирования заключается в том, чтобы найти самый оптимальный. Критериев может быть несколько. Ваши критерии находятся ортогонально моим... Ну и что с того? Я же не говорю что вы абсурдны, как и результаты вашего труда? Даже для растущего программиста не составит никаких проблем прочитать такую конструкцию. А то что некоторые стараются замкнутся в своих личных предрассудках - это личное дело каждого. У каждого свой путь в жизни. Для кого-то не важно быть супер квалифицированным программистом, у кого то приоритеты в схемотехнике. Давайте я тоже буду вам говорить, что схемотехнические решения должны быть только из книги "Искусство схемотехники", а то видите-ли не столь квалифицированные разработчики будут в непонятках. Смешно звучит не правда-ли? Мне по-настоящему смешно читать посты ARV и ваши реплики о программировании... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба какая из этих конструкций более соответствует здравому смыслу? Здравый смысл категория неопределенная. Апеллировать к ней трудно. Надеюсь, дискуссия не возникнет из утверждения: Язык математики (математической логики) не эквивалентен языку программирования (имеются в виду возможности языка). Посмотрев дискуссию, я сделал для себя следующее наблюдение (может и не верное :laughing: ): Уважаемый ARV предлагает использовать язык программирования (например, для логических выражений) строго как предписывает математика. Конструкции языка программирования эквивалентны языку математики. Уважаемые оппоненты ARV предлагают использовать некоторые документированные возможности языка для получения того же результата не следуя строго канонам математики. На мой взгляд, на использование тех или иных языковых конструкций в программе может влять масса факторов и общего правила не выработать (масса стилей кодирования). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 25 марта, 2013 Опубликовано 25 марта, 2013 (изменено) · Жалоба а еще можно попробовать: с=(!a + !b) % 2; Попробовать - можно. Делать - не стоит. Операция "остаток от деления" очень тяжелая. Для расширения кругозора можно сделать вот так: с=(!a + !b) & 0x1; Вам, как "ученику" - домашнее задание. Объясните как работает эта конструкция Вариант !!a ^ !!b мне нравится больше, так как в нем прямо написано - выполнить КСОР Я НЕ пишу !a ^ !b, так как результат и логически, и в двоичном коде будет одинаковый, но !! означает "превратить в булеву форму", а один восклицательный знак означает инверсию, что заставляет задуматься - а не поменялась ли здесь логика. 2 Herz - мистер ARV ратует не за простоту. Он ратует за исключение из языка всех форм, выходящих за рамки лексикона людоедки Элочки. Объясняя это тем, что "вы тут слишком вумные, простым работягам это ни к чему". Выжечь, говорит, эту гидру каленым железом (тупыми ножницами) Насчет понимания. Короткие посты понять легче, чем многостраничный поток сознания. Специалист говрит - XOR a и b , и его понял другой специалист. А имярек говорит "тут, эта, такая величина, что если а истино, а b - ложно, то эта величина будет истина. Или если a ложно а b - истино, то величина тоже будет истина" Если вы не специалист и не знаете что такое XOR, то вы поймете второго, но став специалистом, глупо продолжать использовать такие конструкции. Изменено 25 марта, 2013 пользователем igorle Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба http://govnokod.ru/c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба О каком абсурде вы говорите? Вы гляньте во что оно компилится на целевой архитектуре, сравните с изначальным вариантом. А потом делайте выводы. ... Мне по-настоящему смешно читать посты ARV и ваши реплики о программировании... Я не пытаюсь учить Вас программированию, поймите правильно, это было бы действительно смешно. Однако, не смешить Вас и не флейм сюда разжигать подтянулся. Поэтому спорить не буду. Но... можно, я не буду смотреть, во что оно компилится? Не читая, так сказать, скажу, что осуждаю? Ведь вижу запись, выглядящую абсурдно. Вот Вы тоже: прочтите её вслух, а затем тоже сделайте выводы. Не смешно? Только честно. И сколько, говорите, такая запись сможет сэкономить по сравнению с понятной "предрассудковой"? Пусть две строчки. И то сильно сомневаюсь. Но мы ведь о другом совсем... Попробовать - можно. Делать - не стоит. Операция "остаток от деления" очень тяжелая. Именно. Возможно, компилятор попытается оптимизировать её сдвигом. Всё-таки, деление на 2. Но всё равно вряд ли тут есть смысл. 2 Herz - мистер ARV ратует не за простоту. Он ратует за исключение из языка всех форм, выходящих за рамки лексикона людоедки Элочки. Объясняя это тем, что "вы тут слишком вумные, простым работягам это ни к чему". Выжечь, говорит, эту гидру каленым железом (тупыми ножницами) Да нет, по-моему, Вы сгущаете краски. Зачем же скатываться в крайности? Я вот понял его совсем иначе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба !!a вам нравится больше, чем !a... особенно для самого нормального случая в си, когда а=25. НЕ НЕ 25 это разумеется 1 !!! это логика двоичного робота, но не человека. некоторые вещи вам непонятны не потому, что ваши понятия узки, но потому, что вещи сии не входят в круг ваших понятий. это К.Прутков сказал прямо про вас :) еще одно последнее сказанье, и летопись окончена моя. в соседней ветке про поиски исполнителей для всякой работы все без исключения "профессионалы" ведут себя абсолютно точно так же, как и в этой теме: первым делом доказать всеми средствами автору вопроса, что он дурак, ничего не понимающий в деле, которым решил заняться. даже если кто-то просит собрать ему мигалку на светодиоде, в ответ он получает советы разобраться, надо ли эту мигалку сертифицировать, рассказы о том, что мигалки не имеют рынка сбыта, что в китае дешевле купить и т.д. и т.п. все это продолжается до тех пор, пока не найдется какой-нибудь кустарь-одиночка вроде не раз замеченного тут (и обруганного "профессионалами") Слесаря, который пальцы веером не расставляет, а просто берет и делает то, что заказчик хочет. еще в одной теме для начинающих я увидел для мигалки использовать параллельно исполняющиеся потоки... тенденция, однако... не хочу никого обидеть, но по-моему, это уже диагноз... уважаемые "ученики"! прошу вас, сохраняйте здравый смысл! он поможет вам даже тогда, когда Си окажется бесполезным. P.S. Спасибо уважемому модератору Herz-у, что все-таки рассмотрел зерно здравого смысла в моих словах. значит, либо я не так уж плох, либо не все еще потеряно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Буратино 0 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба Для расширения кругозора можно сделать вот так: с=(!a + !b) & 0x1; Вам, как "ученику" - домашнее задание. Объясните как работает эта конструкция Я понимаю, как это работает. --- Сори, но скобки тут лишние :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба Я НЕ пишу !a ^ !b, так как результат и логически, и в двоичном коде будет одинаковый, но !! означает "превратить в булеву форму", а один восклицательный знак означает инверсию, что заставляет задуматься - а не поменялась ли здесь логика. Инверсию означает ~, а ! означает логическое отрицание (НЕ), и он тоже превращает в булеву форму. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба Инверсию означает ~, а ! означает логическое отрицание (НЕ), и он тоже превращает в булеву форму.вы посягнули на мнение профессионала! сказано - инверсия, значит инверсия! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба вы посягнули на мнение профессионала! сказано - инверсия, значит инверсия! В данном конкретном вопросе (!! vs !) я не нахожу причин, почему igorle отказывается использовать одиночные !, кроме, как привычки. Так же и другие (не будем показывать пальцами) не желают шагнуть за пределы своих укоренившихся принципов. А зря. Никто не заставляет силой использовать то, что не нравится. Но иметь в виду, понимать - это никому не вредит. Лично я узнал кое-что новое, за что благодарю всех участников дискуссии. И в книжки несколько раз заглянул, что тоже пойдет на пользу. :) P.S. А 5[a] все равно использовать не буду! Это противоречит моему здравому смыслу. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба P.S. А 5[a] все равно использовать не буду! Это противоречит моему здравому смыслу. :)вы только скажите, что вы и раньше так думали, а то если окажется, что это я вас заразил этой крамолой, я себе не прощу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба В данном конкретном вопросе (!! vs !) я не нахожу причин, почему igorle отказывается использовать одиночные !, кроме, как привычки. Так же и другие (не будем показывать пальцами) не желают шагнуть за пределы своих укоренившихся принципов. А зря. Никто не заставляет силой использовать то, что не нравится. Но иметь в виду, понимать - это никому не вредит. Лично я узнал кое-что новое, за что благодарю всех участников дискуссии. И в книжки несколько раз заглянул, что тоже пойдет на пользу. :) P.S. А 5[a] все равно использовать не буду! Это противоречит моему здравому смыслу. :) +1 тоже много подчерпнул :) И 5[] для меня тоже какой-то бред, однако в лаконичности return "0123456789abcdef"[i] что-то есть ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба вы только скажите, что вы и раньше так думали, а то если окажется, что это я вас заразил этой крамолой, я себе не прощу... Раньше я даже в ... нетрезвом виде не допускал, что такое возможно. Не знал. И сейчас считаю это нелогичным. В отличие от всех остальных "приемов". Читал две книжки, не считая каких-то еще при социализме изданных - K&R и Шилдта. Ни там, ни там такого 5[a] не написано. Наверное, не без причин. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться