Міністерство освіти і науки України
Житомирський державний технологічний університет
ФІКТ
Кафедра ПЗОТ
група ПІ-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());
Висновок:
Виконуючи дану лабораторну роботу я здобула теоретичні навички з теорії множин, вивчила основні операції над множинами, їх властивості. ............