Ім'я файлу: Зразок роботиз ДМ.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; } Висновок: я засвоїв способи задання множин та операції над ними. |