Лабораторная работа: Теорія множин. Операції над множинами та їх властивості
Название: Теорія множин. Операції над множинами та їх властивості Раздел: Рефераты по информатике, программированию Тип: лабораторная работа |
Міністерство освіти і науки України Житомирський державний технологічний університет ФІКТ Кафедра ПЗОТ група ПІ-39 Лабораторна робота №1 з дисципліни «Дискретна математика» на тему: «Теорія множин. Операції над множинами та їх властивості» м. Житомир 2010р. Завдання: 1. Програмно реалізувати виконання наступних операцій над множинами А, В: перетин множин, об’єднання множин, доповнення. Універсальна множина U = {1, 2, 3, 4, 5}. Користувач вводить розмір та елементи множин А і В. 2. Програмно обчислити результуючу множину: а) за вихідним виразом; б) за спрощеним виразом. Порядок виконання роботи: 1. Складемо програму для реалізації заданих операцій над двома множинами: перетин, об’єднання, доповнення. Текст програми з відповідними коментарями наведено нижче. Код програми: #include <stdio.h> #include <conio.h> #include <iostream.h> void main () { clrscr (); int U[5], A[6], B[6], sz_a, sz_b; int Abin[5], Bbin[5]; for (int i = 0; i < 5; i++) { U[i] = i + 1; } cout << " U = {"; for (i = 0; i < 5; i++) cout << U[i]; cout << "}" << endl << endl; for (i = 0; i < 5; i++) { Abin[i] = 0; Bbin[i] = 0; } cout << " Введіть розмір множини \"А: \" "; cin >> sz_a; cout << " Введіть елементи множини \"А: \" " << endl << endl; for (i = 0; i < sz_a; i++) { cin >> A[i]; } cout << endl << " Введіть розмір множини \"В: \" "; cin >> sz_b; cout << " Введіть елементи множини \"В: \" " << endl; for (i = 0; i< sz_b; i++) { cin >> B[i]; } for (i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (U[j] == A[i]) /* якщо відповідний елемент універсальної множини дорівнює елементу Abin[j] = 1; відповідної множини, то у відповідний елемент бінарного масиву if (U[j]==B[i]) заносимо «1», таким чином організовуємо бінарні множини для множин Bbin[j]=1; «А» та «В» для подальшої обробки */ } } cout << endl << " Перетин множин: " << endl << "{"; for (i = 0; i < 5; i++) { if (Abin[i] && Bbin[i]) cout << " " << U[i]; } cout << " }" << endl; cout << endl << " Об’єднання множин: " << endl << "{"; for (i = 0; i < 5; i++) { if (Abin[i] || Bbin[i]) cout << " " << U[i]; } cout << " }" << endl; cout << endl << " Доповнення для множини \"A\": " << endl << "{"; for (i = 0; i < 5; i++) { if (!Abin[i]) cout << " " << U[i]; } cout << " }" << endl; cout << endl << " Доповнення для множини \"B\": " << endl << "{"; for (i = 0; i < 5; i++) { if (!Bbin[i]) cout << " " << U[i]; } cout << " }" << endl; while (!kbhit()); } 2. Складемо програму для обчислення результуючої множин за вихідним та за спрощеним виразом. Текст програми з відповідними коментарями наведено нижче. Код програми: #include <stdio.h> #include <conio.h> #include <iostream.h> void main() { clrscr(); int A[] = {5,11,3,7,9,8,10}; int B[] = {1,2,4,3,5,11}; int C[] = {4,3,7,9,6}; int U[14] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14}; int a[14], b[14], c[14], u[14]; for (int i = 0; i < 14; i++) { a[i] = 0; b[i] = 0; c[i] = 0; u[i] = 0; } for (i = 0; i < 14; i++) for (int j = 0; j < 7; j++) if (U[i] == A[j]) { a[i] = 1; break; } for (i = 0; i < 14; i++) for (int j = 0; j < 6; j++) if (U[i] == B[j]) { b[i] = 1; break; } for (i = 0; i < 14; i++) for (int j = 0; j < 5; j++) if (U[i] == C[j]) { c[i] = 1; break; } програма множина спрощення вираз for (i = 0; i < 14; i++) u[i] = !a[i] || !c[i] || b[i] || c [i]; cout << "U = "; for (i = 0; i < 14; i++) if ( u[i] == 1 ) cout << U[i] << " "; while (!kbhit()); Висновок: Виконуючи дану лабораторну роботу я здобула теоретичні навички з теорії множин, вивчила основні операції над множинами, їх властивості. Крім того, навчилась реалізовувати програмно наступне: виконання операцій над множинами, застосування їх властивостей, спрощення виразів. |