Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. //wiersz*szerokosc+kolumna
  4. class Tablica2D
  5. {
  6. private:
  7. int m_szerokosc;
  8. int m_wysokosc;
  9. std::string m_nazwa;
  10. int *m_wsk;
  11.  
  12. public:
  13. Tablica2D(int szerokosc=1,int wysokosc=1,std::string nazwa="Tabelka"):m_szerokosc(szerokosc), m_wysokosc(wysokosc), m_nazwa(nazwa){
  14. std::cout<<"Wywolanie konstruktora\n";
  15. m_wsk=new int[m_szerokosc*m_wysokosc];}
  16.  
  17. Tablica2D(const Tablica2D &tabelka1): m_szerokosc(tabelka1.m_szerokosc), m_wysokosc(tabelka1.m_wysokosc), m_nazwa(tabelka1.m_nazwa)
  18. {
  19. std::cout<<"Wywolanie konstruktora kopiujocego\n";
  20. m_wsk=new int[m_szerokosc*m_wysokosc];
  21. for(int i=0;i<(m_szerokosc*m_wysokosc);++i)
  22. {
  23. m_wsk[i]=tabelka1.m_wsk[i];
  24. }
  25. }
  26.  
  27. void ustawNazwe(std::string nazwa)
  28. {
  29. m_nazwa=nazwa;
  30. }
  31.  
  32. void ustawElement(int wiersz, int kolumna,float wartosc)
  33. {
  34. m_wsk[wiersz*m_szerokosc+kolumna]=wartosc;
  35. }
  36.  
  37. void odczytajElement(int wiersz,int kolumna) const
  38. {
  39. std::cout<<m_wsk[wiersz*m_szerokosc+kolumna]<<"\t";
  40. }
  41.  
  42. Tablica2D dodaj(const Tablica2D &dodawana) const
  43. {
  44. Tablica2D wynik(m_szerokosc,m_wysokosc);
  45. for(int i=0;i<(m_szerokosc*m_wysokosc);++i)
  46. {
  47. wynik.m_wsk[i]=(m_wsk[i]+dodawana.m_wsk[i]);
  48. }
  49. wynik.ustawNazwe("wynik dodawania");
  50. return wynik;
  51. }
  52.  
  53. std::ostream &wyswietl(std::ostream &strumien) const
  54. {
  55. strumien << m_nazwa << std::endl;
  56. for (int i = 0; i < 3; ++i)
  57. {
  58. for (int k = 0; k < 2; ++k)
  59. {
  60. this->odczytajElement(i, k);
  61. }
  62. std::cout << std::endl;
  63. }
  64. strumien << std::endl;
  65. return strumien;
  66. }
  67.  
  68. ~Tablica2D()
  69. {
  70. std::cout << "Wywolanie destruktora\n";
  71. delete m_wsk;
  72. }
  73.  
  74.  
  75. };
  76.  
  77.  
  78.  
  79. void wpis(Tablica2D &tab)
  80. {
  81. for (int i = 0; i < 3; ++i)
  82. {
  83. for (int k = 0; k < 2; ++k)
  84. {
  85. std::cout << "Podaj element do komorki " << i << " " << k << ": ";
  86. float x;
  87. std::cin >> x;
  88. tab.ustawElement(i, k, x);
  89. }
  90. }
  91.  
  92. }
  93.  
  94. int main()
  95. {
  96. Tablica2D tab1{ 2,3,"Tablica I" };
  97. Tablica2D tab2{ 2,3 ,"Tablica II" };
  98. std::cout << "Tablica I\n";
  99. wpis(tab1);
  100. std::cout << "Tablica II\n";
  101. wpis(tab2);
  102.  
  103. tab1.wyswietl(std::cout);
  104. tab2.wyswietl(std::cout);
  105. tab1.dodaj(tab2).wyswietl(std::cout);
  106.  
  107.  
  108. return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement