BORGERone / Programming

0 stars 0 forks source link

04 #6

Closed VladimirChabanov closed 3 years ago

VladimirChabanov commented 3 years ago

С++ Выполнена часть задания. Не хватает обмена с помощью дополнительной переменной.

Примечания: Это стандартная функция обмена значениями, она действительно выполнит то, что нужно: https://github.com/BORGERone/Programming/blob/277f84638e783388284aee297ce18552edacc450/Practice/04/C%2B%2B/zadanie%204/zadanie%204/zadanie%204.cpp#L15 но этот код не сделает ничего: https://github.com/BORGERone/Programming/blob/277f84638e783388284aee297ce18552edacc450/Practice/04/C%2B%2B/zadanie%204/zadanie%204/zadanie%204.cpp#L19 Выше указанной командой можно обменять значениями переменные в Python, но с С++ данный код выполняется по другому:

  1. Скобочки вообще проигнорируются;
  2. Оператор запятая имеет самый низкий приоритет, то есть сначала будет выполнен оператор присваивания (тот что в центре). Таким образом: b = b. То есть переменной b будет присвоено значение переменной b.
  3. После предыдущего шага выражение превратится в: a, b, a. Оператор запятая попарно выполнится справа не лево. Полная последовательность выполнения: (a, b = b, a) => a, b = b, a a, b = b, a => a, b, a
    a, b, a => b, a b, a => a

При оператор запятая: https://habr.com/ru/post/116827/

Python Пока кода нет

BORGERone commented 3 years ago

Понял, исправил

VladimirChabanov commented 3 years ago

+