Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1.  
  2. #include<iostream>
  3. #include<vector>
  4. #include<algorithm>
  5.  
  6. using namespace std;
  7.  
  8. #include "Fx.cpp"
  9.  
  10. int main()
  11. {
  12.     cout<<endl;
  13.     cout<<"Podaj dane pierwszego zbioru: ";
  14.     auto a= get_data();
  15.     cout<<"Podaj dane drugiego zbioru: ";
  16.     auto b= get_data();
  17.     cout<<endl;
  18.     vector<int> suma=union_sets(a,b);
  19.     cout<<"Union | A u B |: ";
  20.     draw(suma);
  21.  
  22.  
  23.     cout<<"Intersection | A n B | : ";
  24.     vector<int> iloczyn=intersections(a,b);
  25.     draw(iloczyn);
  26.  
  27.     cout<<"Difference | A/B | : ";
  28.     vector<int>diff=difference(a,b);
  29.     draw(diff);
  30.  
  31.      cout<<"Symmetric difference | (A/B) u (B/A) | : ";
  32.     draw(difference(suma,iloczyn));
  33.  
  34.     cout<<endl;    
  35. }
  36.  
  37.  
  38.  
  39.  
  40.  
  41. #include "Fx.h"
  42.  
  43. auto draw(vector<int> a)
  44. {
  45.         for(auto i:a) cout<<i<<" ";  
  46.         cout<<endl;
  47. }
  48.  
  49. auto get_data()
  50. {
  51.     vector<int> v;
  52.     string line;
  53.     int number;
  54.     getline(cin, line);
  55.     istringstream stream(line);
  56.  
  57.         while (stream >> number)
  58.             v.push_back(number);
  59.  
  60.     return v;
  61. }
  62.  
  63. auto union_sets(auto a, auto b)
  64. {
  65.     vector <int> suma;
  66.     for(auto i:a)  suma.push_back(i);
  67.     for(auto i:b) suma.push_back(i);
  68.     sort(suma.begin(),suma.end());
  69.  
  70.     int prev;
  71.     for(int i=0; i<suma.size()-1;i++)
  72.     {
  73.         if(suma.at(i)==suma.at(i+1))
  74.         {
  75.             suma.erase(suma.begin() + (i));  
  76.         }
  77.     }
  78.     return suma;
  79.  
  80. }
  81. auto intersections(auto a, auto b)
  82. {
  83.     vector<int> multi;
  84.    
  85.     for(auto i:a)
  86.     {
  87.         for(auto j:b)
  88.         {
  89.             if(i==j)
  90.             {
  91.                 multi.push_back(i);        
  92.             }
  93.         }
  94.     }
  95.     return multi;
  96. }
  97.  
  98. auto difference(auto a, auto b){
  99.     vector<int> diff;
  100.     for(int i:a){
  101.         int lock=0;
  102.         for(int j:b){
  103.             if(i==j) lock=1;
  104.         }
  105.         if(lock==1) continue;
  106.         diff.push_back(i);
  107.     }
  108.     return diff;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement