Advertisement
pan7nikt

k4.cpp

Jan 7th, 2024
1,224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. struct warzywo
  7. {
  8.     char rodzaj [30];
  9.     int jakosc;
  10.     float masa;
  11. };
  12.  
  13.  
  14. //Zadanie 2
  15. warzywo** tablicadyn(int x, int y)
  16. {
  17.     warzywo **tab = new warzywo*[x];
  18.     for(int i=0; i<y; i++)
  19.     {
  20.         tab[i] = new warzywo[x];
  21.     }
  22.     return tab;
  23. }
  24.  
  25. //Zadanie 3
  26. void pobieranie(warzywo& w)
  27. {
  28.     char rodzaj[30] = "";
  29.     int jakosc = 0;
  30.     float masa = 0.0;
  31.  
  32.     cout << "Podaj rodzaj: ";
  33.     cin >> w.rodzaj;
  34.     cout << "\nPodaj jakosc: ";
  35.     cin >> jakosc;
  36.     cout << "\nPodaj mase: ";
  37.     cin >> masa;
  38.  
  39.     w.jakosc = jakosc;
  40.     w.masa = masa;
  41. }
  42.  
  43. //Zadanie 4
  44. bool zapis(warzywo w[], int rozmiar, string nazwa)
  45. {
  46.     ofstream plik(nazwa);
  47.     if(!plik){return false;}
  48.     for(int i=0;i<rozmiar;i++)
  49.     {
  50.         plik << w[i].rodzaj << " " << w[i].jakosc << " " << w[i].masa << " " << endl;
  51.     }
  52.     return true;
  53. }
  54.  
  55. //Zadanie 5 (sprawdź parzystość bitów w int)
  56. bool parzyste(int x)
  57. {
  58.     int parzysta = 0;
  59.     while(x > 0)
  60.     {
  61.         //parzysta + AND z pierwszego bitu z jedynką (robimy licznik jedynek)
  62.         parzysta = parzysta + (x & 1);
  63.         //Bit shift o jedną w prawo (np. 0110 -> 0011)
  64.         x >>= 1;
  65.     }
  66.     //DEBUG
  67.     //cout << "Parzysta: " << parzysta << "\n";
  68.  
  69.     //Reszta dzielenia z sumy jedynek przez 2
  70.     parzysta = parzysta % 2;
  71.  
  72.     //DEBUG
  73.     //cout << "Parzysta po mod: " << parzysta << "\n";
  74.  
  75.     //Zwracamy odwróconą wartość (bo reszta jest 1 jak liczba jest nieparzysta, a my chcemy na odwrót)
  76.     return parzysta;
  77. }
  78.  
  79. int main()
  80. {
  81. //Zad 5
  82. cout << parzyste(3);
  83.  
  84. //Zad 1
  85.  
  86.     warzywo w;
  87. pobieranie(w);
  88. cout << "\nRodzaj to: " << w.rodzaj;
  89. cout << "\nJakosc to: " << w.jakosc;
  90. cout << "\nMasa to: " << w.masa;
  91.  
  92. //Dane do zadania 4
  93. string nazwa;
  94. int rozmiar = 3;
  95. warzywo warzywa[3];
  96.  
  97. for(int i=0;i<rozmiar;i++)
  98. {
  99.     cout << "Podaj rodzaj: ";
  100.     cin >> warzywa[i].rodzaj;
  101.     cout << "\nPodaj jakosc: ";
  102.     cin >> warzywa[i].jakosc;
  103.     cout << "\nPodaj mase: ";
  104.     cin >> warzywa[i].masa;
  105. };
  106.  
  107. cout << "\nPodaj nazwe pliku: ";
  108. cin >> nazwa;
  109. cout << "\nPodaj rozmiar tablicy warzyw: ";
  110. zapis(warzywa, rozmiar, nazwa);
  111. system("pause");
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement