Побудова скінченних множин
Міністерство освіти і науки України
Полтавський національний технічний університет
імені Юрія Кондратюка
Факультет інформаційних та телекомунікаційних технологій і систем
Кафедра комп’ютерних та інформаційних технологій і систем
Розрахунково-графічна робота
з дисциплін "Основи дискретної математики"
та "Основи програмування та алгоритмічні мови"
Виконав:
Студент групи
101-ТН
Селін Ігор
Керівник:
д.т.н. Ляхов
Олександр Логвинович
Полтава 2010
Постановка задачі
УМОВА ЗАДАЧІ:
Дано скінчені
множини А, В, С. Побудувати множини , , , , ,
Множина - це деяка визначена сукупність елементів чи об’єктів.
Списковий
спосіб подання множини - перелік усіх елементів у
фігурних дужках.
Прямим (або
декартовим) добутком множини А і Б називають множину
всіх упорядкованих пар елементів (а, б), з яких перший належить множині А, а
другий - множині Б.
Розв’язання задачі.
Маємо три множини -
A,B,C. Кожна з них містить по 5 елементів. Для наглядного представлення
покажемо приклад декартового добутку, в якому взято три двохелементні множини з
випадковими елементами:
A={0,1}
B={1,1}
C={0,0}
AxBxC={a1,b1,c1},{a2,b1,c1},{a1,b1,c2},{a1,b2,c1},{a1,b2,c2},{a2,b2,c2}=
={0,1,0},{1,1,0},{0,1,0},{0,1,0},{0,1,0}{1,1,0}
Алгоритм задачі.
Для винання цієї
задачі, ми взяли вхідні дані, що являють собою три множини по 5 елементів.
Так як декартовий
добуток являє собою пари елементів із кожної множини, на потрібно перерахувати
ці пари. В нашому випадку трійки значень. Для цьго використаємо 3 цикли, кожен
яких буде перелічувати множину. Комбінації множин я змінив до вказаних в умові.
За один прохід кожного цикла виводиться 1 добуток з кожної заданої комбінації.
Реалізація
програми
#include
<iostream>
using namespace
std;
int a [10] ={1,1,1,0,0};
int b [10] ={0,0,1,0,1};
int c [10] ={1,0,1,1,0};
int abc [10] [6] ;
int main ()
{
cout<<"
AxBxC "<<"| CxBxA "<<"| CxAxB "<<"|
CxCxB "<<"| AxBxA "<<"| CxBxC "<<
endl;
for (int y=0; y<5;
y++)
for (int z=0; z<5;
z++)
{
cout<<"{"<<a
[x] <<","<<b [y] <<","<<c [z] <<"}";
cout<<"|
{"<<c [x] <<","<<b [y] <<","<<a
[z] <<"}";
cout<<"|
{"<<c [x] <<","<<a [y] <<","<<b
[z] <<"}";
cout<<"|
{"<<c [x] <<","<<c [y] <<","<<b
[z] <<"}";
cout<<"|
{"<<a [x] <<","<<b [y] <<","<<a
[z] <<"}";
cout<<"|
{"<<c [x] <<","<<b [y] <<","<<c
[z] <<"}"<<endl;
}
cout<<endl;
cin. get ();
cin. get ();
return 0;
}
Початкові дані:
A={1,1,1,0,0}
B={0,0,1,0,1}
C={1,0,1,1,0}
Демонстрація програми: