Advertisement
Guest User

Untitled

a guest
Dec 16th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.02 KB | None | 0 0
  1. // ConsoleApplication70.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
  2. //
  3.  
  4. #include "pch.h"
  5. #include <iostream>
  6. #include <vector>
  7. #include <time.h>
  8.  
  9. using namespace std;
  10.  
  11. struct wdp {
  12.     vector<int>liczby;
  13.     vector<int>wystapienia;
  14. };
  15.  
  16. void wypisz(vector<int>tab)
  17. {
  18.     for (int i = 0; i < tab.size(); i++)
  19.     {
  20.         cout << tab[i] << " ";
  21.     }
  22. }
  23.  
  24. void wypisz(wdp tab)
  25. {
  26.     wypisz(tab.liczby);
  27.     cout << endl;
  28.     wypisz(tab.wystapienia);
  29.  
  30. }
  31.  
  32. bool czyNalezy(vector<int>tab, int a)
  33. {
  34.     for (int i = 0; i < tab.size(); i++)
  35.     {
  36.         if (a == tab[i])
  37.         {
  38.             return true;
  39.         }
  40.     }
  41.     return false;
  42. }
  43.  
  44. bool czyZawiera(vector<int>tab, vector<int>tab2)
  45. {
  46.     for (int i = 0; i < tab.size(); i++)
  47.     {
  48.         if (!czyNalezy(tab2, tab[i]))
  49.         {
  50.             return false;
  51.         }
  52.     }
  53.     return true;
  54. }
  55.  
  56. vector<int> unikalnosc(vector<int>tab)
  57. {
  58.     vector<int>unikalny;
  59.     for (int i = 0; i < tab.size(); i++)
  60.     {
  61.         if (!czyNalezy(unikalny, tab[i]))
  62.         {
  63.             unikalny.push_back(tab[i]);
  64.         }
  65.     }
  66.     return unikalny;
  67. }
  68.  
  69. int index(vector<int>tab, int a)
  70. {
  71.     for (int i = 0; i < tab.size(); i++)
  72.     {
  73.         if (a == tab[i])
  74.         {
  75.             return i;
  76.         }
  77.     }
  78.     return -1;
  79. }
  80.  
  81. wdp czestosc(vector<int>tab)
  82. {
  83.     wdp czeste;
  84.     for (int i = 0; i < tab.size(); i++)
  85.     {
  86.         if (!czyNalezy(czeste.liczby, tab[i]))
  87.         {
  88.  
  89.             czeste.liczby.push_back(tab[i]);
  90.             czeste.wystapienia.push_back(1);
  91.         }
  92.         else
  93.         {
  94.             int ind = index(czeste.liczby, tab[i]);
  95.             czeste.wystapienia[ind]++;
  96.         }
  97.     }
  98.     return czeste;
  99. }
  100.  
  101. vector<int> wybierz(vector<int>tab, int a, int reszta = 0)
  102. {
  103.     vector<int>wybrane;
  104.  
  105.     for (int i = 0; i < tab.size(); i++)
  106.     {
  107.         if (tab[i] % a == reszta)
  108.         {
  109.             wybrane.push_back(tab[i]);
  110.         }
  111.     }
  112.     return wybrane;
  113. }
  114.  
  115. vector<int> generuj(int n, int min, int max)
  116. {
  117.     vector<int>losowe;
  118.     for (int i = 0; i < n; i++)
  119.     {
  120.         int liczba = rand() % (max - min + 1) + min;
  121.         losowe.push_back(liczba);
  122.  
  123.     }
  124.     return losowe;
  125. }
  126.  
  127. vector<int> generuj(int n, int max = 50)
  128. {
  129.     return generuj(n, 0, max);
  130. }
  131.  
  132. int sumaD(vector<int>tab, int numer)
  133. {
  134.     int wynik = 0;
  135.     for (int i = 0; i < tab.size(); i++)
  136.     {
  137.         wynik += abs(tab[i] - numer);
  138.     }
  139.     return wynik;
  140. }
  141.  
  142. int zamieszkajW(vector<int> tab)
  143. {
  144.     int wynik = tab[0];
  145.     int odleglosc = sumaD(tab, tab[0]);
  146.  
  147.     for (int i = 1; i < tab.size(); i++)
  148.     {
  149.         int tmp = sumaD(tab, tab[i]);
  150.  
  151.         if (tmp < odleglosc)
  152.         {
  153.             wynik = tab[i];
  154.             odleglosc = tmp;
  155.         }
  156.     }
  157.     return wynik;
  158. }
  159.  
  160.  
  161.  
  162. int main()
  163. {
  164.  
  165.     srand(time(NULL));
  166.     int a = 20;
  167.     vector<int>tab = { 5, 7, 3, 3, 7, 23,5, 7, 3, 2 };
  168.     vector<int>tab2 = { 5, 7, 3, 3, 7, 23 };
  169.     vector<int>znajomy = { 8, 3, 1, 5, 4 };
  170.  
  171.     wypisz(tab);
  172.     cout << endl;
  173.  
  174.     cout << czyNalezy(tab, 3);
  175.     cout << endl;
  176.  
  177.     cout << czyZawiera(tab2, tab);
  178.     cout << endl;
  179.  
  180.     wypisz(unikalnosc(tab));
  181.     cout << endl;
  182.  
  183.     cout << index(tab, 23);
  184.     cout << endl;
  185.  
  186.     wypisz(czestosc(tab));
  187.     cout << endl;
  188.  
  189.     wypisz(wybierz(tab, 5));
  190.     cout << endl;
  191.  
  192.     wypisz(wybierz(tab, 3, 2));
  193.     cout << endl;
  194.  
  195.     wypisz(generuj(a, 20, 30));
  196.     cout << endl;
  197.  
  198.     wypisz(generuj(a));
  199.     cout << endl;
  200.  
  201.     wypisz(generuj(a, 20));
  202.     cout << endl;
  203.  
  204.     cout << zamieszkajW(znajomy);
  205.     cout << endl;
  206.  
  207.     std::cout << "Hello World!\n";
  208. }
  209.  
  210. // Uruchomienie programu: Ctrl + F5 lub menu Debugowanie > Uruchom bez debugowania
  211. // Debugowanie programu: F5 lub menu Debugowanie > Rozpocznij debugowanie
  212.  
  213. // Porady dotyczące rozpoczynania pracy:
  214. //   1. Użyj okna Eksploratora rozwiązań, aby dodać pliki i zarządzać nimi
  215. //   2. Użyj okna programu Team Explorer, aby nawiązać połączenie z kontrolą źródła
  216. //   3. Użyj okna Dane wyjściowe, aby sprawdzić dane wyjściowe kompilacji i inne komunikaty
  217. //   4. Użyj okna Lista błędów, aby zobaczyć błędy
  218. //   5. Wybierz pozycję Projekt > Dodaj nowy element, aby utworzyć nowe pliki kodu, lub wybierz pozycję Projekt > Dodaj istniejący element, aby dodać istniejące pliku kodu do projektu
  219. //   6. Aby w przyszłości ponownie otworzyć ten projekt, przejdź do pozycji Plik > Otwórz > Projekt i wybierz plik sln
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement