Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- //wiersz*szerokosc+kolumna
- class Tablica2D
- {
- private:
- int m_szerokosc;
- int m_wysokosc;
- std::string m_nazwa;
- int *m_wsk;
- public:
- Tablica2D(int szerokosc=1,int wysokosc=1,std::string nazwa="Tabelka"):m_szerokosc(szerokosc), m_wysokosc(wysokosc), m_nazwa(nazwa){
- std::cout<<"Wywolanie konstruktora\n";
- m_wsk=new int[m_szerokosc*m_wysokosc];}
- Tablica2D(const Tablica2D &tabelka1): m_szerokosc(tabelka1.m_szerokosc), m_wysokosc(tabelka1.m_wysokosc), m_nazwa(tabelka1.m_nazwa)
- {
- std::cout<<"Wywolanie konstruktora kopiujocego\n";
- m_wsk=new int[m_szerokosc*m_wysokosc];
- for(int i=0;i<(m_szerokosc*m_wysokosc);++i)
- {
- m_wsk[i]=tabelka1.m_wsk[i];
- }
- }
- void ustawNazwe(std::string nazwa)
- {
- m_nazwa=nazwa;
- }
- void ustawElement(int wiersz, int kolumna,float wartosc)
- {
- m_wsk[wiersz*m_szerokosc+kolumna]=wartosc;
- }
- void odczytajElement(int wiersz,int kolumna) const
- {
- std::cout<<m_wsk[wiersz*m_szerokosc+kolumna]<<"\t";
- }
- Tablica2D dodaj(const Tablica2D &dodawana) const
- {
- Tablica2D wynik(m_szerokosc,m_wysokosc);
- for(int i=0;i<(m_szerokosc*m_wysokosc);++i)
- {
- wynik.m_wsk[i]=(m_wsk[i]+dodawana.m_wsk[i]);
- }
- wynik.ustawNazwe("wynik dodawania");
- return wynik;
- }
- std::ostream &wyswietl(std::ostream &strumien) const
- {
- strumien << m_nazwa << std::endl;
- for (int i = 0; i < 3; ++i)
- {
- for (int k = 0; k < 2; ++k)
- {
- this->odczytajElement(i, k);
- }
- std::cout << std::endl;
- }
- strumien << std::endl;
- return strumien;
- }
- ~Tablica2D()
- {
- std::cout << "Wywolanie destruktora\n";
- delete m_wsk;
- }
- };
- void wpis(Tablica2D &tab)
- {
- for (int i = 0; i < 3; ++i)
- {
- for (int k = 0; k < 2; ++k)
- {
- std::cout << "Podaj element do komorki " << i << " " << k << ": ";
- float x;
- std::cin >> x;
- tab.ustawElement(i, k, x);
- }
- }
- }
- int main()
- {
- Tablica2D tab1{ 2,3,"Tablica I" };
- Tablica2D tab2{ 2,3 ,"Tablica II" };
- std::cout << "Tablica I\n";
- wpis(tab1);
- std::cout << "Tablica II\n";
- wpis(tab2);
- tab1.wyswietl(std::cout);
- tab2.wyswietl(std::cout);
- tab1.dodaj(tab2).wyswietl(std::cout);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement