Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
 Аватар для _Eldar_
45 / 30 / 11
Регистрация: 31.10.2009
Сообщений: 200

Порядок вычисления выражения

16.04.2012, 08:19. Показов 2020. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

Не пойму как вычисляется выражение : p = (p | e++ >> 2) & (++p >> 1), при р = 3;
у меня результат: p = 0, хотя считаю все вручную получается р = 2.
Помоему сначала должно посчитаться выражение в первой скобке (p | e++ >> 2) (оно равно 3),
затем во второй скобке (++p >> 1) (равно 2), т.к. поразрядное "И" выполняется слева направо. А компилятор сначала увеличивает p на единицу, а уже потом делает остальные операции (ИМХО). Почему так происходит?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2012, 08:19
Ответы с готовыми решениями:

Порядок вычисления выражения в msvc c++
Доброго дня всем. Понимаю, что компил оффтопик, но всё же. Пусть у нас есть выражение a = foo() + bar(); Известно, что стандарт плюсов...

Опишите процесс вычисления выражения заданного выражения 3 + 2 * x -0,5 – 4 / x. Обраб отайте ошибку извлечения квадратного корня из отрицательного
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #include <string> #include <sstream> #include...

порядок вычисления выражений
порядок вычисления выражений x>100\left| \right|x<=10 и y==0

5
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
16.04.2012, 08:36
Цитата Сообщение от _Eldar_ Посмотреть сообщение
(p | e++ >> 2)
А вот тут сначала выполняется "ИЛИ" или "сдвиг" по-Вашему?
0
 Аватар для _Eldar_
45 / 30 / 11
Регистрация: 31.10.2009
Сообщений: 200
16.04.2012, 09:01  [ТС]
fasked, сначала ИЛИ

Добавлено через 39 секунд
fasked, а затупил СДВИГ сначала

Добавлено через 2 минуты
fasked,
1) e++ >> 2 = 1
2) p | 1 = 3

Добавлено через 9 минут
Ну так почему префиксный инкремент выполняется самым первым, игнорируя скобки и порядок операции "&" (слева направо). Кто знает?
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
16.04.2012, 09:08
_Eldar_, я что-то сразу проглядел. Этот код и не должен выполняться, так как Вы ожидаете. Одна переменная изменяется дважды в пределах одной точки следования. А согласно стандарту языка это называется unspecified behavior. Нельзя так писать, потому что последствия непредсказуемы. Скорее всего, используя другой компилятор, Вы получите другой результат при таком коде.

Подробности здесь: http://alenacpp.blogspot.com/2... oints.html
1
 Аватар для _Eldar_
45 / 30 / 11
Регистрация: 31.10.2009
Сообщений: 200
16.04.2012, 09:20  [ТС]
fasked, Спасибо. Все понятно, хреново, что это задание лабораторной работы(

Добавлено через 3 минуты
fasked, и причем это не опечатка(, во всех вариантах лабы переменные изменяются дважды в одной точке следования. Ладно тема закрыта.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
16.04.2012, 10:09
_Eldar_, как вариант, если это позволяется, можно разбить выражение на несколько.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2012, 10:09
Помогаю со студенческими работами здесь

Порядок вычисления операций
У Страуструпа написано, что int i = 5; v = i++; Может вызвать неправильный результат, так как порядок выполнения операций не...

Регламентирован ли в С++17 порядок вычисления операндов?
Дароу, имеются ли в с++17 инновации, связанные с порядком вычисления? Например ранее f1() + f2(); вычисление операндов зависило от...

Порядок вычисления в условных выражениях
Привет ! Есть такой код: int Value = 0; // // Допустим, SomeFunction всегда меняет аргумент // на ненулевой и всегда...

Порядок вычисления операндов при сложении
Есть такой пример int I = 2, k; k = (I=10)*(I=20); Чему в этом примере равно значение K?? 400, Так как последнее...

Вычисления выражения
Составьте программу для вычисления выражения f=max(A)/max(C)-max(B) где A, B, C, - массивы целых чисел


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru