Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <vector>
  4. //#include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. struct wdp
  9. {
  10. vector<int> liczby;
  11. vector<int> wystapienia;
  12. };
  13.  
  14. void linia()
  15. {
  16. cout << endl;
  17. cout << "---------------------------------" << endl;
  18. cout << endl;
  19. }
  20.  
  21. void wypisz(vector<int> tab)
  22. {
  23. for (int i = 0; i < tab.size(); i++)
  24. {
  25. cout << tab[i] << " ";
  26. }
  27. cout << endl;
  28. }
  29.  
  30. void wypisz(wdp zm)
  31. {
  32. cout << " Liczby:";
  33. wypisz(zm.liczby);
  34. cout << "Wystapienia:";
  35. wypisz(zm.wystapienia);
  36. }
  37.  
  38. int maksimum(vector<int> tab)
  39. {
  40. int max = 0;
  41. for (int i = 0; i < tab.size(); i++)
  42. {
  43. if (tab[i] > max)
  44. max = tab[i];
  45. }
  46. return max;
  47. }
  48.  
  49. int suma(vector<int> tab)
  50. {
  51. int suma = 0;
  52. for (int i = 0; i < tab.size(); i++)
  53. {
  54. suma += tab[i];
  55. }
  56. return suma;
  57. }
  58.  
  59. int index(vector<int> tab, int element)
  60. {
  61. for (int i = 0; i < tab.size(); i++)
  62. {
  63. if (tab[i] == element)
  64. return i;
  65. }
  66. return -1;
  67. }
  68.  
  69. bool czyNalezy(vector<int> tab, int element)
  70. {
  71. return index(tab, element) > -1;
  72. }
  73.  
  74. bool czyZawiera(vector<int> tab1, vector<int> tab2)
  75. {
  76. for (int i = 0; i < tab2.size(); i++)
  77. {
  78. if (!czyNalezy(tab1, tab2[i]))
  79. return false;
  80. }
  81. return true;
  82. }
  83.  
  84. vector<int> unikalnosc(vector<int> tab)
  85. {
  86. vector<int> unikalna;
  87. for (int i = 0; i < tab.size(); i++)
  88. {
  89. if (!czyNalezy(unikalna, tab[i]))
  90. unikalna.push_back(tab[i]);
  91. }
  92. return unikalna;
  93. }
  94.  
  95. vector<int> wybierz(vector<int> tab, int dzielnik, int reszta)
  96. {
  97. vector<int> wybrane;
  98. for (int i = 0; i < tab.size(); i++)
  99. {
  100. if (tab[i] % dzielnik == reszta)
  101. wybrane.push_back(tab[i]);
  102. }
  103. return wybrane;
  104. }
  105.  
  106. wdp czestosc(vector<int> tab)
  107. {
  108. wdp wynik;
  109. for (int i = 0; i < tab.size(); i++)
  110. {
  111. int ind = index(wynik.liczby, tab[i]);
  112. if (ind == -1)
  113. {
  114. wynik.liczby.push_back(tab[i]);
  115. wynik.wystapienia.push_back(1);
  116. }
  117. else wynik.wystapienia[ind]++;
  118. }
  119.  
  120. return wynik;
  121. }
  122.  
  123. int inwersje(vector<int> tab)
  124. {
  125. int ilosc = 0;
  126. for (int i = 0; i < tab.size() - 1; i++)
  127. for (int j = i + 1; j < tab.size(); j++)
  128. if (tab[j] < tab[i])
  129. ilosc++;
  130. return ilosc;
  131. }
  132.  
  133. vector<int> sortuj(vector<int> tab)
  134. {
  135. for (int i = 0; i < tab.size() - 1; i++)
  136. for (int j = i + 1; j < tab.size(); j++)
  137. if (tab[j] < tab[i])
  138. swap(tab[j], tab[i]);
  139. return tab;
  140. }
  141.  
  142. vector<int> generuj(int n, int min, int max)
  143. {
  144. vector<int> wynik;
  145. int dl = max - min + 1;
  146. for (int i = 0; i < n; i++)
  147. {
  148. int liczba = rand() % dl + min;
  149. wynik.push_back(liczba);
  150. }
  151. return wynik;
  152. }
  153.  
  154. vector<int> generuj(int n, int max = 50)
  155. {
  156. return generuj(n, 0, max);
  157. }
  158.  
  159. int sumar(vector<int> tab,int wybrany)
  160. {
  161. int suma = 0;
  162. for (int i = 0; i < tab.size(); i++)
  163. {
  164. suma += abs(tab[i]-wybrany);
  165. }
  166. return suma;
  167. }
  168.  
  169. int main()
  170. {
  171. //srand(time(NULL));
  172. vector<int> tablica1 = generuj(10,20);
  173. vector<int> tablica2 = generuj(5,20);
  174. int element = 8;
  175.  
  176. cout << "Numer albumu: 156357" << endl;
  177. cout << "------------------------" << endl;
  178. cout << endl;
  179. cout << "Tablica1: "; wypisz(tablica1);
  180. cout << "Tablica2: "; wypisz(tablica2);
  181. cout << "Szukany element: " << element << endl;
  182. linia();
  183. cout << "Najwiekszy element tablicy1: " << maksimum(tablica1) << endl;
  184. cout << "Suma elementow w tablicy1: " << suma(tablica1) << endl;
  185. linia();
  186. cout << "Czy element " << element << " nalezy do tablicy1? ";
  187. if (czyNalezy(tablica1, element)) cout << "TAK. Znajduje sie pod indexem " << index(tablica1, element) << endl;
  188. else cout << "NIE" << endl;
  189. cout << "Czy tablica1 zawiera sie w tablicy2? ";
  190. if (czyZawiera(tablica1, tablica2)) cout << "TAK" << endl;
  191. else cout << "NIE" << endl;
  192. linia();
  193. cout << "Tablica1 w wersji unikalnej: ";
  194. wypisz(unikalnosc(tablica1));
  195. cout << "Liczby parzyste z tablicy1: ";
  196. wypisz(wybierz(tablica1, 2, 0));
  197. linia();
  198. wypisz(czestosc(tablica1));
  199. linia();
  200.  
  201. cout << "Ilosc inwersji: " << inwersje(tablica1) << endl;
  202. cout << "Posortowana tablica: ";
  203. wypisz(sortuj(tablica1));
  204.  
  205. linia();
  206.  
  207.  
  208.  
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement