Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.31 KB | None | 0 0
  1. // main.cpp
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include "Tablica.hpp"
  6. #include "Head.hpp"
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.     srand(static_cast<unsigned>(time(nullptr)));
  13.     int wielkosc_tablicy;
  14.     cin >> wielkosc_tablicy;
  15.     Tablica nasza_tablica(wielkosc_tablicy);
  16.     nasza_tablica.wypisz_tablice();
  17.    
  18.     cout << "\nWpisz wartosc, jaka chcesz dodac do tablicy: ";
  19.     int nowa_wartosc;
  20.     cin >> nowa_wartosc;
  21.     nasza_tablica.dodaj_wartosc(nowa_wartosc);
  22.     nasza_tablica.wypisz_tablice();
  23.    
  24.     cout << "\nWpisz nowy rozmiar dla istniejącej tablicy: ";
  25.     int nowy_rozmiar;
  26.     cin >>nowy_rozmiar;
  27.     nasza_tablica.zmien_rozm(nowy_rozmiar);
  28.     nasza_tablica.wypisz_tablice();
  29.    
  30.     cout <<"\nWpisz rozmiar tablicy, która będzie dodana do istniejącej: ";
  31.     int rozm_dod;
  32.     cin >>rozm_dod;
  33.     //dod_tablica
  34.     return 0;
  35. }
  36. // Tablica.cpp
  37.  
  38. #include <cstdlib>
  39. #include <iostream>
  40. #include "Head.hpp"
  41. #include "Tablica.hpp"
  42.  
  43. using namespace std;
  44.  
  45. /*class Tablica
  46. {
  47.     private:
  48.         int* tab;   //zmienne lepiej definiować w privite
  49.         int rozmiar;
  50.     public:
  51.         Tablica(int);
  52.         ~Tablica();
  53.         void dodaj_wartosc(int);    //obiekty lepiej definiowac w public
  54.         void wypisz_tablice();
  55.         void zmien_rozm(int);
  56.         void dodaj_znaczenia(int);
  57. };*/
  58.  
  59.  
  60.  
  61. Tablica::Tablica(int wielkosc) : rozmiar(wielkosc) // definicja konstruntora + def. rozmiaru
  62. {
  63.     tab = new int[rozmiar]; // nie trzeba więcej wstawiać int*
  64.     for(int i = 0; i < rozmiar; ++i)
  65.         tab[i] = rand() % (MAKS + 1);
  66. }
  67.  
  68. Tablica::~Tablica()
  69. {
  70.     delete[] tab;
  71.     cout << "Usunieto tablice\n";
  72. }
  73.  
  74. void Tablica::dodaj_wartosc(int wartosc) //nowa wartosc (100)
  75. {
  76.     int* tab1 = new int[rozmiar];
  77.     for(int i = 0; i < rozmiar; ++i)
  78.         tab1[i] = tab[i];
  79.     delete[] tab;
  80.     tab = new int[rozmiar + 1];
  81.     tab[rozmiar] = wartosc;
  82.     for(int i = 0; i < rozmiar; ++i)
  83.         tab[i] = tab1[i];
  84.     delete[] tab1;
  85.     ++rozmiar;  //mam wewnącz klasy dostęp do privite
  86. }
  87.  
  88. void Tablica::zmien_rozm(int rozm2)
  89. {
  90.     if(rozm2 < rozmiar)
  91.     {
  92.         int* temp = new int[rozm2];
  93.         for(int i = 0; i < rozm2; ++i)
  94.             temp[i] = tab[i];
  95.         delete[] tab;
  96.  
  97.         tab = new int[rozm2];
  98.         for(int i = 0; i < rozm2; ++i)
  99.             tab[i] = temp[i];
  100.         delete[] temp;
  101.     }
  102.  
  103.     if(rozm2 > rozmiar)
  104.     {
  105.         int* temp = new int[rozmiar];
  106.         for(int i = 0; i < rozmiar; ++i)
  107.             temp[i] = tab[i];
  108.         delete[] tab;
  109.  
  110.         tab = new int[rozm2];
  111.         for(int i = 0; i < rozmiar; ++i)
  112.             tab[i] = temp[i];
  113.         for(int i = rozmiar; i < rozm2; ++i)
  114.             tab[i] = 0;
  115.         delete[] temp;
  116.     }
  117.     rozmiar = rozm2;
  118. }
  119. void Tablica::wypisz_tablice()
  120. {
  121.     for(int i = 0; i < rozmiar; ++i)
  122.         cout << tab[i] <<'\t';
  123. }
  124.  
  125. #include <stdio.h>
  126.  
  127.  
  128.  
  129. class Tablica
  130. {
  131.     private:
  132.         int* tab;   //zmienne lepiej definiować w privite
  133.         int rozmiar;
  134.     public:
  135.         Tablica(int);
  136.         ~Tablica();
  137.         void dodaj_wartosc(int);    //obiekty lepiej definiowac w public
  138.         void wypisz_tablice();
  139.         void zmien_rozm(int);
  140.         void dodaj_tablice(int);
  141. };
  142.  
  143. #endif /* Tablica_hpp */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement