Advertisement
MeehoweCK

Untitled

Apr 29th, 2024
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 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. int main() {
  39.     std::ifstream plik{ "liczby.txt" };     // utworzenie obiektu wyjścia z podłączonym plikiem txt
  40.     int liczba;
  41.     std::vector<int> wektorLiczb{};         // zainicjowanie pustego wektora przechowującego liczby
  42.     while (plik >> liczba) {
  43.         wektorLiczb.push_back(liczba);      // dodanie liczby do wektora
  44.     }
  45.     plik.close();
  46.  
  47.     int maxLiczba, minLiczba;
  48.     maxmin(wektorLiczb, maxLiczba, minLiczba);
  49.     std::cout << "Najwieksza liczba wynosi " << maxLiczba << ", a najmniejsza wynosi " << minLiczba << std::endl;
  50.  
  51.     std::cout << "Liczby w zapisie binarnym:\n";
  52.     auto suma{ 0 };
  53.     for (const auto& x : wektorLiczb) {
  54.         std::cout << '\t' << x << '\t' << zamienNaBinarna(x) << std::endl;
  55.         suma += x;
  56.     }
  57.  
  58.     std::cout << "Zapis binarny najwiekszej liczby: " << zamienNaBinarna(maxLiczba) << std::endl;
  59.     std::cout << "Suma wszystkich liczb wynosi " << suma << std::endl;
  60.  
  61.     auto sumaOstatnichCyfr{ suma % 10 };
  62.     suma /= 10;
  63.     sumaOstatnichCyfr += suma % 10;
  64.     std::cout << "Suma ostatnich dwoch cyfr z sumy liczb wynosi " << sumaOstatnichCyfr << std::endl;
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement