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

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

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

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

30.05.2009, 05:26. Просмотров 4185. Ответов 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++):

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

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

Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки - C++
Доброго времени суток. Подскажите пожалуйста алгоритм или путь к решению задачи, используя СТЕК Дана ПСП, ваша задача для каждой...

Фигурные скобки: Мне пишут что ошибка в закрытие скобки после return. - C++
#include &lt;iostream&gt; using namespace std; int main(){ int *ptr_number = new int; int *sum = new int(0); cin &gt;&gt; *ptr_number; ...

Дана строка, содержащая латинские буквы и скобки. Если скобки расставлены правильно - вывести 0. Иначе - номер позиции, где есть ошибочная скобка - C++
Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответству-ет одна...

Задача с использованием логических операторов и операторов ветвления - C++
Вот вам задачка, чтоб голову поломать :D Вася работает программистом и получает 50$ за каждые 100 строк кода. За каждое третье...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 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
Странная таблица,у Страуструпа постфиксный декремент в числе первых,а там последний...
Да таблица есть,но даже с ней что-то затруднительно сказать.
В ней написано,что сначала идёт <,потом ==,потом && и ||(одинаковый приоритет).С другой стороны,говорится,что *"операторы ||,&& гарантируют,что операнд слева будет вычислен до операнда справа ",и ещё что "унарные операторы и операторы присваивания правоассоциативны,а все остальные левоассоциативны".Вот и всё.Вот и думай тут,что сильнее:гарантия *(выше по тексту) или приоритет < ...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2009, 09:33
Привет! Вот еще темы с ответами:

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this - C++
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.05.2009, 09:33
Ответ Создать тему
Опции темы

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