Курсовая работа: Множини: Математичні операції з множинами
– конструктор класу;
– функція заповнення множини;
– індексатор;
– функція виводу множини;
– функції – оператори над множинами.
Конструктор класу викликається автоматично при створенні об’єкта класу. Даному конструктору як параметр передається число цілочисельного значення.
Для заповнення множини цілими числами використовується функція „Input”. Цій функції передаються два параметри. Перший параметр – це множина, яку пізніше функція буде заповнювати елементами, а другий – це назва множини.
Індексатор створений для того, щоб користувач міг отримувати доступ до елементів множини, як при роботі з одновимірним масивом. Індексатору передається як параметр – індекс елемента множини.
Для виводу множини на екран була перевизначена функція „ToString”.
Функції – оператори над множинами:
– оператор об’єднання „+”. Так як оператор „+” є бінарним, то функція отримує два параметри. Перший параметр – це множина, другий – це також множина. Функція повертає значення – результат виконання операції теж типу множини. Дана функція виконує об’єднання двох переданих множин.
– оператор перетину „*”. „*” – бінарна операція, функції передається два параметри, дві множини. Функція повертає значення – результат виконання операції теж типу множини. Дана функція виконує перетин двох переданих множин.
– оператор різниці „–”. Ця функція отримує два параметри. Перший параметр – це множина, другий – це також множина. Функція повертає значення – результат виконання операції теж типу множини. Дана функція виконує різницю двох переданих множин.
– оператор симетричної різниці „^”. Так як „^” – бінарна операція, то функції передається два параметри, дві множини. Дана функція виконує симетричну різницю двох переданих множин. Функція повертає значення – результат виконання операції теж типу множини.
– оператор перевірки належності елемента множині „/”. Так як „/” – бінарна операція, то функції передається два параметри – множина та ціле число. Дана функція виконує перевірку належності заданого елемента множині. Функція повертає значення – результат виконання операції булеву змінну.
Всі оператори є статичними функціями, так як в С# оператор зобов’язаний бути статичним.
4 Проектування внутрішньої структури модуля
Внутрішня частина модуля складається з методів та полів, що є не доступними для користувача в процесі роботи з цим модулем.
До внутрішньої частини даного модуля належить, по-перше, поле „Х” типу масив. Це поле відіграє роль множини. Дане поле має модифікатор доступу „privаtе”, тобто поле є приховане від користувача для того, щоб користувач не міг змінювати значення елементів масиву, а тільки через індексатор множини, який описаний вище. По-друге, це реалізація функцій – введення множини, операторів над множинами.
Конструктору, який викликається автоматично при створенні об’єкта, передається ціле число, яке є кількістю елементів множини. Потім конструктор створює масив з цією кількістю елементів, який фактично і буде множиною.
Спочатку множину елементів потрібно ввести. Для цього використовується функція „Input”. Дана функція отримує два параметри: множину і назву цієї множини. Множина заповняється двома способами: автоматичне заповнення та заповнення вручну. Якщо вибраний перший варіант, то множина заповнюється автоматично випадковими цілими числами. Якщо ж – другий, то користувач в циклі задає кожному елементу окреме значення. Дана функція не повертає значення, так як використовується для задання значень.
Для виводу множини на екран була перевизначена функція „ToString”. Ця функція не отримує ніяких параметрів, а тільки повертає символьну змінну, в яку передають саму множину.
Оператор об’єднання „+”. Оператору передається, як параметри дві множини. Алгоритм об’єднання цих множин наступний. В новий динамічний масив додаються всі елементи з першої множини. Потім по черзі беруться елементи з другої множини і перевіряються з динамічним масивом, якщо такого елемента в масиві не має, то він додається в цей масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.
Оператор перетину „*”. Оператор працює з двома переданими множинами наступним чином. Спочатку по черзі беруться елементи з першої множини та перевіряються з елементами другої множини, якщо такі елементи співпадають, то вони додаються в створений динамічний масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.
Оператор різниці „–”. Оператору передається, як параметри дві множини. Алгоритм різниці цих множин наступний. Спочатку по черзі беруться елементи з першої множини та перевіряються з елементами другої множини, якщо такі елементи не співпадають, то вони додаються в створений динамічний масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.
Оператор симетричної різниці „^”. Оператор працює з двома переданими множинами наступним чином. Спочатку по черзі беруться елементи з першої множини та перевіряються з елементами другої множини, якщо такі елементи не співпадають, то вони додаються в новий динамічний масив. Потім по черзі беруться елементи з другої множини та перевіряються з елементами першої множини, якщо такі елементи не співпадають, то вони додаються в створений динамічний масив. Потім створюється нова множина, в яку поміщаються всі елементи з динамічного масиву. Оператор як результат операції повертає цю нову множину.
Оператор належності елемента множині „/”. Оператору передається, як параметри множина та цілочисельний елемент. Алгоритм оператора наступний. Береться заданий елемент і перевіряється з елементами множини, якщо такий елемент існує в множині, то як результат повертається булева змінна зі значенням „truе”, якщо ні – „fаlsе”.
Діаграма класів.
Взаємодію класів даного модуля привожу на Рисунку 1.