vertc

23-05 (UPDATE FROM 16-05)

May 23rd, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. int zakres(int x) {
  8.     cin>>x;
  9.     return x;
  10. }
  11.  
  12. int iloscele() {
  13.    
  14.     int n;
  15.     cout<<"Podaj ilosc elementow n: "<<endl;
  16.     cin>>n;
  17.     return n;
  18. }
  19.  
  20. void gen(int tab[], int n, int a, int b) {
  21.     for(int i=0;i<n;i++) {
  22.         tab[i] = rand()%(b+1)+a;
  23.     }
  24.     cout<<endl<<"Liczby zostaly wygenerowane."<<endl;
  25. }
  26.  
  27. int wyswietl(int tab[], int n) {
  28.     cout<<"Wygenerowane liczby to: ";
  29.     for(int i=0;i<n;i++) {
  30.         cout<<tab[i]<<" ";
  31.     }
  32. }
  33.  
  34. void sortuj_wybor(int tab[], int n) {
  35.     for(int j=0;j<n-1;j++) {
  36.         int temp, pmin = j;
  37.         for(int i=j+1;i<n;i++)
  38.             if(tab[i]<tab[pmin])    pmin = i;
  39.         temp = tab[pmin];
  40.         tab[pmin] = tab[j];
  41.         tab[j] = temp;
  42.     }
  43.     cout<<"Liczby zostaly posortowane.";
  44. }
  45.  
  46. void sortuj_babel(int tab[], int n) {
  47.      for (int i=0; i<9; i++)
  48.         for (int j=0; j<9; j++)
  49.             if (tab[j]>tab[j+1])
  50.                 swap(tab[j], tab[j+1]);
  51.     cout<<"Liczby zostaly posortowane.";
  52. }
  53.  
  54. void sortuj_wstawianie(int tab[], int n) {
  55.         for(int j=n-2;j>=0;j--) {
  56.         int x = tab[j];
  57.         int i = j+1;
  58.         while((i<n) && (x>tab[i])) {
  59.             tab[i-1] = tab[i];
  60.             i++;
  61.         }
  62.     tab[i-1] = x;
  63.     }
  64.     cout<<"Liczby zostaly posortowane.";
  65. }
  66.  
  67. void maksymalna(int tab[], int n, int a) {
  68.     int max=a;
  69.     for(int i=0;i<n;i++) {
  70.         if(tab[i]>max) {
  71.             max = tab[i];
  72.         }
  73.     }
  74.     cout<<"Liczba maksymalna to: "<<max<<endl;
  75. }
  76.  
  77. void minimalna(int tab[], int n, int b) {
  78.     int min=b;
  79.     for(int i=0;i<n;i++) {
  80.         if(tab[i]<min) {
  81.             min = tab[i];
  82.         }
  83.     }
  84.     cout<<"Liczba minimalna to: "<<min<<endl;
  85. }
  86.  
  87. void srednia(int tab[], int n) {
  88.     int suma=0, srednia=0;
  89.     for(int i=0;i<n;i++) {
  90.         suma = suma + tab[i];
  91.     }
  92.     srednia = suma / n;
  93.     cout<<"Srednia liczb wynosi: "<<srednia<<endl;
  94. }
  95.  
  96. void wystapienia(int tab[], int n) {
  97.     int liczba, ilosc=0;
  98.     cout<<"Podaj liczbe, ktorej ilosc wystapien chcesz sprawdzic: "<<endl;
  99.     cin>>liczba;
  100.     for(int i=0;i<n;i++) {
  101.         if(tab[i] == liczba) {
  102.             ilosc++;
  103.         }
  104.     }
  105.     cout<<"Ilosc wystapien liczby: "<<liczba<<" wynosi: "<<ilosc<<endl;
  106. }
  107.  
  108. void wystapienia_przedzial(int tab[], int n) {
  109.     int prz_min, prz_max, ilosc_prz=0;
  110.     cout<<"Podaj przedzial minimalny: "<<endl;
  111.     cin>>prz_min;
  112.     cout<<"Podaj przedzial maksymalny: "<<endl;
  113.     cin>>prz_max;
  114.     for(int i=0;i<n;i++) {
  115.         if(tab[i] > prz_min && prz_max > tab[i]) {
  116.             ilosc_prz++;
  117.         }
  118.     }
  119.     cout<<"Ilosc wystapien liczb z przedzialu od: "<<prz_min<<" do: "<<prz_max<<" wynosi: "<<ilosc_prz<<endl;
  120. }
  121.  
  122. void dzielic3(int tab[], int n) {
  123.     cout<<"Wygenerowane liczby z wynikami podzielnymi przez 3 zamienionymi na 0 to: "<<endl;
  124.     for(int i=0;i<n;i++) {
  125.         if(tab[i]%3 == 0) {
  126.             tab[i] = 0;
  127.         }
  128.         cout<<tab[i]<<" ";
  129.     }
  130. }
  131.  
  132. void wystapienia_po_min(int tab[], int n, int b) {
  133.     int elem = n;
  134.     int ctab[elem], min2 = b, f = 0, ilosc2 = 0;
  135.     int wlacznik = 1;
  136.     for(int i=0;i<n;i++) {
  137.         ctab[i] = tab[i];
  138.     } // KOPIOWANIE
  139.  
  140.     for(int j=n-2;j>=0;j--) {
  141.     int i = j+1;
  142.     int x = ctab[j];
  143.     while((i<n) && (x>ctab[i])) {
  144.         ctab[i-1] = ctab[i];
  145.         i++;
  146.     }
  147.     ctab[i-1] = x;
  148.     } // SORTOWANIE
  149.  
  150.     for(int i=0;i<n;i++) {
  151.         if(ctab[i]<min2) {
  152.             min2 == ctab[i];
  153.         }
  154.     } // SZUKANIE MINIMUM
  155.  
  156.     for(int i=0;i<n;i++) {
  157.         if(ctab[i] == min2) {
  158.             f == i;
  159.             f++;
  160.         }
  161.          
  162.     } // POZYCJA TABLICY W KTOREJ WARTOSC JEST INNA OD MINIMUM
  163.  
  164.     for(int i=0;i<n;i++) {
  165.         if(ctab[i] == ctab[f+1]) {
  166.             ilosc2++;
  167.         }
  168.     } // LICZENIE ILOSCI WYSTAPIEN WARTOSCI INNEJ OD MINIMUM
  169.     cout<<"Ilosc wystapien liczby kolejnej po minimalnej wynosi: "<<ilosc2<<endl;
  170. }
  171.  
  172. int main() {
  173.     srand(time(0));
  174.     int tab[1000], n, a, b, wybor=99;
  175.         while(wybor!=0) {
  176.         cout<<endl<<"______________________________________"<<endl;
  177.         cout<<"|0. Wyjscie                           |" <<endl;
  178.         cout<<"|1. Zakres liczb                      |" <<endl;
  179.         cout<<"|2. Ilosc elementow n                 |" <<endl;
  180.         cout<<"|3. Generowanie tablicy               |" <<endl;
  181.         cout<<"|4. Wyswietlanie                      |" <<endl;
  182.         cout<<"|5. Sortowanie (wybor)                |" <<endl;
  183.         cout<<"|6. Sortowanie babelkowe              |" <<endl;
  184.         cout<<"|7. Sortowanie (wstawianie)           |" <<endl;
  185.         cout<<"|8. Liczba maksymalna                 |" <<endl;
  186.         cout<<"|9. Liczba minimalna                  |" <<endl;
  187.         cout<<"|10. Srednia liczb                    |" <<endl;
  188.         cout<<"|11. Ilosc wystapien                  |" <<endl;
  189.         cout<<"|12. Ilosc wystapien z przedzialu     |" <<endl;
  190.         cout<<"|13. Liczby podzielne przez 3         |" <<endl;
  191.         cout<<"|14. Ilosc wystapien liczby po minimum|" <<endl;
  192.         cout<<"|_____________________________________|" <<endl;
  193.         cout<<endl<<"Wybierz dzialanie: ";
  194.         cin>>wybor;
  195.         switch(wybor) {
  196.         case 0:
  197.             cout<<endl<<"Wychodzenie z programu...";
  198.             break;
  199.         case 1:
  200.             cout<<"Podaj zakres minimalny: ";
  201.             a=zakres(a);
  202.             cout<<"Podaj zakres maksymalny: ";
  203.             b=zakres(b);
  204.             break;
  205.         case 2:
  206.             n = iloscele();
  207.             break;
  208.         case 3:
  209.             gen(tab, n, a, b);
  210.             break;
  211.         case 4:
  212.             wyswietl(tab, n);
  213.             break;
  214.         case 5:
  215.             sortuj_wybor(tab, n);
  216.             break;
  217.         case 6:
  218.             sortuj_babel(tab, n);
  219.             break;
  220.         case 7:
  221.             sortuj_wstawianie(tab, n);
  222.             break;
  223.         case 8:
  224.             maksymalna(tab, n, a);
  225.             break;
  226.         case 9:
  227.             minimalna(tab, n, b);
  228.             break;
  229.         case 10:
  230.             srednia(tab, n);
  231.             break;
  232.         case 11:
  233.             wystapienia(tab, n);
  234.             break;
  235.         case 12:
  236.             wystapienia_przedzial(tab, n);
  237.             break;
  238.         case 13:
  239.             dzielic3(tab, n);
  240.             break;
  241.         case 14:
  242.             wystapienia_po_min(tab, n, b);
  243.             break;
  244.         default:
  245.             cout<<endl<<"Nieprawidlowe polecenie";
  246.             break;
  247.         }
  248.     }
  249.     return 0;
  250. }
Advertisement
Add Comment
Please, Sign In to add comment