Facebook
From Ivory Pig, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 146
  1. class macierz
  2. {public:
  3.     int w;
  4.     int k;
  5.     zespolona **tab;
  6.     macierz(int wiersze, int kolumny)
  7.     {
  8.         w = wiersze+1;
  9.         k = kolumny+1;
  10.         tab = new zespolona* [w];
  11.         for(int i=0 ; i<w ; i++)
  12.         {
  13.             tab[i] = new zespolona[k];
  14.         }
  15.  
  16.         for(int i=0 ; i<w ; i++)
  17.         {
  18.             for(int j=0 ; j<k ; j++)
  19.             {
  20.                 tab[i][j] = 0;
  21.             }
  22.         }
  23.     }
  24.  
  25.     ~macierz()
  26.     {
  27.         //cout<<endl<<"zwalnianie pamieci"<<endl;
  28.     }
  29.  
  30.     void jednostkowa()
  31.     {
  32.         if (w != k) cout<<"macierz jednostkowa istnieje tylko dla macierzy kwadratowej"<<endl;
  33.         else
  34.         {
  35.              for(int i=0; i<w ; i++)
  36.             {
  37.                 for(int j=0 ; j<k ; j++)
  38.                 {
  39.                    if(i==j) tab[i][j] = 1;
  40.  
  41.                 }
  42.             }
  43.         }
  44.  
  45.     }
  46.  
  47.     void zamien(int wiersz,int kolumna, zespolona z)
  48.     {   int czy_istnieje_kolumna = 0;
  49.         int czy_istnieje_wiersz = 0;
  50.         for(int i=0 ; i<w ; i++)
  51.         {
  52.             if(wiersz == i) czy_istnieje_wiersz = 1;
  53.         }
  54.         for(int i=0 ; i<k ; i++)
  55.         {
  56.             if(kolumna == i) czy_istnieje_kolumna =1;
  57.         }
  58.         if(czy_istnieje_kolumna==1 && czy_istnieje_wiersz==1)
  59.         {
  60.             tab[wiersz][kolumna] = z;
  61.         }
  62.         else cout<<endl<<"W macierzy nie wystepuje komorka ["<<wiersz<<"]["<<kolumna<<"]"<<endl;
  63.  
  64.     }
  65.  
  66.     macierz operator+ (const macierz &m)
  67.     {   macierz wynik_dodawania(w-1,k-1);
  68.  
  69.         if(w!=m.w || k!=m.k) cout<<"Mozna dodawac tylko macierze o takich samych wymiarach"<<endl;
  70.         else
  71.         {
  72.             for(int i=0 ; i<w ; i++)
  73.             {
  74.                 for(int j=0 ; j<k ; j++)
  75.                 {
  76.                    wynik_dodawania.tab[i][j] = tab[i][j] + m.tab[i][j];
  77.                 }
  78.             }
  79.         }
  80.         return wynik_dodawania;
  81.     }
  82.  
  83.  
  84.     macierz operator* (zespolona x)
  85.     {
  86.         macierz wynik_mnozenia(w-1,k-1);
  87.  
  88.         for(int i=0 ; i<w ; i++)
  89.         {
  90.             for(int j=0 ; j<k ; j++)
  91.             {
  92.                 wynik_mnozenia.tab[i][j] = x * tab[i][j];
  93.             }
  94.         }
  95.         return wynik_mnozenia;
  96.     }
  97. /*
  98.       macierz operator= (const macierz &m)
  99.     {
  100.         macierz wynik_porownania(w,k);
  101.  
  102.         for(int i=0 ; i<w ; i++)
  103.         {
  104.             for(int j=0 ; j<k ; j++)
  105.             {
  106.                 wynik_porownania.tab[i][j] = tab[i][j];
  107.             }
  108.         }
  109.         return wynik_porownania;
  110.     }
  111. */
  112.     void wypisz()
  113.     {
  114.         for(int i=1 ; i<w ; i++)
  115.         { cout<<endl;
  116.             for(int j=1; j<k ; j++)
  117.             {
  118.                 if(j==k) break;
  119.                 cout<<tab[i][j]<<"  ";
  120.             }
  121.         }
  122.     }
  123. };
  124.