Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 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. #include "Fx.h"
  39.  
  40. auto draw(vector<int> a)
  41. {
  42.         for(auto i:a) cout<<i<<" ";  
  43.         cout<<endl;
  44. }
  45.  
  46. auto get_data()
  47. {
  48.     vector<int> v;
  49.     string line;
  50.     int number;
  51.     getline(cin, line);
  52.     istringstream stream(line);
  53.  
  54.         while (stream >> number)
  55.             v.push_back(number);
  56.  
  57.     return v;
  58. }
  59.  
  60. auto union_sets(auto a, auto b)
  61. {
  62.     vector <int> suma;
  63.     for(auto i:a)  suma.push_back(i);
  64.     for(auto i:b) suma.push_back(i);
  65.     sort(suma.begin(),suma.end());
  66.  
  67.     int prev;
  68.     for(int i=0; i<suma.size()-1;i++)
  69.     {
  70.         if(suma.at(i)==suma.at(i+1))
  71.         {
  72.             suma.erase(suma.begin() + (i));  
  73.         }
  74.     }
  75.     return suma;
  76.  
  77. }
  78. auto intersections(auto a, auto b)
  79. {
  80.     vector<int> multi;
  81.    
  82.     for(auto i:a)
  83.     {
  84.         for(auto j:b)
  85.         {
  86.             if(i==j)
  87.             {
  88.                 multi.push_back(i);        
  89.             }
  90.         }
  91.     }
  92.     return multi;
  93. }
  94.  
  95. auto difference(auto a, auto b){
  96.     vector<int> diff;
  97.     for(int i:a){
  98.         int lock=0;
  99.         for(int j:b){
  100.             if(i==j) lock=1;
  101.         }
  102.         if(lock==1) continue;
  103.         diff.push_back(i);
  104.     }
  105.     return diff;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement