Advertisement
Hiitsu

Macierz ostatni raz

Jun 18th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. class macierz
  8. {
  9. int wiersze;
  10. int kolumny;
  11. float * wsk;
  12. public:
  13. macierz(int k, int w ); //konstruktor domyslny
  14. macierz(const macierz & m); //konstruktor kopiujacy
  15. macierz operator= (const macierz & m); //operator przypisania
  16. macierz operator+= (const macierz & m); //dodawanie
  17. macierz operator-= (const macierz & m); //odejmowanie
  18. void wypisz(); // funkcja wypisujaca macierz na ekran
  19. void wpisz(); // funkcja inicjalizujaca wartosci macierzu
  20. void wpisz_losowe(); //zapelnienie macierzy losowymi
  21. friend istream & operator>> (istream & is, macierz & m);
  22. friend ostream & operator<<(ostream & os, const macierz & m); //operator wypisania na ekran
  23. ~macierz(); //destruktor
  24. };
  25.  
  26. macierz::macierz(int k,int w):kolumny(k),wiersze(w),wsk(new float[wiersze*kolumny]){};
  27. macierz::macierz(const macierz & m):kolumny(m.kolumny),wiersze(m.wiersze),wsk(new float[kolumny*wiersze])
  28. {
  29. for(int i=0;i<kolumny*wiersze;i++)
  30. {
  31. wsk[i]=m.wsk[i];
  32. }
  33. }
  34.  
  35. int main()
  36. { int x,y,z,c;
  37. cout<<"Podaj ilosc wierszy:";
  38. cin>>x;
  39. cout<<"Podaj ilosc kolumn:";
  40. cin>>y;
  41. cout<<"Podaj ilosc wierszy:";
  42. cin>>z;
  43. cout<<"Podaj ilosc kolumn:";
  44. cin>>c;
  45. macierz m1(x,y);
  46. macierz m2(z,c);
  47. macierz m3(x,y);
  48.  
  49.  
  50.  
  51. cout << "Podaj wartosci macierzu m1" << endl;
  52. cin>>m1;
  53. //cout << "Podaj wartosci macierzu m2" << endl;
  54. //cin>>m2;
  55. m2.wpisz_losowe();
  56. m1.wypisz(x,y);
  57. m2.wypisz(z,c);
  58.  
  59. m2+=m1;
  60.  
  61. cout << "Twoj macierz ma wartosci:" << endl << m2 << endl;
  62.  
  63.  
  64. system("pause");
  65. }
  66.  
  67. macierz macierz::operator= (const macierz & m)
  68. {
  69. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  70. {
  71. delete wsk;
  72. wiersze=m.wiersze;
  73. kolumny=m.kolumny;
  74. wsk = new float[wiersze*kolumny];
  75. }
  76. for(int i=0;i<wiersze*kolumny;i++)
  77. {
  78. wsk[i]=m.wsk[i];
  79. }
  80. return *this;
  81. }
  82. macierz macierz::operator+= (const macierz & m)
  83. {
  84. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  85. {
  86. cout<<"Macierze te nie można dodawać do siebie"<<endl;
  87. return *this;
  88. }
  89. else
  90. {
  91. for(int i=0;i<wiersze*kolumny;i++)
  92. {
  93. wsk[i]=wsk[i]+m.wsk[i];
  94. }
  95. return *this;
  96. }
  97. }
  98.  
  99. macierz macierz::operator-= (const macierz & m)
  100. {
  101. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  102. {
  103. cout<<"Macierzy nie mozna odjac do siebie"<<endl;
  104. return *this;
  105. }
  106. else
  107. {
  108. for(int i=0;i<wiersze*kolumny;i++)
  109. {
  110. wsk[i]=wsk[i]-m.wsk[i];
  111. }
  112. return *this;
  113. }
  114. }
  115. void macierz::wypisz()
  116. {
  117. for(int i=1;i<=wiersze*kolumny;i++)
  118. {
  119. if (i%wiersze==0) cout<<endl;
  120. cout<<wsk[i]<<" ";
  121. }
  122. }
  123. void macierz::wpisz()
  124. {
  125. for(int i=1;i<=wiersze*kolumny;i++)
  126. {
  127. cin>>wsk[i];
  128. }
  129. }
  130. void macierz::wpisz_losowe()
  131. {
  132. srand(time(NULL)); // Inicjalizujemy ziarno pseudolosowości
  133. for (int i = 0; i<=wiersze*kolumny; i++)
  134. {
  135.  
  136. this->wsk[i]=(rand()%666)+1; // Wpisujemy losowe wartości
  137.  
  138. }
  139. }
  140. istream & operator>> (istream & is, macierz & m)
  141. {
  142. for (int i=0;i<m.wiersze*m.kolumny;i++)
  143. {
  144. is>>m.wsk[i];
  145. }
  146. return is;
  147. }
  148. ostream & operator<< (ostream & os, const macierz & m)
  149. {
  150. for(int i=0;i<m.wiersze*m.kolumny;i++)
  151. {
  152. if (i%m.wiersze==0) os<<endl;
  153. os<<m.wsk[i]<<" ";
  154. }
  155. return os;
  156. }
  157. macierz::~macierz(){delete wsk;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement