smutnyjoe

Untitled

Dec 20th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.74 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4. #include <sstream>
  5.  
  6. using namespace std;
  7.  
  8. void wypisz(vector<int>& x){
  9.     for (int i : x)
  10.         cout << i << " ";
  11.  
  12.     cout << endl;
  13. }
  14.  
  15. void sortuj(vector<int> &a) {
  16.  
  17.     for (int i = 5; i >= 0; i--)
  18.         for (int j = 1; j <= i; j++ )
  19.             if (a[j-1] > a[j]) {
  20.                 int tmp = a[j];
  21.                 a[j] = a[j-1];
  22.                 a[j-1] = tmp;
  23.             }
  24.  
  25. }
  26.  
  27.  
  28. // Ta funkcja otwiera plik o nazwie filename. Jeśli udało się otworzyć plik o tej nazwie, to zwraca jego handler.
  29. // W przeciwnym wypadku kończy działanie programu z kodem -1.
  30. ifstream otworz_plik(const string& filename) {
  31.     ifstream plik;
  32.  
  33.     plik.open(filename);
  34.     if( !plik.good() ){
  35.         cout << "Nie można wczytać pliku" << endl;
  36.         exit(-1);
  37.     }
  38.  
  39.     return plik;
  40.  
  41. }
  42.  
  43. // wczytuje liczby do macierzy, linia po linii, z pliku przekazanego jako argument. zwraca tę macierz.
  44. vector<vector<int>> wczytaj_obraz(ifstream &plik) {
  45.     vector<vector<int>> dupa;
  46.  
  47.     string linia;
  48.     while( getline(plik, linia) ) {
  49.         vector<int> v;
  50.         stringstream iss (linia);
  51.         int number;
  52.         while ( iss >> number )
  53.             v.push_back(number);
  54.         dupa.push_back(v);
  55.     }
  56.  
  57.     return dupa;
  58. }
  59.  
  60. // Ta funkcja wypisuje najjaniejszy i najciemniejszy kolor ( reprezentowany przez int ) z macierzy "o".
  61. void najjasniejszy_najciemniejszy(vector<vector<int>>& o) {
  62.  
  63.     int najciemniejszy, najjasniejszy;
  64.     najjasniejszy = najciemniejszy = o[0][0];
  65.  
  66.     for(int i = 0; i < o.size(); i++ ){
  67.         for(int j = 0; j < o[i].size(); j++ ){
  68.             if( o[i][j] > najjasniejszy )
  69.                 najjasniejszy = o[i][j];
  70.  
  71.             if( o[i][j] < najciemniejszy )
  72.                 najciemniejszy = o[i][j];
  73.         }
  74.     }
  75.     cout << "najjasniejszy: " << najjasniejszy << ", najciemniejszy; " << najciemniejszy << endl;
  76. }
  77.  
  78. // Ta funckja wypisuje liczbe wierszy ktore nie maja symetrii wzgledem linii przechodzacej przez polowe obrazka "o".
  79. void ile_usunac(vector<vector<int>>& o) {
  80.      int ile = 0;
  81.  
  82.      for(int i = 0; i < o.size(); i++ ){
  83.          unsigned long last = o[i].size() - 1;
  84.          unsigned long j = 0;
  85.          while(j < o[i].size() / 2) {
  86.  
  87.              if(o[i][j] != o[i][last - j]) {
  88.                 ile++;
  89.                 break;
  90.              }
  91.              j++;
  92.  
  93.          }
  94.      }
  95.  
  96.      cout << "Aby obraz mial symetrie nalezy usunac " << ile << " wierszy." << endl;
  97. }
  98.  
  99. int main() {
  100.     ifstream plik = otworz_plik("../przyklad.txt");
  101.     vector<vector<int>> obraz = wczytaj_obraz(plik);
  102.  
  103.     // pkt 1
  104.     najjasniejszy_najciemniejszy(obraz);
  105.  
  106.     //pkt 2
  107.     ile_usunac(obraz);
  108.  
  109.     return 0;
  110. }
Add Comment
Please, Sign In to add comment