Ім'я файлу: Зразок роботиз ДМ.docx
Розширення: docx
Розмір: 322кб.
Дата: 30.11.2021
скачати
Пов'язані файли:
Практична 1.docx

МІНІСТЕРСТО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”



Дискретна математика

Лабораторної роботи №1

Операції над множинами

Виконав:

Студент гр КІ-11

Перевірила:

Антонів У.С.

Львів – 2021

Тема. Операції над множинами.

Мета. Засвоїти способи задання множин та операції над множинами.

Теоретичні відомості

Операції над множинами

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

Об’єднання А і В – множина, що складається з усіх елементів множини А,

всіх елементів множини В і не містить ніяких інших елементів (рис. 1.1), тобто

А ∪ В = {x | x ∈ А або x ∈ В}.



Перетин А і В – множина, що складається з тих і тільки з тих елементів,

які належать одночасно множині А та множині В (рис. 1.2), тобто

А ∩ В = {x | x ∈ А і x ∈ В}.



Різниця А і В (відносне доповнення) – множина, що складається з тих і

тільки тих елементів, які належать множині А й не належать множині В

(рис. 1.3), тобто А \ В = {x | x ∈ А і x ∉ В}.



Диз’юнктивна сума А і В (симетрична різниця) – множина, що

складається усіх елементів А, які не належать множині В, й усіх елементів В,

які не належать множині А, та яка не містить ніяких інших елементів (рис. 1.4),

тобто А ⊕ В = {x | (x ∈ А і x ∉ В) або (x ∈ В і x ∉ А)}.

Зручно сукупність допустимих об’єктів зафіксувати явно та вважати, що множини, які

розглядаються, складаються з елементів цієї сукупності. Її називають основною

множиною (універсумом) і позначають U. Універсум U арифметики – числа,

універсум U зоології – тварини і т.д. Будь-яку множину розглядатимемо у

зв’язку з універсумом, який на діаграмах Ейлера асоціюватимемо з

прямокутником на площині, всередині якого зображатимемо множини (рис. 1.5).



Доповнення множини А – це множина, що містить усі елементи

універсуму, за винятком елементів А (рис. 1.6),

тобто A = {x | x ∈U, x ∉ A} .

Множина А називається підмножиною множини В, якщо кожен елемент А є елементом В.

Для позначення цього факту вводиться

знак ⊂ - символ

строгого включення (або ⊆ - символ нестрогого включення) (рис. 1.7)

Якщо необхідно підкреслити, що множина В містить також інші елементи, крім

елементів множини А, то використовують символ строгого включення А ⊂ В.

Дві множини рівні, якщо вони складаються з одних і тих самих

елементів. Справджується таке: А = В тоді і тільки тоді, коли А ⊆ В і В ⊆ А.

1.2. Порядок виконання роботи

1. Складіть програму, яка як вхідні дані одержує дві множини і визначає,

чи рівні ці множини, чи є одна з них підмножиною іншої.

Код програми:

#include

#include

using namespace std;

int main() {

//Оголошення масивів--------------------------------------------------------

int A = 0, B = 0;

cout << "Enter Size A =" << " ";

cin >> A;

cout << "Enter Size B =" << " ";

cin >> B;

cout <<'\n';

//------------------------------------------

int arrA[A];

// заповнюємо масив А

for (int i = 0; i < A; i++) {

cout << "arrA[" << i << "]:";

cin >> arrA[i];

}

// виводимо масив А

cout << "\n ===== arrA: ";

for (int i = 0; i < A; ++i) {

cout << arrA[i] << " ";

}

cout << endl;

cout <<'\n';

//-----------------------------------------

int arrB[B];

// заповнюємо масив В

for (int i = 0; i < B; i++) {

cout << "arrB[" << i << "]:";

cin >> arrB[i];

}

// виводимо масив В

cout << "\n ===== arrB: ";

for (int i = 0; i < B; ++i) {

cout << arrB[i] << " ";

}

cout << endl;

//------------------------------------------------------------------------------

int match = 0, notmatch = 0;

// Цикл 1 A > B --------------------------------------------------------------

if(A>B){

for (int f = 0; f < A; f++) {

for (int i = 0; i < B; i++) {

if (arrB[i] == arrA[f]){

match += 1;}

else if (arrB[i] != arrA[f]){

notmatch += 1; }

}

}

if ( B == match){

cout << "\n===== A pidmnojuna B ======" << '\n';

}else{cout << "\n===== A ne pidmnojuna B ======" << '\n';}

}

// Цикл 2 A = B ---------------------------------------------------------------

if (A == B) {

for (int f = 0; f < A; f++) {

for (int i = 0; i < B; i++) {

if (arrB[i] == arrA[f])

{ match += 1;}

else if (arrB[i] != arrA[f])

{ notmatch += 1; }

}

}

if (A == match){

cout << "\n====== Mnojunu rivni ======" << '\n';

}else{cout << "\n====== Mnojunu ne rivni ======" << '\n';}

}

// Цикл 3 A < B ---------------------------------------------------------------

if (A

for (int f = 0; f < B; f++) {

for (int i = 0; i < A; i++) {

if (arrA[i] == arrB[f])

{ match += 1;}

else if (arrB[i] != arrA[f])

{ notmatch += 1; }

}

}

if (A == match){

cout << "\n======A pidmnojuna B======" << '\n';

}else{cout << "\n======A ne pidmnojuna B======" << '\n';}

}

return 0;

}





Висновок: я засвоїв способи задання множин та операції над ними.
скачати

© Усі права захищені
написати до нас