Форум программистов, компьютерный форум 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

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

10.10.2013, 00:01. Просмотров 327. Ответов 6
Метки (Все метки)

На лабах задали написать алгоритм "обращенного двоичного счета", который, на сколько я понял (не удалось уточнить гуглением), представляет из себя перебор бинарный векторов в порядке лексикографического убывания. Т. е. в с++ осуществляется операцией --. Естественно, использовать -- намного проще и быстрее. Но тогда что останется от лабы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
void print_v(unsigned char v) {
    for (int i(8); i--; std::cout << static_cast<bool>(v & 1 << i)) {}
    std::cout << std::endl;
}
inline unsigned char& decr(register unsigned char& v) {
    if (!v) return v = -1;//чтобы не писать лишний проверок в цикле
    register unsigned char i(1);
    while (!(v & i))  i <<= 1;//Ищем первый ненулевой элемент
    v &= ~i;//Зануляем его
    while (i >>= 1) v |= i;//проставляем в младшие разряды единицы
    return v;
}
int main() {
    unsigned char b(0);
    while (decr(b))//Эквивалентно выражению while (--b)
        print_v(b);//Вывести бинарный вектор
    return 0;
}
Короче, написан вариант функции со следующими требованиями к коду:
1. Это всё-таки должен быть с++ а не какой-нибудь там ассемблер
2. Написать максимально производительный код.
Опубликовано здесь по двум причинам
1. Я доволен результатом и хочу продемонстрировать его окружающим
2. Я уверен, что найдутся люди, которые дадут дельные советы по совершенствованию написанного.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru