MeehoweCK

Untitled

Sep 30th, 2020
560
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. void wypelnij_tablice(int* tablica, unsigned rozmiar)
  8. {
  9.     for(unsigned i = 0; i < rozmiar; ++i)
  10.         tablica[i] = 1 + rand() % 100;
  11. }
  12.  
  13. void wypisz_tablice(int* tablica, unsigned rozmiar)
  14. {
  15.     for(unsigned i = 0; i < rozmiar; ++i)
  16.         cout << tablica[i] << '\t';
  17.     cout << endl;
  18. }
  19.  
  20. int main()
  21. {
  22.     srand(static_cast<unsigned>(time(nullptr)));
  23.  
  24.     /*char znak = 'w';
  25.     cout << znak << '\t' << static_cast<int>(znak) << endl;*/
  26.  
  27.  
  28.     unsigned wielkosc;
  29.     cout << "Podaj wielkosc tablicy: ";
  30.     cin >> wielkosc;
  31.  
  32.     int* tablica = new int[wielkosc];       // dynamiczne alokowanie pamięci
  33.     wypelnij_tablice(tablica, wielkosc);
  34.     wypisz_tablice(tablica, wielkosc);
  35.  
  36.     // DODAWANIE WARTOSCI
  37.     /*
  38.     1. tworzymy nową tablicę (tymczasową) o dotychczasowym rozmiarze
  39.     2. kopiujemy wszystkie wartości z tablicy do tablicy tymczasowej
  40.     3. zwalniamy pamięć dotychczasowej tablicy
  41.     4. do pierwotnego wskaźnika (tablica) przydzielamy nową tablicę o rozmiarze o 1 większym od dotychczasowego
  42.     5. do nowej tablicy kopiujemy wszystko z tablicy tymczasowej
  43.     6. na koniec tablicy wpisujemy wartość nowego elementu
  44.     7. zwalniamy pamięć przeznaczoną na tablicę tymczasową
  45.     */
  46.  
  47.     // 1
  48.     int* temp = new int[wielkosc];
  49.     // 2
  50.     for(unsigned i = 0; i < wielkosc; ++i)
  51.         temp[i] = tablica[i];
  52.     // 3
  53.     delete[] tablica;
  54.     // 4
  55.     tablica = new int[wielkosc + 1];
  56.     // 5
  57.     for(unsigned i = 0; i < wielkosc; ++i)
  58.         tablica[i] = temp[i];
  59.     // 6
  60.     tablica[wielkosc] = 100;
  61.     // 7
  62.     delete[] temp;
  63.  
  64.     ++wielkosc;
  65.  
  66.  
  67.     wypisz_tablice(tablica, wielkosc);
  68.  
  69.     delete[] tablica;                       // zwolnienie pamięci
  70.  
  71.     return 0;
  72. }
RAW Paste Data