Text: |
ФІО = Горбаченко В.А.
Запитання:/*
Визначити клас, який реалізує множину. Визначити методи включення та виключення
елементу, а також перевантажити операції додавання (об’єднання множин),
множення (переріз множин), віднімання (різниця множин).
*/
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#define maxn 200
using namespace std;
class Mnojina
{
public:
int Items[maxn];
int Count;
public:
Mnojina () { Count=0;}
~Mnojina () { /*delete Items;*/}
int IsPresent(int A){
for (int i = 0 ; i < Count; i++)
{
if (*(Items+i)==A) return i+1;
}
return 0;
}
void Include(int A){
if (!IsPresent(A)){
*(Items+Count)=A;
Count++;
}
}
void Exclude(int A){
int n=IsPresent(A);
if (n){
for (int i = n ; i < Count; i++)
{
*(Items+i-1)=*(Items+i);
}
Count--;
}
}
void Show(char *name=""){
cout<<" Elements of "<<name<<"["<<Count<<"] = { ";
for (int i = 0 ; i < Count-1; i++)
{
cout<<*(Items+i)<< ", ";
}
if (Count!=0) cout<<*(Items+Count-1);
cout<<" }\n";
}
Mnojina Mnojina :: operator + (Mnojina b){
Mnojina temp;
for (int i = 0 ; i < Count ; i++)
{
temp.Include(*(Items+i));
}
for (int i = 0 ; i < b.Count ; i++)
{
temp.Include(*(b.Items+i));
}
// temp.Show("Temp");
return temp;
}
Mnojina Mnojina :: operator - (Mnojina b){
Mnojina temp;
for (int i = 0 ; i < Count ; i++)
{
temp.Include(*(Items+i));
}
for (int i = 0 ; i < b.Count ; i++)
{
temp.Exclude(*(b.Items+i));
}
// temp.Show("Temp");
return temp;
}
Mnojina Mnojina :: operator * (Mnojina b){
Mnojina temp;
for (int i = 0 ; i < Count ; i++)
{
for (int j = 0 ; j < b.Count ; j++)
{
if ( IsPresent(b.Items[j]) && b.IsPresent(Items[i]) ) {
temp.Include(Items[i]);
}
}
}
// temp.Show("Temp");
return temp;
}
};
using namespace std;
int main(){
Mnojina A,B,C;
A.Include(1);
A.Include(2);
A.Include(3);
A.Include(4);
B.Include(3);
B.Include(4);
B.Include(5);
B.Include(6);
A.Show("A");
B.Show("B");
C.Show("C");
cout<<endl;
C=A+B;
C.Show("C=A+B");
A.Show("A");
B.Show("B");
C.Show("C");
cout<<endl;
C=A-B;
C.Show("C=A-B");
cout<<endl;
A.Show("A");
B.Show("B");
C.Show("C");
cout<<endl;
C=A*B;
C.Show("C=A*B");
cout<<endl;
A.Show("A");
B.Show("B");
C.Show("C");
system("pause");
}
====================================
|