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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.85
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
#1

Приоритет операторов (расставить скобки) - C++

30.05.2009, 05:26. Просмотров 4157. Ответов 4
Метки нет (Все метки)

Необходимо расставить скобки в следующем выражении:
C++
1
a==b||a==c&&c<5
Объясните расстановку.

Я думаю,что сначала вычислится c<5(по приоритету),потом a==b,потом ,если true,a==c,(по приоритету ||)потом ||,а уже последним &&,если выражение слева true.Я прав или ошибаюсь?Как правильно?
P.S.Скобки я так и не расставил,а вдруг они повлияют на приоритет вычислений??
С другой стороны,операторы ||,&& гарантируют,что операнд слева будет вычислен до операнда справа.Тогда скобки расставятся так:
C++
1
((a==b)||(a==c))&&(c<5)
Правильно ли это решение?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2009, 05:26     Приоритет операторов (расставить скобки)
Посмотрите здесь:

Приоритет операторов - C++
int x = 4; int y = 5; cout &lt;&lt; (x == y ? ++x, ++y : --x, --y); Оператор запятая здесь не выполняется из-за приоритета? ...

Расставить среди цифр знаки арифметических операций и скобки, чтобы получить необходимый результат - C++
Собственно, вот задача: Вводится строка не более чем из 6 цифр и некоторое целое число R. Расставить знаки арифметических операций...

приоритет потоков - C++
Где можно найти информацию по таким темам: Относительный приоритет потока, динамическое изминение уровня потока?

Приоритет операций - C++
Здравствуйте, а не подскажите что в С-подобных языках приоритетнее: сложение/вычитание, побитовые операции, умножение/деление

приоритет операций - C++
while(*a++==*b++ &amp;&amp; *a!=NULL) хочу сравнить до конца строки &quot;а&quot;. почему не работает? где-то дело в приоритете, а где найти не...

приоритет. странно - C++
привет всем прогерам С++ =) есть такой вопрос. Вроде ни чего сложного, но компилятор компилит это дело не так как ожидается. Есть...

Приоритет побитовых операций - C++
Всем привет. Столкнулся с непоняшкой: // Объявляем два массива и инициализируем их unsigned char A={0xFF, 0x03, 0x00,...

Приоритет преобразований внутри if - C++
Всем привет. Рассмотрим такой код: #include &lt;iostream&gt; class C { typedef void (C::*fp)() const; public: operator...

Как повысить приоритет программы! - C++
Здравствуйте форумчане! Нужна помощь в написании программы. Программа на подобие диспетчера задач, единственная её работа это повышать...

Как задать приоритет priority_queue? - C++
Здравствуйте. Хочу понять как в очереди задавать приоритет. #include &lt;queue&gt; #include &lt;iostream&gt; #include &lt;functional&gt; #include...

Приоритет. Обращение к элементу по постинкременту. - C++
while(buffer != ',' &amp;&amp; buffer != '\0') dest=buffer; Вот такой код, вопрос такой : сначала к j додается 1 или додается +1 после...

Логические операции и приоритет операций - C++
Привет всем, объясните, пожалуйста: 1)За что отвечает эта часть кода? bool xor(bool a, bool b) { return (a||b)&amp;&amp;!(a&amp;&amp;b); } ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
30.05.2009, 05:46     Приоритет операторов (расставить скобки) #2
вот если погуглить то можно попасть на это.

Добавлено через 4 минуты 29 секунд
Цитата Сообщение от #pragma Посмотреть сообщение
C++
1
((a==b)||(a==c))&&(c<5)
можно и так
C++
1
(a==b)|| ((a==c)&&(c<5))
смысл вопроса хоть уточните.
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
30.05.2009, 06:37  [ТС]     Приоритет операторов (расставить скобки) #3
Смысл этого задания в том,как я понимаю,чтобы расставить скобки в порядке вычисления выражения,а не как мы хотим.То есть чтобы после расстановки скобок порядок вычислений не изменился.Переформулировать вопрос можно так:в каком порядке будут произведены вычисления в данном выражении?
rrrFer
Заблокирован
30.05.2009, 09:13     Приоритет операторов (расставить скобки) #4
можно нагуглить:http://do.rksi.ru/library/courses/demo/tema1_3.dbk
там в самом низу таблица с приоритетами, по ней порядок выполнения:
(с<5)
(a==b)
(a==c)
((a==c)&&(с<5))
((a==b)||((a==c)&&((с<5))))
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
30.05.2009, 09:33  [ТС]     Приоритет операторов (расставить скобки) #5
Странная таблица,у Страуструпа постфиксный декремент в числе первых,а там последний...
Да таблица есть,но даже с ней что-то затруднительно сказать.
В ней написано,что сначала идёт <,потом ==,потом && и ||(одинаковый приоритет).С другой стороны,говорится,что *"операторы ||,&& гарантируют,что операнд слева будет вычислен до операнда справа ",и ещё что "унарные операторы и операторы присваивания правоассоциативны,а все остальные левоассоциативны".Вот и всё.Вот и думай тут,что сильнее:гарантия *(выше по тексту) или приоритет < ...
Yandex
Объявления
30.05.2009, 09:33     Приоритет операторов (расставить скобки)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru