Advertisement
Czapek

tablica 2d znowu tylko z przeciazaniem

Dec 6th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.21 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3. using namespace std;
  4.  
  5. class tablica2d{
  6.     int szerokosc, wysokosc;
  7.     string nazwa_tablicy;
  8.     int *poczatek;
  9. public:
  10.     tablica2d(int szer, int wys, string imie)
  11.     {
  12.         szerokosc=szer;
  13.         wysokosc=wys;
  14.         nazwa_tablicy=imie;
  15.         int *tabliczka=new int;
  16.         poczatek = tabliczka;
  17.         for(int i=0; i< szerokosc*wysokosc;i++ ){
  18.             poczatek[i]=0;
  19.         }
  20.     }
  21.     tablica2d(const tablica2d& oryginal, string imie): szerokosc(oryginal.szerokosc), wysokosc(oryginal.wysokosc), nazwa_tablicy(imie), poczatek(oryginal.poczatek){}
  22.     void wyswietl_info()
  23.     {
  24.         cout << szerokosc << endl << wysokosc << endl << nazwa_tablicy << endl << poczatek<< endl << endl;
  25.     }
  26.     void ustaw_nowe_imie_taba(string nazwa_tablicy){
  27.         this->nazwa_tablicy = nazwa_tablicy;
  28.     }
  29.     void ustaw_element(int wiersz, int kolumna, int wartosc){
  30.         poczatek[(wiersz-1)*szerokosc+(kolumna-1)] = wartosc;
  31.     }
  32.     int wyswietl_element(int wiersz, int kolumna)
  33.     {
  34.         return poczatek[(wiersz-1)*szerokosc+(kolumna-1)];
  35.     }
  36.  
  37.     const tablica2d dodaj(const tablica2d& dodawana){
  38.         tablica2d tab_z_dodawania(2,2,"wynik dodawania");
  39.         for(int i=0; i< szerokosc*wysokosc;i++ ){
  40.             tab_z_dodawania.poczatek[i] = poczatek[i] + dodawana.poczatek[i];
  41.         }
  42.         return tab_z_dodawania;
  43.     }
  44.     const ostream &wyswietl(ostream &strumien)
  45.     {
  46.         strumien << nazwa_tablicy << endl << "Wartosci :" << endl;
  47.         for(int i=0; i< szerokosc*wysokosc;i++ ){
  48.             strumien << poczatek[i] << ", ";
  49.         }
  50.         return strumien << endl;
  51.     }
  52.    friend ostream & operator<< (ostream & strumien, tablica2d tab);
  53.  
  54.     ~tablica2d()
  55.     {
  56.         delete[] poczatek;
  57.     }
  58. };
  59.    ostream & operator<< (ostream & strumien, tablica2d tab)
  60.    {
  61.        strumien << tab.nazwa_tablicy << endl << "Wartosci :" << endl;
  62.        for(int i=1; i< tab.wysokosc+1;i++ )
  63.            for(int j=1; j< tab.szerokosc+1;j++ )
  64.            {
  65.                 strumien <<  tab.poczatek[(i-1)*tab.szerokosc+(j-1)] << ", ";
  66.                 if(j == tab.szerokosc) strumien << endl;
  67.            }
  68.        return strumien << endl;
  69.    }
  70.    ostream & operator>> ( tablica2d tab)
  71.    {
  72.        strumien << tab.nazwa_tablicy << endl << "Wartosci :" << endl;
  73.        for(int i=1; i< tab.wysokosc+1;i++ )
  74.            for(int j=1; j< tab.szerokosc+1;j++ )
  75.            {
  76.                 strumien <<  tab.poczatek[(i-1)*tab.szerokosc+(j-1)] << ", ";
  77.                 if(j == tab.szerokosc) strumien << endl;
  78.            }
  79.        return strumien << endl;
  80.    }
  81.  
  82. int main()
  83. {
  84.     srand(time(NULL));
  85.     tablica2d tab(2, 2, "Franek");
  86.     for(int i = 1; i < 3; i++)
  87.         for(int j = 1; j < 3; j++)
  88.             tab.ustaw_element(i,j, rand()%10);
  89.     tablica2d kopiatab(tab, "brat blizniak Franka");
  90.     tab.wyswietl_info();
  91.     kopiatab.wyswietl_info();
  92.     kopiatab.ustaw_nowe_imie_taba("Zibi");
  93.     cout << "Zibi pokazuje element : " << kopiatab.wyswietl_element(1,1) << endl;
  94.     tablica2d wynik=tab.dodaj(kopiatab);
  95.     tab.wyswietl(cout);
  96.     cout << kopiatab;
  97.     //wynik.wyswietl(cout);
  98.     cout << wynik;
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement