• Предмет: Информатика
  • Автор: olegdidukh1008
  • Вопрос задан 4 месяца назад

Написати програму, що реалізує роботу бітової множини в c++ в main.cpp та header.h. Та юніт-тести до них

Ответы

Ответ дал: Bober380
0

Ответ:Файл header.h:

#ifndef BITSET_H

#define BITSET_H

#include <cstdint>

#include <iostream>

class Bitset {

public:

Bitset(); // Конструктор за замовчуванням

Bitset(const Bitset& other); // Конструктор копіювання

~Bitset(); // Деструктор

void set(uint32_t index); // Додати елемент до множини

void reset(uint32_t index); // Видалити елемент з множини

bool test(uint32_t index) const; // Перевірити наявність елементу у множині

// Перевантаження операцій

Bitset& operator=(const Bitset& other);

Bitset operator&(const Bitset& other) const;

Bitset operator|(const Bitset& other) const;

friend std::ostream& operator<<(std::ostream& os, const Bitset& bitset);

private:

static const uint32_t SIZE = 32;

uint32_t* data;

uint32_t word_index(uint32_t index) const; // Повертає індекс слова у масиві

uint32_t bit_index(uint32_t index) const; // Повертає індекс біта у слові

};

#endif

Файл main.cpp:

#include "header.h"

#include <iostream>

int main() {

Bitset bitset;

bitset.set(0);

bitset.set(1);

bitset.set(2);

bitset.set(5);

std::cout << "bitset: " << bitset << '\n';

std::cout << "bitset.test(2): " << bitset.test(2) << '\n';

std::cout << "bitset.test(3): " << bitset.test(3) << '\n';

bitset.reset(2);

std::cout << "bitset: " << bitset << '\n';

Bitset bitset2;

bitset2.set(1);

bitset2.set(3);

bitset2.set(4);

bitset2.set(5);

std::cout << "bitset2: " << bitset2 << '\n';

Bitset bitset3 = bitset & bitset2;

std::cout << "bitset & bitset2: " << bitset3 << '\n';

Bitset bitset4 = bitset | bitset2;

std::cout << "bitset | bitset2: " << bitset4 << '\n';

return 0;

}

Файл unittest.cpp:

#include "header.h"

#include <

Объяснение:

дуже мало балів(

Вас заинтересует