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

В программе объявлена переменная float x=2 - C++

Восстановить пароль Регистрация
 
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
16.01.2013, 17:56     В программе объявлена переменная float x=2 #1
Какое значение получит переменная х в результате вычисления х*=(--x+1)
подскажите как тут получают ответ... знаю что ++ прибавление а вот -- не совсем догоняю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 17:56     В программе объявлена переменная float x=2
Посмотрите здесь:

C++ Переменная float - знаки после запятой
C++ float переменная
C++ базовый и производный класс, в базовом объявлена переменная "protected", она недоступна по имени в производном классе! template <class T> воду мутит!
C++ Переменная float со значением 1.#QNAN
В программе объявлена переменная int x=1; определить значение выражения х>0 && x<1 ? 10/x : 10*x C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
16.01.2013, 18:18     В программе объявлена переменная float x=2 #2
Ну если ++ инкремент (+1), то -- декремент (-1). Логично?
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
16.01.2013, 18:29     В программе объявлена переменная float x=2 #3
хацкер, ответ 4
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
16.01.2013, 18:37  [ТС]     В программе объявлена переменная float x=2 #4
float x=2. Какое значение получит переменная х в результате вычисления х*=(x+++1)
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
16.01.2013, 18:38     В программе объявлена переменная float x=2 #5
Дмитрий 93, а мб сначала проверить, а потом говорить?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
16.01.2013, 18:47     В программе объявлена переменная float x=2 #6
Вроде как поведение не определенно. Разные компиляторы могут выдать разный результат.
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
16.01.2013, 18:50  [ТС]     В программе объявлена переменная float x=2 #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Дмитрий 93, а мб сначала проверить, а потом говорить?
я знаю что там ответ 2, только незнаю как он получен.. 1+1=2 потом х*2 получается 4
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
16.01.2013, 19:08     В программе объявлена переменная float x=2 #8
Цитата Сообщение от hacker13a Посмотреть сообщение
я знаю что там ответ 2, только незнаю как он получен..
Всегда можно посмотреть ассемблер, благо пример небольшой:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
; 6    :     float x = 2;
 
movss   xmm0, DWORD PTR __real@40000000
movss   DWORD PTR _x$[ebp], xmm0
 
; 7    :     x *= (--x + 1);
 
movss   xmm0, DWORD PTR _x$[ebp]
subss   xmm0, DWORD PTR __real@3f800000
movss   DWORD PTR _x$[ebp], xmm0
movss   xmm0, DWORD PTR _x$[ebp]
addss   xmm0, DWORD PTR __real@3f800000
mulss   xmm0, DWORD PTR _x$[ebp]
movss   DWORD PTR _x$[ebp], xmm0
Добавлено через 3 минуты
Строка 8: поместили x на регистр xmm0.
Строка 9: выполнили декремент.
Строка 10: поместили x обратно в память.

Таким образом, выражение становится эквивалентно:
C++
1
2
3
float x = 2;
--x; // x == 1
x *= (x + 1); // 1 * 2 = 2
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
16.01.2013, 19:30  [ТС]     В программе объявлена переменная float x=2 #9
а если +++ то уже плюс две единицы?

Добавлено через 1 минуту
Цитата Сообщение от hacker13a Посмотреть сообщение
float x=2. Какое значение получит переменная х в результате вычисления х*=(x+++1)
просто в этом примере ответ 7...
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.01.2013, 19:36     В программе объявлена переменная float x=2 #10
Цитата Сообщение от hacker13a Посмотреть сообщение
а если +++ то уже плюс две единицы?
вот так получится:
C++
1
x*=(x++ +1);
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
16.01.2013, 19:37     В программе объявлена переменная float x=2 #11
hacker13a, еще раз повторюсь - поведение не определенно, так как переменная изменяется больше одного раза в пределах одной точки следования.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
16.01.2013, 19:40     В программе объявлена переменная float x=2 #12
это из области
C++
1
int i=5; cout<<++i + ++i;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 19:43     В программе объявлена переменная float x=2
Еще ссылки по теме:

опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing C++
В программе объявлена переменная: int n=10 C++
C++ Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int

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

Или воспользуйтесь поиском по форуму:
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
16.01.2013, 19:43     В программе объявлена переменная float x=2 #13
а все из-за неграмотных записей...
Пост инкремент ( ++ ) выполнится после сложения и будет выглядеть это примерно так: 2 *= (2+1)+1. Ответ 7.

инкремента ( +++ ) не бывает равно, как и такого же декремента
Yandex
Объявления
16.01.2013, 19:43     В программе объявлена переменная float x=2
Ответ Создать тему
Опции темы

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