
Лабораторные работы / лабы ооп / ooп_1_отчёт вар 9
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
“ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ”
Кафедра “Информатика и вычислительная техника”
ОТЧЕТ
по лабораторной работе ООП №1
“КЛАССЫ, ОБЪЕКТЫ. ФУНКЦИИ-ЧЛЕНЫ КЛАССА В ЯЗЫКЕ C++. ИНКАПСУЛЯЦИЯ”
Выполнил:
Студент группы ИВТ-234 Кукушкина А.А.
_____________________________________________________
(дата, подпись)
Проверил:
ст. пр. доцент Дорошенко М.С.
_____________________________________________________
(дата, подпись)
Омск 2024
Лабораторная работа ООП №1
Тема: Классы, объекты. Функции-члены класса в языке C++. Инкапсуляция
Вариант 9
Задание 1
Условие задачи:
Создайте класс IntegerSet (множество целых). Каждый объект класса может вмещать целые в диапазоне от 0 до 100. Множество представляется массивом из нулей и единиц. Элемент массива a[i] равен единице, если целое i находится во множестве. Элемент массива a[j] равен нулю, если целого j нет во множестве. Конструктор по умолчанию инициализирует множество как пустое, т.е. множество, содержащее только нули. Напишите функции-элементы для типичных операций над множествами: функцию-элемент unionOfIntegerSet, которая создает третье множество, являющееся теоретико-множественным объединением двух существующих. (Элемент массива третьего множества устанавливается равным единице, если соответствующий элемент равен единице хотя бы в одном или обоих существующих множествах, и элемент массива третьего множества устанавливается равным нулю, если этот элемент равен нулю в обоих существующих множествах). Функция-элемент intersectionOfIntegerSets создает третье множество, являющееся теоретико-множественным пересечением двух существующих наборов (т.е. элемент массива третьего множества устанавливается равным нулю, если этот элемент равен нулю в одном или обоих существующих множествах, и элемент массива третьего множества устанавливается равным единице, если этот элемент единичный в обоих существующих).
Текст программы:
#include <iostream>
using namespace std;
class IntegerSet
{
private:
int set[101];
public:
IntegerSet()
{
for (int i = 0; i < 101; i++)
{
set[i] = 0;
}
}
IntegerSet unionOfIntegerSet(IntegerSet set2)
{
IntegerSet resultSet;
for (int i = 0; i < 101; i++)
{
if (set[i] == 1 || set2.set[i] == 1)
{
resultSet.set[i] = 1;
}
}
return resultSet;
}
IntegerSet intersectionOfIntegerSets(IntegerSet set2)
{
IntegerSet resultSet;
for (int i = 0; i < 101; i++)
{
if (set[i] == 1 && set2.set[i] == 1)
{
resultSet.set[i] = 1;
}
}
return resultSet;
}
void addElement(int element)
{
set[element] = 1;
}
void printSet()
{
cout << "{";
for (int i = 0; i < 101; i++)
{
if (set[i] == 1)
{
cout << i << " ";
}
}
cout << "}" << endl;
}
};
int main()
{
IntegerSet set1;
IntegerSet set2;
set2.addElement(10);
set2.addElement(20);
set2.addElement(30);
set2.addElement(40);
IntegerSet resultSetUnion = set1.unionOfIntegerSet(set2);
resultSetUnion.printSet();
IntegerSet resultSetIntersection = set1.intersectionOfIntegerSets(set2);
resultSetIntersection.printSet();
return 0;
}
Результаты выполнения программы, выводы: