Page 3 of 18 FirstFirst 12345678910111213 ... LastLast
Results 21 to 30 of 174

Thread: Вопрос на засыпку (Java, C#)

  1. #21
    VIP Srg Clock's Avatar
    Join Date
    Feb 2010
    Location
    Тексизона
    Posts
    7,360

    Default Re: Вопрос на засыпку (Java, C#)

    Перевожу: остаток от деления 14%3 = 2! а я думал это 15%3 = 0.

    public static void Smeshno()
    {
    int j = 14;
    //j += j++ % 3;
    int a = j;
    int b = (j++) % 3;

    j = a + b;
    Console.WriteLine("j = {0}; a = {1}; b = {2}", j, a, b);
    Console.ReadLine();
    }

    j = 16; a = 14; b = 2

  2. #22
    VIP Srg Clock's Avatar
    Join Date
    Feb 2010
    Location
    Тексизона
    Posts
    7,360

    Default Re: Вопрос на засыпку (Java, C#)

    Не корысти ради написал следующее:

    <script type="text/javascript">
    j = 14;
    j += j++ % 3;
    alert(j);
    </script>

    получил 16
    :|

  3. #23
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by Srg Clock View Post
    Не корысти ради написал следующее:

    <script type="text/javascript">
    j = 14;
    j += j++ % 3;
    alert(j);
    </script>

    получил 16
    :|
    :wink1:
    #include <stdio.h>

    int main(int argc,char** argv)
    { static
    int j=14;
    j+=j++%3;
    printf("\nj=%d\n",j);
    }
    а вот так = 17
    :grum:
    static int j=14;
    j+=j++%3; // j%3 = 2, j++ // 3
    :grum::grum::grum:
    gcc 4.3

    утешает только то , что мало найдётся идиотов , которые такие выражения будут писать внутри реальных программ.
    Можно даже чём-то таком напороться на сюрприз:

    a=f1(b)+f2(c); // какой вызов делается первым ? f1(b) или f2(c)?
    Last edited by crazy-mike; 04-20-2011 at 04:23 PM.

  4. #24
    VIP Srg Clock's Avatar
    Join Date
    Feb 2010
    Location
    Тексизона
    Posts
    7,360

    Default Re: Вопрос на засыпку (Java, C#)

    Ну задача была чётка заданна для языка C#/java а ты пишешь на С.
    В принципе как только я её увидел, первой мыслью было "будет зависеть от настроек компилятора".. я уже её выгрузил мне влом это доказывать самому себе, и так ясно.

    Вопрос скорее в другом - как эту формулку переписать, чтобы было просто и понятно и без извратов?
    И ещё вопрос, что делать когда встречаешь такую хуйню в тексте програм (не считая отрывания рук у горе гениев и засовывания их им же в плоские жопы.. )
    ПС я ищё с институтских времён не любил пидарастические операторы =+ ; ++j и т.д. - мозгу сложно такое понять..

  5. #25
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by Srg Clock View Post
    Ну задача была чётка заданна для языка C#/java а ты пишешь на С.
    В принципе как только я её увидел, первой мыслью было "будет зависеть от настроек компилятора".. я уже её выгрузил мне влом это доказывать самому себе, и так ясно.

    Вопрос скорее в другом - как эту формулку переписать, чтобы было просто и понятно и без извратов?
    И ещё вопрос, что делать когда встречаешь такую хуйню в тексте програм (не считая отрывания рук у горе гениев и засовывания их им же в плоские жопы.. )
    ПС я ищё с институтских времён не любил пидарастические операторы =+ ; ++j и т.д. - мозгу сложно такое понять..
    Я на C специально потом проверил.
    Но всё может быть даже ещё хуже
    как в случае
    с a=f1(b)+f2(c); // какой вызов делается первым ? f1(b) или f2(c)?
    Дело в том , что f1(b)+f2(c) не всегда равно f2(c)+f1(b). Всё зависит от того как изменяется база данных задачи в ходе вычисления функции. А мозгу там ничего понимать и не надо - всё зависит от используемого в генераторе дерева разбора. Поэтому лучше всё принудительно сделать t1=f1(b); t2=f2(c); a=t1+t2; // и обязательно отключить оптимизацию выражений. :grum:
    a b f1 fncall c f2 fncall add set
    но в паскале это делалось:
    c f2 fncall b f1 fncall add a set
    Last edited by crazy-mike; 04-20-2011 at 04:50 PM.

  6. #26
    Патриот смешно's Avatar
    Join Date
    Apr 2003
    Location
    Страна чудес
    Posts
    55,561

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by марик - камарик View Post
    короче, яс вам по понятиям ща распишу чтоб без ништяков.

    короче Ж у вас 14. Ж++ -- эта херня выполнится в самом конце(тоесть на строчку ниже)
    Поэтому читаем вторую строчку так:
    Ж+=Ж%3 <----> Ж=Ж+(Ж%3)= Ж+2 = 14+2=16

    а теперь вспомнили про Ж++ ------> Ж =17
    Марик, ответ 16, садись тебе двойка. но сильно не расстраивайся, т.к. никто правильно не ответил, даже гуру.
    4 main reasons why Boston is the best place to live:Red Sox (Baseball), Patriots (Football) World Champions
    Celtics the NBA (Basketball), Bruins Stanley Cup (Hockey)

  7. #27
    Патриот смешно's Avatar
    Join Date
    Apr 2003
    Location
    Страна чудес
    Posts
    55,561

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by Srg Clock View Post
    Не корысти ради написал следующее:

    <script type="text/javascript">
    j = 14;
    j += j++ % 3;
    alert(j);
    </script>

    получил 16
    :|
    во-во. хитрая задачка. вроде всё просто, а на самом деле кроме как знаний порядка действий, надо знать как работает компилятор.
    4 main reasons why Boston is the best place to live:Red Sox (Baseball), Patriots (Football) World Champions
    Celtics the NBA (Basketball), Bruins Stanley Cup (Hockey)

  8. #28
    подниматель пингвинов crazy-mike's Avatar
    Join Date
    Nov 2006
    Location
    L'viv
    Posts
    179,963

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by смешно View Post
    Марик, ответ 16, садись тебе двойка. но сильно не расстраивайся, т.к. никто правильно не ответил, даже гуру.
    Марик всё правильно ответил для С (gcc)! :wink1:

  9. #29

    Default Re: Вопрос на засыпку (Java, C#)

    Изображения Изображения
    • File Type: jpg test.jpg (116.9 KB, 23 просмотров)

  10. #30
    VIP Srg Clock's Avatar
    Join Date
    Feb 2010
    Location
    Тексизона
    Posts
    7,360

    Default Re: Вопрос на засыпку (Java, C#)

    Quote Originally Posted by марик - камарик View Post
    Ответ получится такой же вне зависимости от языка
    Марик за этот фраза двойка с минусом!
    Ответ зависит не только от языка, но и от настроек компилятора.

Page 3 of 18 FirstFirst 12345678910111213 ... LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Russian America Top. Рейтинг ресурсов Русской Америки. Terms of Service | Privacy Policy Рейтинг@Mail.ru