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

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра КСА

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Дискретна математика

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки, молоді та спорту України Національний університет „Львівська політехніка” Кафедра СКС Звіт з лабораторної роботи №1 з дисципліни: “ Дискретна математика ” на тему: “Операції над множинами” ТЕОРЕТИЧНА ЧАСТИНА 1.1. Множини Множини є основними об’єктами вивчення у дискретній математиці. Множина - це невпорядкована сукупність об’єктів, які називають елементами множини. Елементами можна вважати довільні об’єкти, які можуть бути названі або означені за допомогою правила, що задає належність до множини. Як правило, множини позначають великими буквами. Прикладе множин: множина всіх трамвайних зупинок міста Львова; множина символів клавіатури ЕОМ; множина зарезервованих слів мови Паскаль; А = {х ǀ х - ціле число і 7 < х < 13}; N = {1, 2, 5, 9, 14, 13} - множина задана перечисленням її елементів. Для будь-якого елемента можна встановити, чи належить він множині . Запис  означає приналежність елемента  до множини , а символ «» - це знак приналежності деякого елемента до множини . Запис  означає, що елемент  не належить до множини . 1. Операції над множинами Розглянемо дві множини А і В та введемо низку операцій над ними. Для графічної ілюстрації використовують діаграми (кола) Ейлера. Для зображення множини на площині креслять замкнену лінію із заштрихованою внутрішньою областю (найчастіше – це коло, звідси й назва відповідного інструмента, що широко застосовується в теорії множин). 1.1. Об’єднання А і В – множина, що складається з усіх елементів множини А, всіх елементів множини В і не містить ніяких інших елементів (рис. 1), тобто А ( В = {x | x ( А або x ( В}.  Рис. 1 1.2. Перетин А і В – множина, що складається з тих і тільки з тих елементів, які належать одночасно множині А та множині В (рис. 2), тобто А ( В = {x | x ( А і x ( В}.  Рис. 2 1.3. Різниця А і В (відносне доповнення) – множина, що складається з тих і тільки тих елементів, які належать множині А й не належать множині В (рис. 3), тобто А \ В = {x | x ( А і x ( В}.  Рис. 3 1.4. Диз’юнктивна сума А і В (симетрична різниця) – множина, що складається усіх елементів А, які не належать множині В, й усіх елементів В, які не належать множині А, та яка не містить ніяких інших елементів (рис. 4), тобто А ( В = {x | (x ( А і x ( В) або (x ( В і x ( А)}.  Рис. 4 1.5. Доповнення множини. Звичайно, вже в означенні конкретної множини явно або неявно обмежується сукупність об’єктів, що є допустимими (слони – серед тварин, натуральні числа – серед цілих або дійсних залежно від контексту). Зручно сукупність допустимих об’єктів зафіксувати явно та вважати, що множини, які розглядаються, складаються з елементів цієї сукупності. Її називають основною множиною (універсумом) і позначають U. Універсум U арифметики – числа, універсум U зоології – тварини і т.д. Будь-яку множину розглядатимемо у зв’язку з універсумом, який на діаграмах Ейлера асоціюватимемо з прямокутником на площині, всередині якого зображатимемо множини (рис. 5).  Рис. 5 Доповнення множини А – це множина, що містить усі елементи універсуму, за винятком елементів А (рис. 6), тобто .  Рис.6 1.8. Множина А називається підмножиною множини В, якщо кожен елемент А є елементом В. Для позначення цього факту вводиться знак ( - символ строгого включення (або ( - символ нестрогого включення) (рис. 7). Якщо необхідно підкреслити, що множина В містить також інші елементи, крім елементів множини А, то використовують символ строгого включення А ( В. Дві множини рівні, якщо вони складаються з одних і тих самих елементів. Справджується таке: А = В тоді і тільки тоді, коли А ( В і В ( А.  Рис. 7 1.6. Декартовим (прямим) добутком множин A і B (записується A(B) називається множина всіх пар (a,b), в яких перша компонента належить множині A (a(A), а друга - множині B (b(B). Тобто A(B = {(a,b) | a(A і b(B } Декартовий добуток природно узагальнюється на випадок довільної скінченної сукупності множин. Якщо A1, A2,..., An - множини, то їхнім декартовим добутком називається множина D = { (a1,a2,...,an) | a1(A1, a2(A2,..., an(An }, яка складається з усіх наборів (a1,a2,...,an), в кожному з яких i-й член, що називається i-ю координатою або i-ю компонентою набору, належить множині Ai, i=1,2,...,n. Декартовий добуток позначається через A1( A2(...( An. Набір (a1,a2,...,an), щоб відрізнити його від множини, яка складається з елементів a1,a2,...,an, записують не у фігурних, а в круглих дужках і називають кортежем, вектором або впорядкованим набором. Довжиною кортежу називають кількість його координат. Два кортежі (a1,a2,...,an) і (b1,b2,...,bn) однакової довжини вважаються рівними тоді і тільки тоді, коли рівні їхні відповідні координати, тобто ai=bi, i=1,2,...,n. Отже, набори (a,b,c) і (a,c,b) вважаються різними, в той час як множини {a,b,c} і {a,c,b} - рівні між собою. Декартовий добуток множини A на себе n разів, тобто множину A(A(...(A називають n-м декартовим (або прямим) степенем множини A і позначають An. Прийнято вважати, що A0 = ( (n=0) і A1 = A (n=1). Наприклад, якщо A = {a,b} і B = {b,c,d}, то A(B = {(a,b),(a,c),(a,d),(b,b),(b,c),(b,d)}, A2 = {(a,a),(a,b),(b,a),(b,b)}. Якщо R - множина дійсних чисел або множина точок координатної прямої, то R2 - це множина пар (a,b), де a,b(R, або множина точок координатної площини. Координатне зображення точок площини вперше було запропоновано французьким математиком і філософом Рене Декартом, тому введена операція над множинами і називається декартовим добутком. 1.7. Множину, елементами якої є всі підмножини множини А, називають множиною підмножин множини А (або булеаном множини А) і позначають Р(А). Так, для триелементної множини А = {a, b, c} маємо P(A)={(, {a}, {b}, {c}, {a, b},{b, c}, {a, c}, {a, b, c}}. У разі скінченної множини А з n елементів, множина підмножин Р(А) містить 2n елементів. Хід роботи : Розробити програмне забезпечення , яке перевіряє : 1.1Комутативність відношення . Оформлення звіту . Захист лабораторної. Код програми: #include "iostream" using namespace std; int n, size, size1, r, x; int s=0; int d=0; char a; int main() { setlocale (LC_ALL, "Ukrainian"); cout<<"Введiть кiлькiсть операцiй (1...6) : \n"; cin>>size1; if (size1 <= 0 || size1 > 6) { cout<<"Невiрне значення\n"; return 0; } x=size1; cout<<"Введiть кiлькiсть елементiв (1...199) : \n"; cin>>size; if (size <= 0 || size > 200) { cout<<"Невiрне значення\n"; return 0; } char *mass = new char [size1]; double *mass1 = new double [size]; double *mass_a_a1 = new double [size]; double *mass_s_a1 = new double [size]; double *mass_m_a1 = new double [size]; double *mass_d_a1 = new double [size]; double *mass_f_a1 = new double [size]; double *mass_t_a1 = new double [size]; double *mass_a_a2 = new double [size]; double *mass_s_a2 = new double [size]; double *mass_m_a2 = new double [size]; double *mass_d_a2 = new double [size]; double *mass_f_a2 = new double [size]; double *mass_t_a2 = new double [size]; cout<<"Введiть :\na - для операцiї додавання (add)\ns - для операцiї вiднiмання (subtract)\nm - для операцiї множення (multiply)\nd - для операцiї дiлення (divide)\nf - для операцiї *5\nt - для операцiї /3\n"<<endl; cout<<"\nВведiть операцiї : \n"; for (int i=0; i<size1; i++) { cin>>mass[i]; } cout<<"\nВведiть масив : "<<endl; for (int i=0; i<size; i++) { cin>>mass1[i]; } for (int i=0; i<size-1; i++) { for (int j=i+1; j<size; j++, s++) { mass_a_a1[s]=mass1[i]+mass1[j]; mass_s_a1[s]=mass1[i]-mass1[j]; mass_m_a1[s]=mass1[i]*mass1[j]; mass_d_a1[s]=mass1[i]/mass1[j]; mass_f_a1[s]=mass1[i]*5*mass1[j]; mass_t_a1[s]=mass1[i]/3/mass1[j]; } for (int j=i+1; j<size; j++, d++) { mass_a_a2[d]=mass1[j]+mass1[i]; mass_s_a2[d]=mass1[j]-mass1[i]; mass_m_a2[d]=mass1[j]*mass1[i]; mass_d_a2[d]=mass1[j]/mass1[i]; mass_f_a2[d]=mass1[j]*5*mass1[i]; mass_t_a2[d]=mass1[j]/3/mass1[i]; } } for (int k=0; k<size1; k++) { r=1; if (mass[k]=='a') { for (int i=0; i<s; i++) { if (mass_a_a1[i] != mass_a_a2[i]) { cout<<"\nОперацiя '+' не комутативна\n"; i=s; r=0; } } if (r == 1) { cout<<"\nОперацiя '+' комутативна\n"; x--; } } else if (mass[k]=='s') { for (int i=0; i<s; i++) { if (mass_s_a1[i] != mass_s_a2[i]) { cout<<"\nОперацiя '-' не комутативна\n"; i=s; r=0; } } if (r == 1) { cout<<"\nОперацiя '-' комутативна\n"; x--; } } else if (mass[k]=='m') { for (int i=0; i<s; i++) { if (mass_m_a1[i] != mass_m_a2[i]) { cout<<"\nОперацiя '*' не комутативна\n"; i=s; r=0; } } if (r == 1) { cout<<"\nОперацiя '*' комутативна\n"; x--; } } else if (mass[k]=='d') { for (int i=0; i<s; i++) { if (mass_d_a1[i] != mass_d_a2[i]) { cout<<"\nОперацiя '/' не комутативна\n"; i=s; r=0; } } if (r == 1) { cout<<"\nОперацiя '/' комутативна\n"; x--; } } else if (mass[k]=='f') { for (int i=0; i<s; i++) { if (mass_f_a1[i] != mass_f_a2[i]) { cout<<"\nОперацiя '*5' не комутативна\n"; i=s; r=0; } } if (r == 1) { cout<<"\nОперацiя '*5' комутативна\n"; x--; } } else if (mass[k]=='t') { for (int i=0; i<s; i++) { if (mass_t_a1[i] != mass_t_a2[i]) { cout<<"\nОперацiя '/3' не комутативна\n"; i=s; r=0; } } if (r == 1) { cout<<"\nОперацiя '/3' комутативна\n"; x--; } } else { cout<<"Неправильна операцiя\n"; k=size1; } } if (x == 0) cout<<"\nАлгебра є комутативна для всiх вказаних операцiй\n"; else cout<<"\nАлгебра не є комутативна для всiх вказаних операцiй\n"; return 0; } Результат:  Висновок: На цій лабораторній роботі я навчився досліджувати транзитивність відношень в середовищі С++, тобто перевіряти істинність виразів.
Антиботан аватар за замовчуванням

15.10.2013 11:10-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!