Advertisement
Hiitsu

Untitled

Jun 18th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 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 =0, int w=0 ); //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. {
  37.  
  38. macierz m1,m2,m3;
  39. cout << "Podaj wartosci macierzu m1" << endl;
  40. cin>>m1;
  41. cout << "Podaj wartosci macierzu m2" << endl;
  42. cin>>m2;
  43. m2+=m1;
  44. cout << "Twoj macierz ma wartosci:" << endl << m2 << endl;
  45.  
  46.  
  47. system("pause");
  48. }
  49.  
  50. macierz macierz::operator= (const macierz & m)
  51. {
  52. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  53. {
  54. delete wsk;
  55. wiersze=m.wiersze;
  56. kolumny=m.kolumny;
  57. wsk = new float[wiersze*kolumny];
  58. }
  59. for(int i=0;i<wiersze*kolumny;i++)
  60. {
  61. wsk[i]=m.wsk[i];
  62. }
  63. return *this;
  64. }
  65. macierz macierz::operator+= (const macierz & m)
  66. {
  67. if(wiersze!=m.wiersze || kolumny!=m.kolumny)
  68. {
  69. cout<<"Macierze te nie można dodawać do siebie"<<endl;
  70. return *this;
  71. }
  72. else
  73. {
  74. for(int i=0;i<wiersze*kolumny;i++)
  75. {
  76. wsk[i]=wsk[i]+m.wsk[i];
  77. }
  78. return *this;
  79. }
  80. }
  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. void macierz::wypisz()
  99. {
  100. for(int i=1;i<=wiersze*kolumny;i++)
  101. {
  102. if (i%wiersze==0) cout<<endl;
  103. cout<<wsk[i]<<" ";
  104. }
  105. }
  106. void macierz::wpisz()
  107. {
  108. for(int i=1;i<=wiersze*kolumny;i++)
  109. {
  110. cin>>wsk[i];
  111. }
  112. }
  113. istream & operator>> (istream & is, macierz & m)
  114. {
  115. for (int i=0;i<m.wiersze*m.kolumny;i++)
  116. {
  117. is>>m.wsk[i];
  118. }
  119. return is;
  120. }
  121. ostream & operator<< (ostream & os, const macierz & m)
  122. {
  123. for(int i=0;i<m.wiersze*m.kolumny;i++)
  124. {
  125. if (i%m.wiersze==0) os<<endl;
  126. os<<m.wsk[i]<<" ";
  127. }
  128. return os;
  129. }
  130. macierz::~macierz(){delete wsk;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement