- #include "stdafx.h"
- #include "iostream"
- #include "vector"
- #include <map>
- #include <stdlib.h>
- using namespace std;
- int suma(vector<int>liczby)
- {
- int wynik = 0;
- for (int i = 0; i < liczby.size(); i++)
- {
- wynik += liczby[i];
- }
- return wynik;
- }
- float srednia(vector<int>liczby)
- {
- float wynik = suma(liczby);
- return wynik / liczby.size();
- }
- void wyswietl(vector<int>liczby, char separator = '\t')
- {
- for (int i = 0; i < liczby.size(); i++)
- {
- cout << liczby[i] << separator;
- }
- cout << endl;
- }
- int max(vector<int>liczby)
- {
- int wynik = liczby[0];
- for (int i = 0; i < liczby.size(); i++)
- {
- if (wynik < liczby[i])
- {
- wynik = liczby[i];
- }
- }
- return wynik;
- }
- int min(vector<int>liczby)
- {
- int wynik = liczby[0];
- for (int i = 0; i < liczby.size(); i++)
- {
- if (wynik > liczby[i])
- {
- wynik = liczby[i];
- }
- }
- return wynik;
- }
- int nalezy(vector<int>liczby, int x)
- {
- for (int i = 0; i < liczby.size(); i++)
- {
- if (x == liczby[i])
- {
- return true;
- }
- }
- return false;
- }
- int zawiera(vector<int>liczby, vector<int>numery)
- {
- for (int i = 0; i < numery.size(); i++)
- {
- if (!nalezy(liczby, numery[i]))
- {
- return false;
- }
- }
- return true;
- }
- vector<int>unikalnosc(vector<int>liczby)
- {
- vector<int>wynik;
- for (int i = 0; i < liczby.size(); i++)
- {
- if (!nalezy(wynik, liczby[i]))
- {
- wynik.push_back(liczby[i]);
- }
- }
- return wynik;
- }
- bool CzyNalezy(map<int, int>mapa, int x)
- {
- for each(auto element in mapa)
- {
- if (element.first == x)
- {
- return true;
- }
- }
- return false;
- }
- bool CzyNalezyIndeks(map<int, int>mapa, int wartosc)
- {
- for each(auto element in mapa)
- {
- if (element.first == wartosc)
- {
- return true;
- }
- }
- return false;
- }
- map<int, int>czestotliwosc(vector<int>liczby)
- {
- map<int, int>wynik;
- for (int i = 0; i < liczby.size(); i++)
- {
- if (!CzyNalezyIndeks(wynik, liczby[i]))
- {
- wynik.insert(pair<int, int>(liczby[i], 1));
- }
- else
- {
- wynik[liczby[i]]++;
- }
- }
- return wynik;
- }
- void wyswietl(map<int, int>mapa)
- {
- for each (auto item in mapa)
- {
- cout << item.first << "=>" << item.second << " ";
- }
- cout << endl;
- }
- vector<int>generuj(int ile, unsigned zakres = 1000)
- {
- vector<int>wynik;
- for (int i = 0; i < ile; i++)
- {
- int liczba = rand() % zakres;
- wynik.push_back(liczba);
- }
- return wynik;
- }
- vector<vector<int>>generuj(int wiersze, int kolumny, unsigned zakres = 1000)
- {
- vector<vector<int>>wynik;
- for (int i = 0; i < wiersze; i++)
- {
- vector<int>element = generuj(kolumny, zakres);
- wynik.push_back(element);
- }
- return wynik;
- }
- void wyswietl(vector<vector<int>>tab)
- {
- for (int i = 0; i < tab.size(); i++)
- {
- wyswietl(tab[i]);
- }
- cout << endl;
- }
- vector<int>kolumna(vector<vector<int>>tab, int nrkolumny)
- {
- vector<int>wynik;
- for (int i = 0; i < tab.size(); i++)
- {
- int liczby = tab[i][nrkolumny];
- wynik.push_back(liczby);
- }
- return wynik;
- }
- vector<int>zamiana(vector<vector<int>>tab, int ile)
- {
- vector<int>wynik;
- for (int i = 0; i < tab.size(); i++)
- {
- for (int j = 0; j < ile; j++)
- {
- int liczby = tab[i][j];
- wynik.push_back(liczby);
- }
- }
- return wynik;
- }
- vector<int>Indeksy(vector<vector<int>>tab, int minimum, int ile)
- {
- vector<int>wynik;
- for (int i = 0; i < tab.size(); i++)
- {
- for (int j = 0; j < ile; j++)
- {
- int liczby = tab[i][j];
- if (liczby == minimum)
- {
- wynik.push_back(i);
- wynik.push_back(j);
- }
- }
- }
- return wynik;
- }
- void wyswietl(vector<int>liczby, int z)
- {
- int x = 0;
- for (int i = 0; i < liczby.size(); i++)
- {
- cout << liczby[i];
- x++;
- if (x % 2 == 0)
- {
- cout << "-";
- }
- }
- cout << endl;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- int arr[] = { 8, 3, 3, 4, 4, 6, 4, 8, 3 };
- int arr_l = end(arr) - begin(arr);
- vector<int>liczby(arr, arr + arr_l);
- vector<int>numery;
- numery.push_back(5);
- numery.push_back(1);
- numery.push_back(3);
- wyswietl(liczby);
- cout << suma(liczby) << endl;
- cout << srednia(liczby) << endl;
- cout << max(liczby) << endl;
- cout << min(liczby) << endl;
- cout << nalezy(liczby, 11) << endl;
- //-----------------------------------zawiera
- if (zawiera(liczby, numery) == 1){ cout << "podzbior zawiera sie w zbiorze" << endl; }
- else{ cout << "podzbior nie zawiera sie w zbiorze" << endl; }
- //-----------------------------------unikalnosc
- wyswietl(liczby);
- vector<int>wynik = unikalnosc(liczby);
- wyswietl(wynik);
- //-----------------------------------
- map<int, int>mapa;
- mapa.insert(pair<int, int>(1, 3));
- mapa.insert(pair<int, int>(3, 6));
- mapa.insert(pair<int, int>(6, 9));
- int te = CzyNalezy(mapa, 3);
- cout << te << endl;
- cout << "ilosc elementow w mapie: " << mapa.size() << endl;
- cout << "pierwszy element w mapie: " << mapa[1] << endl;
- wyswietl(czestotliwosc(liczby));
- vector<vector<int>>tab;
- wyswietl(generuj(5));
- vector<vector<int>> m = generuj(5, 4);
- wyswietl(m);
- vector<int> kol = kolumna(m, 3);
- wyswietl(kol, '\n');
- vector<vector<int>>u = generuj(5, 4);
- wyswietl(u);
- vector<int>k = kolumna(u, 2);
- wyswietl(k, '\n');
- map<int, int>plcie = czestotliwosc(kol);
- wyswietl(plcie);
- wyswietl(generuj(5, 5, 3));
- int wiersze = 3;
- int kolumny = 4;
- int zakres = 10;
- vector<vector<int>>www = generuj(kolumny, wiersze, zakres);
- wyswietl(www);
- vector<int>testo = zamiana(www, wiersze);
- cout << "wartosc najmniejsza : " << min(testo) << endl;
- vector<int>raczan = Indeksy(www, min(testo), wiersze);
- cout << "Ilosc minimalnych Indeksow : " << raczan.size() / 2 << endl;
- cout << "indeksy pod ktorymi jest dana wartosc : "; wyswietl(raczan, 1);
- cout << kolumna << endl;
- system("pause");
- return 0;
- }
- // i wiersz , j kolumna
- // tab // vector<vector<int>>
- // tab[i] // vector<int>
- // tab[i][j] // int
- // w domu
- // Wyszukaj minimum w 2D macierzy
- // WskaĹź indeksy dla ktorych ta wartoĹ?Ä? stoi
- // nauka własna śr 19:30-21:00, nd 17:00-18:30
- // ogarnij wskazniki