Advertisement
Guest User

Untitled

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