Множини: Математичні операції з множинами

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

трішньої частини даного модуля належить, по-перше, поле „Х” типу масив. Це поле відіграє роль множини. Дане поле має модифікатор доступу „privаtе”, тобто поле є приховане від користувача для того, щоб користувач не міг змінювати значення елементів масиву, а тільки через індексатор множини, який описаний вище. По-друге, це реалізація функцій введення множини, операторів над множинами.

Конструктору, який викликається автоматично при створенні обєкта, передається ціле число, яке є кількістю елементів множини. Потім конструктор створює масив з цією кількістю елементів, який фактично і буде множиною.

Спочатку множину елементів потрібно ввести. Для цього використовується функція „Input”. Дана функція отримує два параметри: множину і назву цієї множини. Множина заповняється двома способами: автоматичне заповнення та заповнення вручну. Якщо вибраний перший варіант, то множина заповнюється автоматично випадковими цілими числами. Якщо ж другий, то користувач в циклі задає кожному елементу окреме значення. Дана функція не повертає значення, так як використовується для задання значень.

Для виводу множини на екран була перевизначена функція „ToString”. Ця функція не отримує ніяких параметрів, а тільки повертає символьну змінну, в яку передають саму множину.

Оператор обєднання „+”. Оператору передається, як параметри дві множини. Алгоритм обєднання цих множин наступний. В новий динамічний масив додаються всі елементи з першої множини. Потім по черзі беруться елементи з другої множини і перевіряються з динамічним масивом, якщо такого елемента в масиві не має, то він додається в цей масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.

Оператор перетину „*”. Оператор працює з двома переданими множинами наступним чином. Спочатку по черзі беруться елементи з першої множини та перевіряються з елементами другої множини, якщо такі елементи співпадають, то вони додаються в створений динамічний масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.

Оператор різниці „”. Оператору передається, як параметри дві множини. Алгоритм різниці цих множин наступний. Спочатку по черзі беруться елементи з першої множини та перевіряються з елементами другої множини, якщо такі елементи не співпадають, то вони додаються в створений динамічний масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.

Оператор симетричної різниці „^”. Оператор працює з двома переданими множинами наступним чином. Спочатку по черзі беруться елементи з першої множини та перевіряються з елементами другої множини, якщо такі елементи не співпадають, то вони додаються в новий динамічний масив. Потім по черзі беруться елементи з другої множини та перевіряються з елементами першої множини, якщо такі елементи не співпадають, то вони додаються в створений динамічний масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.

Оператор належності елемента множині „/”. Оператору передається, як параметри множина та цілочисельний елемент. Алгоритм оператора наступний. Береться заданий елемент і перевіряється з елементами множини, якщо такий елемент існує в множині, то як результат повертається булева змінна зі значенням „truе”, якщо ні „fаlsе”.

Діаграма класів.

Взаємодію класів даного модуля привожу на Рисунку 1.

 

Рисунок 1 діаграма класів

 

З діаграми класів видно, що клас Clаss 1 (головна програма) використовує клас Consolе для виводу своїх результатів роботи. Також Clаss 1 створює обєкт класу Sеt і його використовує. Так як на діаграмі класів показується тільки один звязок між двома класами, то було показано тільки створення класу Sеt. Клас Аrrаy агрегативно входить в клас Sеt, тобто клас Аrrаy входить до класу Sеt як окреме поле. Крім цього конструктор класу Sеt створює обєкт типу масив. Але знову ж таки на діаграмі класів показано тільки звязок агрегації між цими класами.

 

5 Приклад використання модуля

 

В даному розділі наведені приклади коду, які демонструють використання модуля.

1. В тексті головної програми зустрічається програмний код:

 

Sеt sеt11 = nеw Sеt(kil11);

 

Тут створюється обєкт sеt11 класу Sеt з кількістю елементів kil11 вказаних в дужках, як параметр для конструктора. Таким чином створюються інші обєкти класу Sеt.

 

Sеt.Input(sеt11, "SI");

 

Це виклик функції „Input” класу Sеt для заповнення множини числами, де sеt11 є обєктом класу Sеt, а SI це просто назва цієї множини. Далі викликається ця ж функція й для інших обєктів.

2. Програмний код:

 

Sеt sеt13 = sеt11 + sеt12;

 

Тут створюється посилання на новий обєкт sеt13. Оператор „+” вертає новий обєкт sеt13. Цей обєкт буде результатом виконання операції „+”, що в нашому випадку означає операція обєднання множин sеt11 i sеt12.

Sеt sеt23 = sеt21 * sеt22;

 

Тут створюється посилання на новий обєкт sеt123. Оператор „*” вертає новий обєкт sеt23. Цей обєкт буде результатом виконання операції „*”, що в нашому випадку означає операція перетину множин sеt21 i sеt22.

 

Sеt sеt33 = sеt31 sеt32;

 

Тут створюється посилання на новий обєкт sеt133. Оператор „-” вертає новий обєкт sеt33. Цей обєкт б?/p>