Advertisement
maciejszulia

11.12 nowe generuj

Dec 11th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.86 KB | None | 0 0
  1. //pokaz, min/max, sumav, czynalezy, czyzawiera, unikalnosc, index, wybierz, struct czestotliwosc, pokaz (struct), inwersja
  2. #include "pch.h"
  3. #include <iostream>
  4. #include <vector>
  5. #include<ctime>
  6. using namespace std;
  7. struct czestotliwosc
  8. {
  9.     vector<int>liczby;
  10.     vector<int>wystapienia;
  11. };
  12. vector<int>generuj(int ile = 20, int zakres = 10)
  13. {
  14.     vector<int>wynik;
  15.     for (int i = 0; i < ile; i++)
  16.         wynik.push_back(rand() % zakres);
  17.     return wynik;
  18. }
  19. vector<int>generuj2(int ile, int min, int max)
  20. {
  21.     vector<int>wynik;
  22.     int dl = max - min + 1;
  23.     for (int i = 0; i < ile; i++)
  24.     {
  25.         int liczba = rand() % dl + min;
  26.         wynik.push_back(liczba);
  27.     }
  28.     return wynik;
  29. }
  30. vector<int>generuj2(int ile, int max = 50)
  31. {
  32.     return generuj2(ile, 0, max);
  33. }
  34. void pokaz(vector<int>tab1)
  35. {
  36.     for (int i = 0; i < tab1.size(); i++)
  37.         cout << tab1[i] << " ";
  38.     cout << endl;
  39. }
  40. int min(vector<int>tab1)
  41. {
  42.     int min = tab1[0];
  43.     for (int i = 0; i < tab1.size(); i++)
  44.         if (tab1[i] < min)
  45.             min = tab1[i];
  46.     return min;
  47. }
  48. int max(vector<int>tab1)
  49. {
  50.     int max = tab1[0];
  51.     for (int i = 0; i < tab1.size(); i++)
  52.         if (tab1[i] > max)
  53.             max = tab1[i];
  54.     return max;
  55. }
  56. int sumav(vector<int>tab1)
  57. {
  58.     int suma = 0;
  59.     for (int i = 0; i < tab1.size(); i++)
  60.         suma += tab1[i];
  61.     return suma;
  62. }
  63. bool czynalezy(vector<int>tab1, int elem)
  64. {
  65.     for (int i = 0; i < tab1.size(); i++)
  66.         if (tab1[i] == elem)
  67.             return true;
  68.     return false;
  69. }
  70. bool czyzawiera(vector<int>tab1, vector<int>tab2)
  71. {
  72.     for (int i = 0; i < tab2.size(); i++)
  73.         if (!czynalezy(tab1, tab2[i]))
  74.             return false;
  75.     return true;
  76. }
  77. vector<int>unikalonosc(vector<int>tab1)
  78. {
  79.     vector<int>wynik;
  80.     for (int i = 0; i < tab1.size(); i++)
  81.         if (!czynalezy(wynik, tab1[i]))
  82.             wynik.push_back(tab1[i]);
  83.     return wynik;
  84. }
  85. int index(vector<int>tab1, int elem)
  86. {
  87.     for (int i = 0; i < tab1.size(); i++)
  88.         if (tab1[i] == elem)
  89.             return i;
  90.     return -1;
  91. }
  92. vector<int>wybierz(vector<int>tab1, int dzielnik = 2, int reszta = 0)
  93. {
  94.     vector<int>wynik;
  95.     for (int i = 0; i < tab1.size(); i++)
  96.         if (tab1[i] % dzielnik == reszta)
  97.             wynik.push_back(tab1[i]);
  98.     return wynik;
  99. }
  100. czestotliwosc czestosc(vector<int>tab1)
  101. {
  102.     czestotliwosc wynik;
  103.     for (int i = 0; i < tab1.size(); i++)
  104.     {
  105.         int ind = index(wynik.liczby, tab1[i]);
  106.         if (ind == -1)
  107.         {
  108.             wynik.liczby.push_back(tab1[i]);
  109.             wynik.wystapienia.push_back(1);
  110.         }
  111.         else
  112.             wynik.wystapienia[ind]++;
  113.     }
  114.     return wynik;
  115. }
  116. void pokaz(czestotliwosc zm)
  117. {
  118.     pokaz(zm.liczby);
  119.     pokaz(zm.wystapienia);
  120. }
  121. int inwersje(vector<int>tab1)
  122. {
  123.     int wynik = 0;
  124.     for (int i = 0; i < tab1.size() - 1; i++)
  125.         for (int j = i + 1; j < tab1.size(); j++)
  126.             if (tab1[i] > tab1[j])
  127.                 wynik++;
  128.     return wynik;
  129. }
  130. void gwiazdki(int wysokosc)
  131. {
  132.     for (int i = 0; i < wysokosc; i++)
  133.     {
  134.         for (int j = 0; j <= i; j++)
  135.             cout << "x";
  136.         cout << endl;
  137.     }
  138. }
  139. void gwiazdki2(int wysokosc=3)
  140. {
  141.     for (int i = 0; i < wysokosc; ++i)
  142.     {
  143.         for (int ii = 0; ii < wysokosc - i; ++ii)
  144.             cout << " ";
  145.         for (int ii = 0; ii < i * 2 + 1; ++ii)
  146.             cout << "*";
  147.         cout << endl;
  148.     }
  149. }
  150. int main()
  151. {
  152.     srand(time(NULL));
  153.  
  154.     vector<int>tab1 = generuj(5, 10);
  155.     vector<int>tab2 = generuj();
  156.     pokaz(tab1);
  157.     pokaz(tab2);
  158.  
  159.     cout << "min z tab1: " << min(tab1) << endl;
  160.     cout << "suma tab1: " << sumav(tab1) << endl;
  161.     cout << "czy 0 nalezy do tab1?: " << czynalezy(tab1, 0) << endl;
  162.     cout << "czy tab1 zawiera tab2?: " << czyzawiera(tab1, tab2) << endl;
  163.  
  164.     vector<int>tab1u = unikalonosc(tab1);
  165.     cout << "unikalny tab1: ";
  166.     pokaz(tab1u);
  167.  
  168.     cout << "index 0 w tab1: " << index(tab1, 0) << endl;
  169.     cout << "wybierz parzyste z tab1: ";
  170.  
  171.     vector<int>tab1par = wybierz(tab1);
  172.     pokaz(tab1par);
  173.  
  174.     czestotliwosc wynik = czestosc(tab1);
  175.     pokaz(wynik);
  176.  
  177.     cout << "liczba inwersji: " << inwersje(tab1) << endl;
  178.  
  179.     //gwiazdki(10);
  180.     //gwiazdki2(5);
  181.  
  182.     vector<int>generacja2 = generuj2(5,10,20);
  183.     pokaz(generacja2);
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement