Advertisement
Hiitsu

Untitled

Jun 18th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class macierz
  6. {
  7. int wiersze;
  8. int kolumny;
  9. float * wsk;
  10. public:
  11. macierz(int k, int w ); //konstruktor domyslny
  12. macierz(const macierz & m); //konstruktor kopiujacy
  13. macierz operator= (const macierz & m); //operator przypisania
  14. macierz operator+= (const macierz & m);
  15. macierz operator-= (const macierz & m);
  16. float operator[] (const int & a);
  17. macierz operator++ ();
  18. macierz operator++ (int);
  19. void wypisz(); // funkcja wypisujaca macierz na ekran
  20. void wpisz(); // funkcja inicjalizujaca wartosci macierzu
  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;
  37. cout<<"Podaj ilosc wierszy:"
  38. cin>>x;
  39. cout<<"Podaj ilosc kolumn:"
  40. cin>>y;
  41.  
  42. macierz m1(x,y);
  43. macierz m2(x,y);
  44. macierz m3(x,y);
  45.  
  46. cout << "Podaj wartosci macierzu m1" << endl;
  47. cin>>m1;
  48. cout << "Podaj wartosci macierzu m2" << endl;
  49. cin>>m2;
  50. m2+=m1;
  51. cout << "Twoj macierz ma wartosci:" << endl << m2 << endl;
  52.  
  53.  
  54. system("pause");
  55. }
  56.  
  57. macierz macierz::operator= (const macierz & m)
  58. {
  59. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  60. {
  61. delete wsk;
  62. wiersze=m.wiersze;
  63. kolumny=m.kolumny;
  64. wsk = new float[wiersze*kolumny];
  65. }
  66. for(int i=0;i<wiersze*kolumny;i++)
  67. {
  68. wsk[i]=m.wsk[i];
  69. }
  70. return *this;
  71. }
  72. macierz macierz::operator+= (const macierz & m)
  73. {
  74. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  75. {
  76. cout<<"Macierze te nie można dodawać do siebie"<<endl;
  77. return *this;
  78. }
  79. else
  80. {
  81. for(int i=0;i<wiersze*kolumny;i++)
  82. {
  83. wsk[i]=wsk[i]+m.wsk[i];
  84. }
  85. return *this;
  86. }
  87. }
  88.  
  89. macierz macierz::operator-= (const macierz & m)
  90. {
  91. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  92. {
  93. cout<<"Macierze te nie można dodawać do siebie"<<endl;
  94. return *this;
  95. }
  96. else
  97. {
  98. for(int i=0;i<wiersze*kolumny;i++)
  99. {
  100. wsk[i]=wsk[i]-m.wsk[i];
  101. }
  102. return *this;
  103. }
  104. }
  105. void macierz::wypisz()
  106. {
  107. for(int i=1;i<=wiersze*kolumny;i++)
  108. {
  109. if (i%wiersze==0) cout<<endl;
  110. cout<<wsk[i]<<" ";
  111. }
  112. }
  113. void macierz::wpisz()
  114. {
  115. for(int i=1;i<=wiersze*kolumny;i++)
  116. {
  117. cin>>wsk[i];
  118. }
  119. }
  120. istream & operator>> (istream & is, macierz & m)
  121. {
  122. for (int i=0;i<m.wiersze*m.kolumny;i++)
  123. {
  124. is>>m.wsk[i];
  125. }
  126. return is;
  127. }
  128. ostream & operator<< (ostream & os, const macierz & m)
  129. {
  130. for(int i=0;i<m.wiersze*m.kolumny;i++)
  131. {
  132. if (i%m.wiersze==0) os<<endl;
  133. os<<m.wsk[i]<<" ";
  134. }
  135. return os;
  136. }
  137. macierz::~macierz(){delete wsk;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement