Val
Язык то какой? )))
С# визуалстудия
Сидредин
А, решил уже
Agent_RBY_
Предпоследний вместо последнего
Че, ты реально знаешь что такое ~?
Vyacheslav
С# визуалстудия
https://metanit.com/sharp/tutorial/2.3.php
Сидредин
Че, ты реально знаешь что такое ~?
По твоему описанию понял😂
Agent_RBY_
Я из своего описания сам не понял
Сидредин
Сидредин
https://metanit.com/sharp/tutorial/2.3.php
Даже шарп на пхп Agent_RBY_
Agent_RBY_
Даже шарп на пхп Agent_RBY_
Весь мир держится на одном пхп
Nikita
Весь мир держится на одном пхп
А на чем держится пхп?)
Agent_RBY_
А на чем держится пхп?)
пхп написан на пхп
Nikita
Справедливо
Agent_RBY_
Это рекурсия, братан
Aleksandr
А на чем держится пхп?)
На слове божьем
Vyacheslav
На слове божьем
То есть на Си Все в этом мире держится на Си
Aleksandr
Не на лиспе и на том спасибо
Val
https://metanit.com/sharp/tutorial/2.3.php
Это был наверное очень глупый вопрос. Сам не сумел правильно сформулировать вопрос гуглу. Очень внимательно перечитал ссылку, и обратил внимание на Цитата : "x++ - сначала значение переменной x возвращается в качестве результата операции, а затем к нему прибавляется 1." Огромное спасибо за ссылку, вы очень помогли.
Warox
Подскажите пожалуйста про приоритет операций: А = А++ * А; Правильно понимаю последовательность? : 1) умножение: А*А 2) присвоение: А = результат А*А 3) инкремент: только сейчас делаем А++
если а = 2 то: Сначало инкремент, но на месте а++ будет по прежнему 2 но умножатся будет уже на 3 и потом присвоение https://ci-sharp.ru/Teaching/operatsii-prioritet-C.html
Val
Да не за что Ещё важно запомнить что лучше так никогда не делать Вопросы приоритета лучше оставить в учебниках )
Правильно понимаю посыл? : Дабы не заморачиваться этой теоретической вещью, вместо: А = А++ * А; Следовало разделить задачу, и поступить практично: А *=А; А++;
Agent_RBY_
Можно просто проверить ручками что первее выполниться, держу в курсе)
Warox
Не понял?
преобразование не эквивалетно и приедет к разному значению А в конце
Warox
если A = 2 в начале то А = А++ * А; -> 6 //—————— А *=А; А++; -> 5
Andrii
Если брать Си, то там ситуация такая. Приритеты операций задают дерево разбора, проще говоря влияют на скобки Но порядок выполнения отдаётся на откуп оптимизатора. Поэтому когда мы делаем постинкремент и эта же переменная используется в выражении, то компилятор гарантирует, что только A++ будет старым, а другое использование A может быть абсолютно любым
Vyacheslav
Правильно понимаю посыл? : Дабы не заморачиваться этой теоретической вещью, вместо: А = А++ * А; Следовало разделить задачу, и поступить практично: А *=А; А++;
Смысл кода должен быть понятен с первого прочтения Что там получится в случае с этим выражением нужно искать вместе с лучшими детективами, и знатоками компиляторов А особенно это касается множественных изменений одной переменной с помощью себя самой В общем посыл верный, а результат - скорее неопределенный
Andrii
Ну и читать предупреждения компилятора :)
Val
преобразование не эквивалетно и приедет к разному значению А в конце
Тааак... Т.е. это не вполне очевидный пример из задачника?
Warox
Тааак... Т.е. это не вполне очевидный пример из задачника?
ну он на очередность опираций я выше кидал тебе страницу где есть очередность операций в c#
Warox
Алексей
Andrii
ну он на очередность опираций я выше кидал тебе страницу где есть очередность операций в c#
Это приоритет операций, а не очерёдность. По сути это влияет на то, как будут расставлены скобки в выражении. А порядок вычислений определяется оптимизатором обычно.
Warox
A = A++ * A -> A = ((A++) * A)
Warox
(a+1)+(b+2) что первее выполняется, a+1 или b+2?
не могу сказать да ив данном случае не имеет значения
Andrii
не могу сказать да ив данном случае не имеет значения
А если (b++) + (b+2) что будет выполнятся первым?
Andrii
b++ потом b+2 потом сума
Неправда, сума всегда будет выполнятся последней, а вот вычислять вначале левое слагаемое или правое это решать компилятору. Часто оба будут вычисляться одновременно
Val
A = A++ * A -> A = ((A++) * A)
Спс за визуализацию мысли. Потрогал в визуалстудии, и пришёл к этому выводу,а оформить не сумел
Andrii
Это называется Undefined Behaviour, UB неопределённое поведение
Andrii
у них разный приоритет От этого меняется резульатт Твои утверждения не имеют смысла :)
Мои утверждения это стандарт языка Си. Приоритет только для расстановки скобок
Алексей
К сожалению нет
Лучшая просто надо продержаться 10000 часов😉
Warox
Мои утверждения это стандарт языка Си. Приоритет только для расстановки скобок
https://stackoverflow.com/questions/6457130/pre-post-increment-operator-behavior-in-c-c-java-c-sharp
Warox
там кстати на странице что я кидал пишет порядок выполнения - слева на право (последняя колонка)
Val
Сорри. Я запутался. А разве Сшарп и С так кардинально различаются в этом вопросе?
Warox
Сорри. Я запутался. А разве Сшарп и С так кардинально различаются в этом вопросе?
это 2 совсем не связаных языка у них только синтаксис си-подобный
Алексей
https://metanit.com/sharp/tutorial/2.3.php
А по плюсам там е
Игнат
Их объеденяет только синтаксис
Vyacheslav
Сорри. Я запутался. А разве Сшарп и С так кардинально различаются в этом вопросе?
У Си не определен порядок вычисления операндов То есть в выражении (а++)*а в Си непонятно какой из операндов умножения будет вычислен первым Отсюда и неопределенное поведение В Шарпе, на сколько я понял математика вся считается слева направо 1(а++) * 2а То есть (а++) вычисляется раньше чем а
Игнат
Да, в C++ порядок вычислений не задан
Прикольно, прогал и изучал язык года два, про это вообще не в курсе был)
Егор
А все со скобочками правильно точно?
Со скобками все хорошо, проверил
Егор
Мышкой наводил???
Вот такое выдает
Warox
Со скобками все хорошо, проверил
Оберни i в скобочки (i) =>…
Agent_RBY_
Оберни i в скобочки (i) =>…
Не поможет. У него лишняя скобка после (е) на 9 строке
Игнат
Точно то обернул?)
Игнат
Кста реально
Игнат
Скобка лишняя
Vyacheslav
Не поможет. У него лишняя скобка после (е) на 9 строке
А что это вообще? Форич это же цикл? А функция типа условие цикла? Шо происходит там вообще)))
Игнат
Для каждого элемента добавить слушатель
Егор
Короче
Сидредин
А по плюсам там е
https://metanit.com/cpp/
Agent_RBY_
Короче
Короче у тебя скобка лишняя