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

битовый массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Flintik
Сообщений: n/a
04.11.2012, 22:33     битовый массив #1
Здравствуйте, дорогие форумчане!!
Помогите пожалуйста разобраться с заданием( понятного к сожалению не много!)

В этом задании необходимо реализовать все методы класса CBitArray(для них описание пропущено) и нужно чтобы добиться работала функция main (ее код менять нельзя).


C++
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <cstring>
 
using namespace std;
 
class CBitArray {
private:
    int *array;
    int sizeInBits;
    int sizeInCells;
public:
    CBitArray( const int size = 32 ) {
        sizeInBits = size > 0 ? size : 1;
        sizeInCells = ( sizeInBits >> 5 ) + 1;
        array = new int[ sizeInCells ];
        setToZero();
    };
    int getSizeInBits() {
        return sizeInBits;
    };
    void setToZero( void ) {
        std::memset( array, 0, sizeof( array[ 0 ] ) * sizeInCells );
    };
    CBitArray( const CBitArray &other ) {
        // ToDo: реализовать конструктор копирования
    };
    const CBitArray& operator = ( const CBitArray &other ) {
        // ToDo: реализовать оператор присваивания
    };
    void setBitToZero( const int index ) {
        // ToDo: реализовать процедуру установки значения бита, заданного по индексу, в 0.
    };
    void setBitToOne( const int index ) {
        // ToDo: реализовать процедуру установки значения бита, заданного по индексу, в 1.
    };
    int getBitValue( const int index ) {
        // ToDo: реализовать функцию, возвращающую значение бита, заданного по индексу.
    };
    void random( void ) {
        // ToDo: процедура заполнения битового массива произвольными последовательностями
        // нулевых и единичных битов.
    };
    friend ostream& operator << ( ostream& out, CBitArray &array ) {
        // ToDo: Реализовать процедуру вывода битового массива в поток: 
        // все нулевые биты должны отображаться цифрой 0,
        // все единичные биты - цифрой 1.
    };
    ~CBitArray() {
        delete [] array;
    };
};
 
int main( void ) {
    vector< CBitArray > arrayOfArrays;
    arrayOfArrays.push_back( CBitArray( 10 ) );
    arrayOfArrays.push_back( CBitArray( 20 ) );
    arrayOfArrays.push_back( CBitArray( 30 ) );
    while( !arrayOfArrays.empty() ) {
        CBitArray array = arrayOfArrays.back();
        array.random();
        cout << "Extracted array (size: " << array.getSizeInBits() << ") - " << array << endl;
        arrayOfArrays.pop_back();
    }
    system( "PAUSE" );
    return 0;
}
Помогите с кодом на С++ и если можно, то помогите и с пояснениями.

Заранее огромное спасибо!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 22:33     битовый массив
Посмотрите здесь:

Битовый уровень C++
C++ Битовый массив (значения принимаются битами, а адресация по номеру бита)
Строка -> Битовый вектор C++
C++ Битовый сдвиг
C++ Битовый сдвиг C++
C++ 8-битовый тип signed char может представлять значения от -128 до 127
Битовый сдвиг массива C++
Отсортировать большое число элементов за минимальное время, используя битовый массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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