Міністерство освіти і науки України
Полтавський національний технічний університет
імені Юрія Кондратюка
Факультет інформаційних та телекомунікаційних технологій і систем
Кафедра комп’ютерних та інформаційних технологій і систем
Розрахунково-графічна робота
з дисциплін "Основи дискретної математики"
та "Основи програмування та алгоритмічні мови"
Виконав:
Студент групи 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}
Демонстрація програми: