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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.85
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
30.05.2009, 05:26     Приоритет операторов (расставить скобки) #1
Необходимо расставить скобки в следующем выражении:
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++
Дана строка, содержащая латинские буквы и скобки. Если скобки расставлены правильно - вывести 0. Иначе - номер позиции, где есть ошибочная скобка C++
C++ Приоритет преобразований внутри if
C++ приоритет операций
C++ приоритет потоков
Для каждой открывающей скобки найти позицию ей соответствующей закрывающей скобки C++
Расставить среди цифр знаки арифметических операций и скобки, чтобы получить необходимый результат C++
C++ Приоритет операторов
C++ Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
C++ Задача с использованием логических операторов и операторов ветвления
Фигурные скобки: Мне пишут что ошибка в закрытие скобки после return. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 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
Временно недоступен
 Аватар для #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
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
30.05.2009, 09:33  [ТС]     Приоритет операторов (расставить скобки) #5
Странная таблица,у Страуструпа постфиксный декремент в числе первых,а там последний...
Да таблица есть,но даже с ней что-то затруднительно сказать.
В ней написано,что сначала идёт <,потом ==,потом && и ||(одинаковый приоритет).С другой стороны,говорится,что *"операторы ||,&& гарантируют,что операнд слева будет вычислен до операнда справа ",и ещё что "унарные операторы и операторы присваивания правоассоциативны,а все остальные левоассоциативны".Вот и всё.Вот и думай тут,что сильнее:гарантия *(выше по тексту) или приоритет < ...
Yandex
Объявления
30.05.2009, 09:33     Приоритет операторов (расставить скобки)
Ответ Создать тему
Опции темы

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