GVA SUPPORT

Відповідь на запитання № 1306678813
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");
}

====================================	
Ваша відповідь