Guest User

Untitled

a guest
Nov 11th, 2014
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.11 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. //fragment main:
  3. macierz mac_m1(rozmiar,k); //k- kolumny, rozmiar - wiersze (z rozmiaru wektora, aby mozna bylo potem mnozyc macierz przez "wektor")
  4. cout<<"Macierz 1:"<<endl;
  5. mac_m1.wyswietl();
  6.  
  7. cout<<"Macierz 2 - skopiowana macierz nr 1:"<<endl;
  8. macierz mac_m2(mac_m1);
  9. mac_m2.wyswietl();
  10.  
  11. macierz mac_m3 = mac_m1 + mac_m2;
  12. cout<<"\nMacierz nr 3: suma macierzy 1 i 2:"<<endl;
  13. mac_m3.wyswietl();
  14. cout<<"\nMacierz nr 2"<<endl;
  15. mac_m2.wyswietl();
  16. cout<<"\nMacierz nr 1"<<endl;
  17. mac_m1.wyswietl();
  18.  
  19.  
  20.  
  21. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  22. //fragment pliku naglowkowego (jakby co to zalozenie do stworzenia programu to 3 konstruktory)
  23. class macierz
  24. {
  25. private:
  26.     double **mac_tab;
  27.     uint32_t w,k;
  28.     static double liczba_mac;
  29. public:
  30.     macierz(uint32_t w, uint32_t k); //konstruktor tworzacy macierz
  31.     macierz (uint32_t w, uint32_t k, const double **mac_tab); //przekazuje elementy do 1-szej macierzy, na razie nie korzystam z niego
  32.     macierz(const macierz &mac_do_skop); //konstruktor kopiujący
  33.  
  34.     void wyswietl() const;
  35.  
  36.     ~macierz(void);
  37.  
  38.     //dodawanie
  39.    
  40.     void dodaj(const macierz &b);
  41.     macierz operator+(const macierz &b);
  42.  
  43. };
  44. #endif
  45.  
  46.  
  47. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  48. //fragment pliku .cpp
  49.  
  50.  
  51.  
  52.  macierz::~macierz(void)
  53. {
  54. }
  55.  
  56.  macierz::macierz(uint32_t w, uint32_t k) : w(w), k(k)
  57. {
  58.  
  59.     this->mac_tab = new double *[w];
  60.     for (int i = 0; i<w; i++)
  61.     {
  62.         mac_tab[i] = new double [k];
  63.     };
  64.  
  65.     //ZeroMemory(*mac_tab, w*k*sizeof(double));
  66.  
  67.     for (int a = 0; a<w; a++)
  68.     {
  69.         for (int b = 0; b<k; b++)
  70.         {
  71.         mac_tab[a][b]=rand() % 5;
  72.         };
  73.     };
  74. }
  75.  
  76. macierz::macierz(uint32_t w, uint32_t k, const double **mac_tab)
  77. {
  78.     assert(*mac_tab != NULL);
  79.     assert(w > 0);
  80.     assert(k > 0);
  81.     this->k = k;
  82.     this->w = w;
  83.     this->mac_tab = new double *[w];
  84.     for (int i = 0; i<w; i++)
  85.     {
  86.         mac_tab[i] = new double [k];
  87.     };
  88.  
  89.     for (int i = 0; i<w; i++)
  90.     {
  91.         for (int j = 0; j<k; j++)
  92.         {
  93.             this->mac_tab[i][j]=rand() % 5; // losowe liczby calkowite z przedzialu [0,4]
  94.         };
  95.     };
  96. }
  97.  
  98.  macierz::macierz(const macierz &mac_do_skop)
  99. {
  100.     this->w = mac_do_skop.w;
  101.     this->k = mac_do_skop.k;
  102.     this->mac_tab = new double *[this->w];
  103.     for (int i = 0; i<w; i++)
  104.     {
  105.         mac_tab[i] = new double [this->k];
  106.     };
  107.     memcpy(this->mac_tab, mac_do_skop.mac_tab, this->w*this->k*sizeof(double)); //kopiuje zawartosc macierzy
  108. }
  109.  
  110.  void macierz::wyswietl() const
  111. {
  112.     for (int i = 0; i<w; i++)
  113.     {
  114.         for (int j = 0; j<k; j++)
  115.         {
  116.             cout<<mac_tab[i][j]<<" ";
  117.         };
  118.         cout<<endl;
  119.     };
  120. }
  121.  
  122.  
  123. ////////////////////DODAWANIE
  124.  
  125.  
  126. void macierz::dodaj(const macierz &b)
  127. {
  128.     assert(this->k== b.k);
  129.     assert(this->w== b.w);
  130.     for (uint32_t i = 0; i < this->w; i++)
  131.     {
  132.         for (uint32_t j = 0; j < this->k; j++)
  133.         {
  134.             this->mac_tab[i][j] += b.mac_tab[i][j];
  135.         }
  136.     }
  137. }
  138.  
  139. macierz macierz::operator+(const macierz &b)
  140. {
  141.     macierz temp(*this);
  142.     temp.dodaj(b);
  143.     return temp;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment