Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //fragment main:
- macierz mac_m1(rozmiar,k); //k- kolumny, rozmiar - wiersze (z rozmiaru wektora, aby mozna bylo potem mnozyc macierz przez "wektor")
- cout<<"Macierz 1:"<<endl;
- mac_m1.wyswietl();
- cout<<"Macierz 2 - skopiowana macierz nr 1:"<<endl;
- macierz mac_m2(mac_m1);
- mac_m2.wyswietl();
- macierz mac_m3 = mac_m1 + mac_m2;
- cout<<"\nMacierz nr 3: suma macierzy 1 i 2:"<<endl;
- mac_m3.wyswietl();
- cout<<"\nMacierz nr 2"<<endl;
- mac_m2.wyswietl();
- cout<<"\nMacierz nr 1"<<endl;
- mac_m1.wyswietl();
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //fragment pliku naglowkowego (jakby co to zalozenie do stworzenia programu to 3 konstruktory)
- class macierz
- {
- private:
- double **mac_tab;
- uint32_t w,k;
- static double liczba_mac;
- public:
- macierz(uint32_t w, uint32_t k); //konstruktor tworzacy macierz
- macierz (uint32_t w, uint32_t k, const double **mac_tab); //przekazuje elementy do 1-szej macierzy, na razie nie korzystam z niego
- macierz(const macierz &mac_do_skop); //konstruktor kopiujący
- void wyswietl() const;
- ~macierz(void);
- //dodawanie
- void dodaj(const macierz &b);
- macierz operator+(const macierz &b);
- };
- #endif
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //fragment pliku .cpp
- macierz::~macierz(void)
- {
- }
- macierz::macierz(uint32_t w, uint32_t k) : w(w), k(k)
- {
- this->mac_tab = new double *[w];
- for (int i = 0; i<w; i++)
- {
- mac_tab[i] = new double [k];
- };
- //ZeroMemory(*mac_tab, w*k*sizeof(double));
- for (int a = 0; a<w; a++)
- {
- for (int b = 0; b<k; b++)
- {
- mac_tab[a][b]=rand() % 5;
- };
- };
- }
- macierz::macierz(uint32_t w, uint32_t k, const double **mac_tab)
- {
- assert(*mac_tab != NULL);
- assert(w > 0);
- assert(k > 0);
- this->k = k;
- this->w = w;
- this->mac_tab = new double *[w];
- for (int i = 0; i<w; i++)
- {
- mac_tab[i] = new double [k];
- };
- for (int i = 0; i<w; i++)
- {
- for (int j = 0; j<k; j++)
- {
- this->mac_tab[i][j]=rand() % 5; // losowe liczby calkowite z przedzialu [0,4]
- };
- };
- }
- macierz::macierz(const macierz &mac_do_skop)
- {
- this->w = mac_do_skop.w;
- this->k = mac_do_skop.k;
- this->mac_tab = new double *[this->w];
- for (int i = 0; i<w; i++)
- {
- mac_tab[i] = new double [this->k];
- };
- memcpy(this->mac_tab, mac_do_skop.mac_tab, this->w*this->k*sizeof(double)); //kopiuje zawartosc macierzy
- }
- void macierz::wyswietl() const
- {
- for (int i = 0; i<w; i++)
- {
- for (int j = 0; j<k; j++)
- {
- cout<<mac_tab[i][j]<<" ";
- };
- cout<<endl;
- };
- }
- ////////////////////DODAWANIE
- void macierz::dodaj(const macierz &b)
- {
- assert(this->k== b.k);
- assert(this->w== b.w);
- for (uint32_t i = 0; i < this->w; i++)
- {
- for (uint32_t j = 0; j < this->k; j++)
- {
- this->mac_tab[i][j] += b.mac_tab[i][j];
- }
- }
- }
- macierz macierz::operator+(const macierz &b)
- {
- macierz temp(*this);
- temp.dodaj(b);
- return temp;
- }
Advertisement
Add Comment
Please, Sign In to add comment