Побудова скінченних множин

Міністерство освіти і науки України

Полтавський національний технічний університет

імені Юрія Кондратюка

Факультет інформаційних та телекомунікаційних технологій і систем

Кафедра комп’ютерних та інформаційних технологій і систем

Розрахунково-графічна робота

з дисциплін "Основи дискретної математики"

та "Основи програмування та алгоритмічні мови"

Виконав:

Студент групи 101-ТН

Селін Ігор

Керівник:

д.т.н. Ляхов Олександр Логвинович

Полтава 2010

Постановка задачі

УМОВА ЗАДАЧІ:

Дано скінчені множини А, В, С. Побудувати множини , , , , ,

Множина - це деяка визначена сукупність елементів чи об’єктів.

Списковий спосіб подання множини - перелік усіх елементів у фігурних дужках.

Прямим (або декартовим) добутком множини А і Б називають множину всіх упорядкованих пар елементів (а, б), з яких перший належить множині А, а другий - множині Б.

Скінченна множина - множина, кількість елементів якої скінченна, тобто існує натуральне числоk, що є числом елементів цієї множини.

Розвязання задачі.

Маємо три множини - 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 x=0; x<5; x++)

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}

Демонстрація програми: