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

реализация операции декримента - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Числа выводятся на консоль в виде -1.#IO http://www.cyberforum.ru/cpp-beginners/thread973467.html
Прилагаю код. При изменении точности вывода меняются лишь буквы- -1.#IND, -1.#IND0, -1. #IND00 и т. д. Что это значит, почему они не выводятся нормально? #include <cstdio> #include <cstdlib> #include <cmath> #include <conio.h> int main(){ const int q=32; double mas1;
C++ Дано действительное E>0. Найти первый член y[n], для которого выполнено y[n]-y[n-1]<E Здравствуйте! Нужно решить задачу на C++: Пусть, y=0 y=(y+1)/(y+2) k=1,2,... Дано действительное E>0. Найти первый член y, для которого выполнено y-y<E. Прошу помощи в решении! Заранее благодарю! http://www.cyberforum.ru/cpp-beginners/thread973466.html
C++ класс с структурой и работой с файлом
всем доброго вечера. хочу попросить о помощи в таком моменте,как реализация класса со структурой и работой с файлом. буду рада любому отклику,любой помощи. извиняюсь за неоформленный код - пишу с телефона.Заранее спасибо!!! тут мои наработки - извиняюсь за плохой стиль программирования. #include <string> #include<fstream> #include<conio.h> #include<malloc.h> #include<windows.h> using...
Ввести строку (не более 100 символов и не менее 30), вывести символы с 7 по 15 C++
Задачку подкинули, компилятор говорит, что я фигню написал, поделитесь идеями. Вот текст: ввести произвольную строку, содержащую не более 100 символов и не менее 30, выдать на печать символы начиная с 7 по 15. задачу решить в 2 вариантах все решение помещается в функцию main() 2) подстроку выделяем спец функции. Второе не обязательно!
C++ Вычислить сумму N слагаемых http://www.cyberforum.ru/cpp-beginners/thread973455.html
Не могу решить задачку : Вычислить сумму N слагаемых (N задается оператором ввода): S=1+1/2+1/4+1/8+1/16+... Как я поняла надо создать 3 переменные : для слагаемых,суммы и знаменателя. Потом до меня дошло ,что можно использовать всего две переменные. Пыталась сделать через for,но не удалось. Эта моя 3 сложненькая программка на С++,целый день не могу решить:confusion:
C++ Нужно переставить формулу и отладить Написал программу (прикреплена к теме), там нужно в указанном месте, подставить другую формулу (Прикреплена к теме). И отладить программу. Пытаюсь подставлять, выдает неправильные ответы. подробнее

Показать сообщение отдельно
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
10.10.2013, 01:33  [ТС]     реализация операции декримента
спасибо, уберу.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
    unsigned char b(0);
00A81277  xor         bl,bl  
00A81279  lea         esp,[esp]  
    while (decr(b))//Эквивалентно выражению while (--b)
00A81280  test        bl,bl  
00A81282  jne         main+19h (0A81289h)  
00A81284  or          bl,0FFh  
00A81287  jmp         main+3Ah (0A812AAh)  
00A81289  mov         al,1  
00A8128B  test        al,bl  
00A8128D  jne         main+26h (0A81296h)  
00A8128F  nop  
00A81290  add         al,al  
00A81292  test        bl,al  
00A81294  je          main+20h (0A81290h)  
00A81296  mov         cl,al  
00A81298  not         cl  
00A8129A  and         bl,cl  
00A8129C  shr         al,1  
00A8129E  je          main+36h (0A812A6h)  
00A812A0  or          bl,al  
00A812A2  shr         al,1  
    while (decr(b))//Эквивалентно выражению while (--b)
00A812A4  jne         main+30h (0A812A0h)  
00A812A6  test        bl,bl  
00A812A8  je          main+81h (0A812F1h)  
00A812AA  movzx       eax,bl  
        print_v(b);//Вывести бинарный вектор
00A812AD  mov         edi,8  
00A812B2  mov         esi,100h  
00A812B7  mov         dword ptr [ebp-4],eax  
00A812BA  lea         ebx,[ebx]  
00A812C0  ror         esi,1  
00A812C2  mov         ecx,dword ptr ds:[0A8303Ch]  
00A812C8  test        esi,eax  
00A812CA  setne       al  
00A812CD  movzx       eax,al  
00A812D0  push        eax  
00A812D1  call        dword ptr ds:[0A8302Ch]  
00A812D7  mov         eax,dword ptr [ebp-4]  
00A812DA  dec         edi  
00A812DB  jne         main+50h (0A812C0h)  
00A812DD  push        dword ptr ds:[0A83024h]  
00A812E3  mov         ecx,dword ptr ds:[0A8303Ch]  
00A812E9  call        dword ptr ds:[0A83028h]  
00A812EF  jmp         main+10h (0A81280h)  
00A812F1  pop         edi  
00A812F2  pop         esi  
    return 0;
Вот что вывалилось при компиляции /O2. Видимо, он действительно вставился как инлайн. Но это единственный вывод, который я могу уверенно сделать по данному коду. Не могли бы вы её прокомментировать?

Добавлено через 8 минут
К стаи, на сколько я понял, переменные действительно возникают только в регистрах!

Добавлено через 4 минуты
*его - код а не вывод))

Добавлено через 5 минут
что-то меня поплавило к часу ночи. Короче, разобраться помогите)))

Добавлено через 24 минуты
Assembler
1
2
3
4
    while (--b)
010512BC  mov         al,byte ptr [ebp-1]  
010512BF  dec         al  
010512C1  dec         ebx
А как бы всё могло быть просто...
 
Текущее время: 21:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru