Advertisement
Brollylssj

Napisz funkcję sortującą, jednocześnie, kraje alfabetycznie

Nov 26th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. /*Zadanie 1:
  2. Mając dane N elementów, z których każdy zawiera następujące informacje:
  3. • nazwę kontynentu,
  4. • nazwę kraju,
  5. • powierzchnię kraju.
  6. Napisz funkcję wyszukującą wszystkie kraje położone na kontynencie, którego nazwa rozpoczyna się
  7. od podanej litery i których powierzchnia jest większa od podanej wartości (nazwa kontynentu oraz
  8. powierzchnia podawane z klawiatury). Implementacja optymalna.
  9. Zadanie 2:
  10. Napisz funkcję sortującą, jednocześnie, kraje alfabetycznie według nazwy kontynentu (kryterium
  11. podstawowe) i alfabetycznie według nazwy kraju (kryterium dodatkowe). Należy zastosować
  12. algorytm sortowania przez proste wybieranie. Implementacja optymalna. */
  13.  
  14.  
  15. #include<iostream>
  16. #include<iomanip>
  17. #include<string>
  18.  
  19. using namespace std;
  20.  
  21. int const size = 10;
  22.  
  23. struct Kraj
  24. {
  25.     string kontynent;
  26.     string panstwo;
  27.     double powierzchnia;
  28.  
  29.  
  30.     Kraj()
  31.     {
  32.  
  33.     }
  34.  
  35.  
  36.     Kraj(string kontynent_,string panstwo_,double powierzchnia_)
  37.     {
  38.         kontynent = kontynent_;
  39.         panstwo = panstwo_;
  40.         powierzchnia = powierzchnia_;
  41.  
  42.  
  43.     }
  44.  
  45.  
  46. };
  47.  
  48.  
  49. void show(Kraj *tab)
  50. {
  51.     for(int i = 0;i<size; i++)
  52.         cout<<setw(12)<<tab[i].kontynent<<setw(12)<<tab[i].panstwo<<setw(9)<<tab[i].powierzchnia<<endl;
  53.  
  54. }
  55.  
  56. //zadanie1
  57. void search(Kraj *tab)
  58. {
  59.     char litera;
  60.     double pow;
  61.     cout<<"Podaj litere:"<<endl;
  62.     cin>>litera;
  63.     cout<<"podaj minimalna powierzchnie:"<<endl;
  64.     cin>>pow;
  65.  
  66.     char pierwsza;
  67.     for (int i = 0;i<size;i++)
  68.     {
  69.         pierwsza = tab[i].kontynent[0];
  70.  
  71.         if(litera == pierwsza && tab[i].powierzchnia>pow)
  72.         {
  73.             cout<<setw(12)<<tab[i].kontynent<<setw(12)<<tab[i].panstwo<<setw(9)<<tab[i].powierzchnia<<endl;
  74.         }
  75.    
  76.     }
  77.  
  78.  
  79. }
  80.  
  81. //zadanie 2
  82.  
  83. void przez_wybieranie(Kraj *tab)
  84. {
  85.     int k;
  86.     for(int i=0;i<size;i++)
  87.     {
  88.         k=i;
  89.         for(int j=i+1;j<size;j++)
  90.         {
  91.             if(tab[j].kontynent<tab[k].kontynent)
  92.             k=j;
  93.             else
  94.             if(tab[j].kontynent == tab[k].kontynent)
  95.             {
  96.                 if(tab[j].panstwo<tab[k].panstwo)
  97.                     k=j;
  98.             }
  99.            
  100.  
  101.         }
  102.         swap(tab[k],tab[i]);
  103.  
  104.    
  105.     }
  106. }
  107.  
  108. int main()
  109. {
  110.  
  111.     Kraj tab[size];
  112.  
  113.     struct Kraj kraj1("Europa","Polska",312.685);
  114.     struct Kraj kraj2("Azja","Chiny",9597);
  115.     struct Kraj kraj3("Afryka","Egipt",1001.450);
  116.     struct Kraj kraj4("AmerykaPl","Meksyk",1972.550);
  117.     struct Kraj kraj5("AmerykaPn","Kanada",9976.140);
  118.     struct Kraj kraj6("Azja","Indie",3287.262);
  119.     struct Kraj kraj7("Azja","Wietnam",331.688);
  120.     struct Kraj kraj8("Europa","Norwegia",324.220);
  121.     struct Kraj kraj9("AmerykaPl","Kolumbia",1141.748);
  122.     struct Kraj kraj10("Europa","Niemcy",357.021);
  123.  
  124.     tab[0] =kraj1;
  125.     tab[1] =kraj2;
  126.     tab[2] =kraj3;
  127.     tab[3] =kraj4;
  128.     tab[4] =kraj5;
  129.     tab[5] =kraj6;
  130.     tab[6] =kraj7;
  131.     tab[7] =kraj8;
  132.     tab[8] =kraj9;
  133.     tab[9] =kraj10;
  134.  
  135.     cout<<"Twoja tablica"<<endl;
  136.  
  137.     show(tab);
  138.  
  139.     cout<<"wybieranie"<<endl;
  140.     przez_wybieranie(tab);
  141.     show(tab);
  142.  
  143.     //cout<<"Tablica z wybranymi kryteriami"<<endl;
  144.     //search(tab);
  145.  
  146.    
  147.  
  148.  
  149.  
  150.     system("PAUSE");
  151.     return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement