Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы / лабы ооп / ooп_1_отчёт вар 9

.docx
Скачиваний:
5
Добавлен:
03.07.2024
Размер:
20.92 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

“ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ”

Кафедра “Информатика и вычислительная техника

ОТЧЕТ

по лабораторной работе ООП №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;

}

Результаты выполнения программы, выводы:

Соседние файлы в папке лабы ооп