GD Star Rating
loading...

Обсуждение:

Емае, увольте кто–нибудь уже министров. То стихи дебильные какие–то к постам дописывают, то картинки тошнотные, то слово “возвращаються” напишут. блогу стыдно приличным людям показать. Я слышал что для дебилизма спецблог вроде бы есть.

Запомните эту дату:

Флаг вам в руки, удаляюсь. Срите друг другу в посты без меня.
Написал sleep [8397], 25.01.2012 в 17.43


Было: (скучная)

Загадка в двух частях.

Самое грустное и, одновременно, смешное во всей этой драме, это то, что выражение на С x ^= y ^= x ^=y; ничего местами не меняет, а если и меняет, то только по нечётным числам, так как результат его вычисления не определён (интересующихся отсылаем к стандарту ANSI C, точнее, к тем его параграфам, которые разъясняют что такое sequence point).
То есть получается, что sleep в очередной раз прилюдно обосрался, да ещё и обиделся (не иначе, как сам на себя).
Остаётся только пожелать ему счастливого пути и больших свершений.

Админы и сочувствующие посетители hardblog.net посчитали злободневным:тайны женских сердец

Tagged with →  

38 Responses to Обсуждение: Емае, увольте кто–нибудь уже министров.

  1. Peeef:

    Часть первая:

    Нижеприведенное выражение на C меняет местами значения двух целочисленных переменных x и у. Однако, из нее были стерто три символа. Восстановите правильное выражение:
    x = y = x = y;

  2. Ebahlam:

    : ох, думал стёрто 2 и мозг сломал. С 3-мя все элементарно, такое в начальной школе нынче проходят.

  3. Sukon:

    : x ^= y ^= x ^= y; чтоле?

  4. Peeef:

    : Да.

    Теперь вторая часть. Почему в Яваскрипте эта хрень не работает?

  5. Peeef:

    : Еле оттер монитор от понтов. Не брызгай в следующий раз так сильно.

  6. Sukon:

    : Если написать
    a^=b
    b^=a
    a^=b
    то работает.

    Что приводит нас к особенностям функционирования оператора ^= в JS.

    Если честно, лень разбираться. После известного видео WAT и так ясно что руби и JS – самые нескучные языки на планете (хотя про JS это было и раньше понятно).

  7. Peeef:

    : ОК. Перефразирую вопрос. Почему в Яве эта хрень не работает?

  8. Peeef:

    Емае, увольте кто–нибудь уже министров. То стихи дебильные какие–то к постам дописывают, то картинки тошнотные, то слово “возвращаються” напишут. блогу стыдно приличным людям показать. Я слышал что для дебилизма спецблог вроде бы есть.

    А давай мы тебя уволим? А то ты даже на роль шута не годишься.

  9. Ebahlam:

    : а это проходят в средней школе!
    В яваскрипте (и яве) значения переменных “вычисляются” до операций.

    If an expression denotes a variable, and a value is required for use in further evaluation, then the value of that variable is used. In this context, if the expression denotes a variable or a value, we may speak simply of the value of the expression.

    Если выражение расписать, то у нас получится:
    x0 = x;
    y0 = y;
    x = x0 ^ (y = (y0 ^ (x = x0 ^ y)));

    А дальше считай сам.

  10. Sukon:

    : Вон мугабе внизу написал!

  11. Sukon:

    : Я был о тебе лучшего мнения.

  12. Risin:

    : стыдно тупые вопросы показывать, а программист имеет право неграматно писать ядумаю (хотя и ненавижу всех кто неграматно пишет)

  13. Sukon:

    zokotuhaFly: Ты так неграматна написал, нинавижу тебя! Так хренова написать нада ищо постаратся.

  14. Risin:

    : а сам та на себя пасматри! я тожы тебя нинавижу!

  15. Peeef:

    : А давай мы тебя уволим? А то ты даже на роль шута не годишься.

    Хорошо что министры старательно работают в этой роли. Нет, правда. Устроили детсад для идиотов.

  16. Peeef:

    zokotuhaFly: Так это ты местный анонимный петросян с доступом к синей фигне что-ли? Признавайся!

    Ничего тупого в вышеприведенной задачке нет, а понтами брызгать тебе как-то неуместно.

  17. Hsvhlam:

    А что вы хотите от блог дев?

  18. Peeef:

    : Ну почти верно, только опять понтами левыми монитор забрызгал.

    На самом деле конечно же никто в средней школе не проходит (да и не догадывается обычно даже), что оператор ^= работает по разному в Яве и С/C++. И дело не совсем в том, когда вычисляются значения переменных, а в том, как интерпретируется операция ^=.

    Строго говоря, в С по стандарту поведение вышеприведенного выражения, не определено. В С++ ситуация менее внятная т.к. стандарт в этом разделе вроде тот же, но наличие перегружаемого оператора ^= навязывает довольно однозначную интерпретацию и порядок действий. В любом случае, большинство С/C++ компиляторов скомпилируют x ^= y ^= x ^= y; как правильное решение задачки т.к. в головах авторов компиляторов этих языков (да и тех, кто на них пишет) “^=” эквивалентен атомарной операции “operator^=”.

    В яве/яваскрипте концепции перегружаемого оператора ^= нет, поэтому авторы языка решили интерпретировать это выражение строго как сокращение от x = x + y. В таком выражении подстановка значений идет слева направо.

  19. Ebahlam:

    : бред написал. Я тебе привел цитату из мануала по жаве. И дело там именно в том, что значение переменной берется до вычисления выражения.

    Более того, если в сях переписать “x ^= y” как “x = x ^ y”, то есть считать что эти операции эквивалентны, то ничего не изменится – значения, как и ожидается, поменяются местами.

    Тот факт, что в сях оператор перегружаемый, твою теорию никак не оправдывает. Я бы еще понял если ты пытался объяснить её наличием геттеров и сеттеров, но их нет.

    Но именно то, что стандарты C/C++ не оговаривают в какой момент вычисляются значения переменных, обязывает компиляторы вычислять их непосредственно перед использованием.

  20. Ebahlam:

    : у тебя какая-то острая неприязнь к понтам. Опущенный что ли?

  21. Peeef:

    :
    Ты привел цитату, которая говорит нам “If an expression denotes a variable, and a value is required for use in further evaluation, then the value of that variable is used.”

    По-русски это значит “выражение, ссылающееся на переменную будет интерпретироваться как значение этой переменной”, и ничего более. Про порядок вычисления сложного выражения в этой цитате ничего не говорится вообще. А именно порядок вычисления определяет то, как будет вычислено значение

    x = x ^ something.

    Первый вариант – вычислить х, вычислить something, провести операцию, обновить х.
    Второй вариант – вычислить something, вычислить х, провести операцию, обновить х.

    В яве/яваскрипте четко сказано, что вычисления производятся слева направо, поэтому мы видим тот результат который видим. В Сях ничего про это не сказано (формально, компилятор может решить и так, и сяк), однако ж в реальных компиляторах операция ^= работает (почти?) всегда так, как будто сначала вычисляется something. Почему это так? Потому что это соответствует концепции наличия перегружаемого оператора ^=. Ведь если бы Си работали бы как Ява, получилось бы что для интов выражение x ^= y ^= x работает одним образом, а для ручками определенных классов, другим, что вызвало бы WAT.

  22. Peeef:

    : А ты-то че дерзкий такой? Гопота штоле?

  23. Sukon:

    zokotuhaFly: ты посмотри на сибя! ни одной запятой в предложении, а ещё нтелегент!

  24. Sukon:

    : Не нравится – вали на фишки.

  25. Peeef:

    : Если нет разницы, какой смысл валить?

  26. Sukon:

    : Могу сделать такую разницу, что ты с радостью свалишь. Хочешь?

  27. Peeef:

    : Продемонстрируешь какую-нибудь очередную бездну вкуса и выложишь еще одну остроумную картинку с говном и смешной синей подписью что-ли?

    Я был о тебе лучшего мнения.

  28. Sukon:

    : Ты только попроси, все для твоего удовольствия.

  29. Peeef:

    : ОК.
    Прошу местных министров в дальнейшем избегать попыток заниматься непрошенным и ненужным оформлением постов, ибо с этой задачей они на мой взгляд не справляются. Если министр очень хочет выразить свое мнение касательно содержания поста или остроумно пошутить, он вполне может снизойти до нормального пользователя и запостить свою оригинальную картинку с подписью в комментариях, где желающие могут хотя бы спрятать ее с глаз долой с помощью кнопочки “не хочу видеть это”. Так это работает на остальных блогх, и мне это нравится.

    Еще прошу удалить картинки жидкого говна, теток с порванной рожей и выпученными глазами, а также исправить опечатку в слове “возвращаються”.

    Сделаешь все для моего удовольствия?

  30. Peeef:

    : (Вообще конечно еще правильнее всю фразу про “возвращаються” убрать из оформления поста и запостить в виде авторского комментария, чем она по сути и является).

  31. Sukon:

    : Ты правда не смотрел Total Recall, да?

  32. Peeef:

    : Там тоже что-то про дебилов-двачеров было, я не помню уже?

  33. Sukon:

    : Дебилы двачеры у тебя на дваче.

  34. Peeef:

    : А кто же тогда у нас здесь по постам скачет и устраивает цирк с расклеиванием дебильных уродливых картинок и безграмотными приписками не по теме? Гномики?

    Я правильно понимаю что модераторы решили сделать из дев-блог сайт анонов-двачеров-циркачей-любителей-картинок-с-говном-из-интернета? Если так, простите, не буду мешать. Флаг вам в руки, удаляюсь. Срите друг другу в посты без меня.

  35. Sukon:

    : > Могу сделать такую разницу, что ты с радостью свалишь. Хочешь?

    Гуд бай, мы будем тут очень скучать без тебя.

  36. Hsvhlam:

    Совсем охуели.

  37. Sukon:

    : Плюсанул на стопиццот!

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