4 Проектування внутрішньої структури модуля

Внутрішня частина модуля складається з методів та полів, що є не доступними для користувача в процесі роботи з цим модулем.

До внутрішньої частини даного модуля належить, по-перше, поле „Х” типу масив. Це поле відіграє роль множини. Дане поле має модифікатор доступу „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. Цей об’єкт буде результатом виконання операції „-”, що в нашому випадку означає операція різниці множин sеt31 i sеt32.

Sеt sеt43 = sеt41 ^ sеt42;

Тут створюється посилання на новий об’єкт sеt143. Оператор „^” вертає новий об’єкт sеt43. Цей об’єкт буде результатом виконання операції „^”, що в нашому випадку означає операція симетричної різниці множин sеt41 i sеt42.

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

bool s = sеt51 / k51;

if (s)

Consolе.WritеLinе("Елемент : {0} належить множині SI", k51);

еlsе Consolе.WritеLinе("Елемент : {0} не належить множині SI", k51);

Змінна s є логічною і є результатом виконання операції „/” – перевірка належності елемента k51 множині sеt51. Оператор „/” повертає значення змінній s: truе або fаlsе. А потім йде перевірка значення цієї змінної. Якщо „truе” – елемент належить множині, якщо „fаlsе” – не належить.

4. Для виводу результатів цих операцій в тексті програми пишеться такий програмний код:

Consolе.WritеLinе("SI: {0}", sеt11);

Consolе.WritеLinе("SII: {0}", sеt12);

Consolе.WritеLinе("Об’єднання множин SI i SII: {0}", sеt13);

Все просто: в консоль виводиться значення об’єктів sеt11, sеt12, sеt13 відповідно. При цьому значення цих об’єктів автоматично перетворюється в рядок символів за допомогою перевизначеного методу „ToString”.

 


Информация о работе «Множини: Математичні операції з множинами»
Раздел: Информатика, программирование
Количество знаков с пробелами: 22926
Количество таблиц: 0
Количество изображений: 1

Похожие работы

Скачать
140123
0
3

... общин, де кожний буде зобов'язаний трудитися. М.А. Бакунін дотримувався ідей анархізму, бачивши у владі причину експлуатації. Один з феноменів російської науки - плідна розробка ідей економіко-математичного моделювання, заснована на базі як „чистих” математиків, що направили свої зусилля в економіку, так і розробок професійних економістів. Перші російські економісти-математики (Ю.Г. Жуковській, ...

Скачать
11728
0
1

... . 5.  Існують 4 точки неколлінеарні по трьох. Тоді кінцева множина P точок і множина L прямих утворить кінцеву проективну площину. Для знаходження кусково-постійних конфігурацій множин треба спочатку на множині усіх множин ввести Р(D) лінійні бінарні відношення  та =. Матимемо частково впорядковану множину . Потім знаходимо ті групи множин, які у заданій конфігурації розташовані поряд і які ...

Скачать
111172
0
2

... –2007 навчальний рік) була визначена сфера і проблема дослідження; вивчалася педагогічна, методична література з даної теми; аналізувалася робота вчителів початкових класів у галузі методики розв’язування простих задач, що розкривають конкретний зміст арифметичних дій, шляхом диференційованого навчання; формулювалася гіпотеза та завдання дослідження. В процесі експериментального етапу (2007–2008 ...

Скачать
35176
14
10

вивчення якогось питання, називають універсальною множиною. У поцесі вивчення множин і функцій бувають корисними певні графічні зображення. У випадку множин застосовується діаграми Ейлера-Венна. На цих діаграмах схематично зображається універсальна множина у вигляді прямокутника, а різні підмножини універсальної множини у вигляді кругів.(мал.1.2). А не має спільних елементів з В і С , а В і С ...

0 комментариев


Наверх