Advertisement
MeehoweCK

Untitled

Apr 29th, 2024
836
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.14 KB | None | 0 0
  1. #include <fstream>
  2. #include <vector>
  3. #include <iostream>
  4.  
  5. void maxmin(const std::vector<int>& wektor, int &maxLiczba, int &minLiczba) {
  6.     auto rozmiar{ wektor.size() };
  7.  
  8.     maxLiczba = wektor[0];
  9.     minLiczba = wektor[0];
  10.  
  11.     for (auto i{ 1 }; i < rozmiar; ++i) {
  12.         if (wektor[i] > maxLiczba) {
  13.             maxLiczba = wektor[i];
  14.         }
  15.         else if (wektor[i] < minLiczba) {
  16.             minLiczba = wektor[i];
  17.         }
  18.     }
  19. }
  20.  
  21. std::string odwrocCiag(const std::string& ciag) {
  22.     std::string wynik{};
  23.     for (int i{ static_cast<int>(ciag.size() - 1) }; i >= 0; --i) {
  24.         wynik += ciag[i];
  25.     }
  26.     return wynik;
  27. }
  28.  
  29. std::string zamienNaBinarna(int liczba) {
  30.     std::string wynik{};
  31.     while (liczba > 0) {
  32.         wynik += (liczba % 2 == 0 ? '0' : '1');
  33.         liczba /= 2;
  34.     }
  35.     return odwrocCiag(wynik);
  36. }
  37.  
  38. void wypiszParzyste(const std::vector<int>& wektor) {
  39.     std::cout << "Liczby parzyste:\t";
  40.     std::ofstream plik{ "liczby2.txt" };
  41.     for (const auto& x : wektor) {
  42.         if (x % 2 == 0) {
  43.             std::cout << x << '\t';
  44.             plik << x << std::endl;
  45.         }
  46.     }
  47.     plik.close();
  48.     std::cout << std::endl;
  49. }
  50.  
  51. int main() {
  52.     std::ifstream plik{ "liczby.txt" };     // utworzenie obiektu wyjścia z podłączonym plikiem txt
  53.     int liczba;
  54.     std::vector<int> wektorLiczb{};         // zainicjowanie pustego wektora przechowującego liczby
  55.     while (plik >> liczba) {
  56.         wektorLiczb.push_back(liczba);      // dodanie liczby do wektora
  57.     }
  58.     plik.close();
  59.  
  60.     int maxLiczba, minLiczba;
  61.     maxmin(wektorLiczb, maxLiczba, minLiczba);
  62.     std::cout << "Najwieksza liczba wynosi " << maxLiczba << ", a najmniejsza wynosi " << minLiczba << std::endl;
  63.  
  64.     std::cout << "Liczby w zapisie binarnym:\n";
  65.     auto suma{ 0 };
  66.     for (const auto& x : wektorLiczb) {
  67.         std::cout << '\t' << x << '\t' << zamienNaBinarna(x) << std::endl;
  68.         suma += x;
  69.     }
  70.  
  71.     std::cout << "Zapis binarny najwiekszej liczby: " << zamienNaBinarna(maxLiczba) << std::endl;
  72.     std::cout << "Suma wszystkich liczb wynosi " << suma << std::endl;
  73.  
  74.     auto sumaOstatnichCyfr{ suma % 10 };
  75.     suma /= 10;
  76.     sumaOstatnichCyfr += suma % 10;
  77.     std::cout << "Suma ostatnich dwoch cyfr z sumy liczb wynosi " << sumaOstatnichCyfr << std::endl;
  78.  
  79.     wypiszParzyste(wektorLiczb);
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement