Форум программистов, компьютерный форум CyberForum.ru

Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c - C++

Восстановить пароль Регистрация
 
Артём Апрель
0 / 0 / 0
Регистрация: 21.11.2013
Сообщений: 7
05.12.2013, 19:47     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #1
Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c, в какой последовательности считать (приоритеты)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 19:47     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c
Посмотрите здесь:

Как выполнить программу по шагам C++
Выражение C++
Borland c 5.02 при запуске по шагам (F8) вылетает окошко CPU c кодом АСМ как его убрать? C++
Подставить в заданное выражение знаки +,-,*,/ так, чтобы выражение было истинным C++
C++ Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом («T» — True, «F» — False): <выражение> :
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
05.12.2013, 20:58
  #2

Не по теме:

пробелов бы хоть добавил...

C++
1
a ^= ((b++) == 3) ? (--c) : ((b--) - c);

Артём Апрель
0 / 0 / 0
Регистрация: 21.11.2013
Сообщений: 7
05.12.2013, 21:25  [ТС]     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #3
Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:

пробелов бы хоть добавил...

C++
1
a ^= ((b++) == 3) ? (--c) : ((b--) - c);

а порядок какой будет?
получается если (b+1) равно 3, то (а) в степени (с-1), а если нет, то (а) в степени (b-1-c)? или как?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
05.12.2013, 21:31     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #4
Цитата Сообщение от Артём Апрель Посмотреть сообщение
получается если (b+1) равно 3
не (b + 1), а b. Постфиксный инкремент - сначала сам инкремент, потом возвращается старое значение.
Цитата Сообщение от Артём Апрель Посмотреть сообщение
в степени
^= - это не "степень", а побитовое xor (исключающее ИЛИ) с присвоением :/

Добавлено через 2 минуты
Вообще найти то несложно, например.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
05.12.2013, 21:35     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #5
Сначала Операторы просто повтори, что означают!
Не бывает оператора "возведение в степень"
и оператор ++ это не просто "плюс один"!

Добавлено через 1 минуту
Опздл,блн...
Артём Апрель
0 / 0 / 0
Регистрация: 21.11.2013
Сообщений: 7
05.12.2013, 21:37  [ТС]     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #6
Цитата Сообщение от gray_fox Посмотреть сообщение
не (b + 1), а b. Постфиксный инкремент - сначала сам инкремент, потом возвращается старое значение.

^= - это не "степень", а побитовое xor (исключающее ИЛИ) с присвоением :/

Добавлено через 2 минуты
Вообще найти то несложно, например.
я что-то не сильно понимаю, программу написал, полностью выражение считает нормально, но нужно ещё по шагам его посчитать, а ответы разные выдаёт (полностью и по шагам), как именно посчитать вручную это выражение?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
05.12.2013, 22:08     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #7
Артём Апрель, я не знаю, как тебе объяснить, если ты не понимаешь, что делают операторы; вот "псевдокод", если поможет:
Код
// b++
oldB = b
b = b + 1

// (b++) == 3
if oldB == 3:
   // --c
   c = c - 1

   result = c
else:
   // b--
   oldB = b
   b = b - 1

   // (b--) - c
   result = oldB - c

// a ^= ((b++) == 3) ? (--c) : ((b--) - c)
temp = a ^ result
a = temp
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
05.12.2013, 22:13     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #8
gray_fox,
а точно вот это
Цитата Сообщение от Артём Апрель Посмотреть сообщение
b---c
вот так разложится
Цитата Сообщение от gray_fox Посмотреть сообщение
((b--) - c)
а не
C++
1
b-(--c)
???
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
05.12.2013, 22:16     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #9
ValeryS, у постфиксного -- приоритет выше, чем у -, я даже проверил)
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
05.12.2013, 22:20     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #10
Цитата Сообщение от gray_fox Посмотреть сообщение
ValeryS, у постфиксного -- приоритет выше,
может быть
не люблю я эти головоломки
а главное смысл то какой?
gray_fox
05.12.2013, 22:24
  #11

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
а главное смысл то какой?
Видимо лень осмысленные задания придумывать, вот вам охтыжЁ*твоюмать-выражение, давайте поиграем в компилятор...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 23:02     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c
Еще ссылки по теме:

Объясните пожалуйста логическое выражение C++
Разложите пожалуйста по шагам выражение C++
C++ Напишите,пожалуйста, это математическое выражение на С++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Артём Апрель
0 / 0 / 0
Регистрация: 21.11.2013
Сообщений: 7
05.12.2013, 23:02  [ТС]     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c #12
Цитата Сообщение от gray_fox Посмотреть сообщение
Артём Апрель, я не знаю, как тебе объяснить, если ты не понимаешь, что делают операторы; вот "псевдокод", если поможет:
Код
// b++
oldB = b
b = b + 1

// (b++) == 3
if oldB == 3:
   // --c
   c = c - 1

   result = c
else:
   // b--
   oldB = b
   b = b - 1

   // (b--) - c
   result = oldB - c

// a ^= ((b++) == 3) ? (--c) : ((b--) - c)
temp = a ^ result
a = temp
да, спасибо огромное, переделал под свой код, всё работает)
Yandex
Объявления
05.12.2013, 23:02     Разложите пожалуйста по шагам выражение a^=b++==3?--c:b---c
Ответ Создать тему
Опции темы

Текущее время: 16:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru