Advertisement
Guest User

Macierze Program

a guest
Apr 23rd, 2013
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.33 KB | None | 0 0
  1. #include "stdafx.h"
  2.  
  3.  
  4. class macierz
  5. {
  6. private:
  7.         int szer;
  8.         int wys;
  9.         int **tab;
  10.         int **D;
  11.         int **E;
  12.         int **F;
  13.  
  14. public:
  15.         macierz(int szer1, int wys1);
  16.         macierz();
  17.  
  18.  
  19.         int pobierzSzerokosc()
  20.         {
  21.                 return szer;
  22.         }
  23.  
  24.  
  25.  
  26.         int pobierzWysokosc()
  27.         {
  28.                 return wys;
  29.         }
  30.  
  31.         void wypelnij()
  32.         {
  33.                 for(int i = 0 ; i < wys ; i++)
  34.                         for (int j = 0; j < szer ; j++)
  35.                                 cin >> tab[i][j];
  36.         }
  37.  
  38.         void wyswietl()
  39.         {
  40.                 for(int i = 0 ; i < wys ; i++)
  41.                 {
  42.                         cout << endl;
  43.                         for (int j = 0; j < szer ; j++)
  44.                                 cout << tab[i][j] << " ";
  45.                 }
  46.         }
  47.  
  48.         void wyswiersze(int ktoryw)
  49.         {
  50.             for (int i = 0; i < szer ; i++)
  51.             cout << tab[ktoryw][i] << " ";
  52.                  
  53.         }
  54.  
  55.        
  56.         void wyskolumny(int ktorakol)
  57.         {
  58.             for (int i = 0; i < szer ; i++)
  59.             cout << tab[i][ktorakol] << endl;
  60.                  
  61.         }
  62.  
  63.  
  64.    
  65.         void dodaj(macierz pierw, macierz drug)
  66.         {
  67.  
  68.                 D = new int*[wys];
  69.                 for (int x = 0 ; x < wys ; x++)
  70.                 {
  71.                         D[x] = new int[szer];
  72.                 }
  73.  
  74.                 for(int i = 0; i < wys; i++)
  75.                 for(int j = 0; j < szer; j++)
  76.                 D[i][j] = pierw.tab[i][j] + drug.tab[i][j];
  77.  
  78.                 for(int k = 0 ; k < wys ; k++)
  79.                 {
  80.                         cout << endl;
  81.                         for (int f = 0; f < szer ; f++)
  82.                                 cout << D[k][f] << " ";
  83.                 }
  84.         }
  85.        
  86.                
  87.         void odejmij(macierz pierw, macierz drug)
  88.         {
  89.  
  90.                 E = new int*[wys];
  91.                 for (int x = 0 ; x < wys ; x++)
  92.                 {
  93.                         E[x] = new int[szer];
  94.                 }
  95.  
  96.                 for(int i = 0; i < wys; i++)
  97.                 for(int j = 0; j < szer; j++)
  98.                 E[i][j] = pierw.tab[i][j] - drug.tab[i][j];
  99.  
  100.                 for(int k = 0 ; k < wys ; k++)
  101.                 {
  102.                         cout << endl;
  103.                         for (int f = 0; f < szer ; f++)
  104.                         cout << E[k][f] << " ";
  105.                 }
  106.         }
  107.  
  108.  
  109.                 void przezliczbe(int m)
  110.         {
  111.  
  112.                 for(int i = 0 ; i < wys ; i++)
  113.                 {
  114.                         cout << endl;
  115.                         for (int j = 0; j < szer ; j++)
  116.                         cout << tab[i][j] * m << " ";
  117.                 }
  118.         }
  119.  
  120.  
  121.  
  122.             void zapiszplik()
  123.             {
  124.                 ofstream plik;
  125.                 plik.open("plik.txt");
  126.  
  127.                 for(int i = 0 ; i < wys ; i++)
  128.                 {
  129.                        
  130.                         for (int j = 0; j < szer ; j++)
  131.                                 plik << tab[i][j] << " ";
  132.  
  133.                         plik << endl;
  134.                 }
  135.                 plik.close();
  136.             }
  137.  
  138.  
  139. /*          void wczytajplik()
  140.             {
  141.                 ifstream plik2;
  142.                 plik2.open("plik2.txt");
  143.  
  144.                 if(plik2.is_open())
  145.                 {
  146.                     for(int i = 0 ; i < wys ; i++)
  147.                     {
  148.                        
  149.                         for (int j = 0; j < szer ; j++)
  150.                                 plik2 >> tab[i][j] << " ";
  151.  
  152.                         plik2 >> endl;
  153.                     }
  154.                     plik2.close();
  155.                 }
  156.             } */
  157.  
  158. };
  159.  
  160.  
  161. macierz::macierz(int szer1 = 5, int wys1 = 5) //konstruktor
  162.         {
  163.                
  164.                         szer = szer1;
  165.                         wys = wys1;
  166.  
  167.                         tab = new int*[wys];
  168.                         for (int x = 0 ; x < wys ; x++)
  169.                 {
  170.                         tab[x] = new int[szer];
  171.                 }
  172.         }
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181. int main()
  182. {
  183.         int a,b,c,d,e,f;
  184.  
  185.        
  186.  
  187.         cout << "Podaj wymiary pierwszej macierzy: " << endl;
  188.         cout << "Szerokosc: "; cin >> a;
  189.         cout << "Dlugosc: "; cin >> b; cout << endl;
  190.        
  191.  
  192.         macierz pierwsza(a,b);
  193.  
  194.         cout << "Macierz ma wymiary " << pierwsza.pobierzSzerokosc() << "x" << pierwsza.pobierzWysokosc() << endl;
  195.         cout << "Wprowadz liczby do macierzy:" << endl;
  196.         pierwsza.wypelnij();
  197.         cout << endl << "Oto twoja macierz: " << endl;
  198.         pierwsza.wyswietl();
  199.  
  200.         cout << endl << "Podaj jaki wiersz chcesz zobaczyc: " << endl;
  201.         cin >> c;
  202.         cout << endl << endl;
  203.         pierwsza.wyswiersze(--c);
  204.  
  205.         cout << endl << "Podaj jaka kolumne chcesz zobaczyc: " << endl;
  206.         cin >> d;
  207.         cout << endl << endl;
  208.         pierwsza.wyskolumny(--d);
  209.  
  210.  
  211.  
  212.  
  213.         //////////////////////////////////////////////////////////////// NOWA MACIERZ
  214.  
  215.  
  216.  
  217.  
  218.        
  219.         cout << "Podaj wymiary drugiej macierzy: " << endl;
  220.         cout << "Szerokosc: "; cin >> e;
  221.         cout << "Dlugosc: "; cin >> f; cout << endl;
  222.  
  223.         macierz druga(e,f);
  224.  
  225.         cout << "Macierz ma wymiary " << druga.pobierzSzerokosc() << "x" << druga.pobierzWysokosc() << endl;
  226.         cout << "Wprowadz liczby do macierzy:" << endl;
  227.         druga.wypelnij();
  228.         cout << "Oto twoja macierz: " << endl;
  229.         druga.wyswietl();
  230.  
  231.  
  232.         ////////////////////////////////////////////////////////////////
  233.        
  234.         if(pierwsza.pobierzSzerokosc() == druga.pobierzSzerokosc() || pierwsza.pobierzWysokosc() == druga.pobierzWysokosc())
  235.         {
  236.             cout << endl<< endl << "Wynik dodawanie 2 macierzy:";
  237.             macierz trzecia(pierwsza.pobierzSzerokosc(),pierwsza.pobierzWysokosc());
  238.             trzecia.dodaj(pierwsza, druga);
  239.            
  240.         }
  241.         else
  242.             cout << endl << "Aby wykonac dodawanie macierze musza byc tego samego wymiaru!" << endl;
  243.    
  244.  
  245.         ////////////////////////////////////////////////////////////////
  246.        
  247.  
  248.         if(pierwsza.pobierzSzerokosc() == druga.pobierzSzerokosc() || pierwsza.pobierzWysokosc() == druga.pobierzWysokosc())
  249.         {
  250.             cout << endl << endl << "Wynik odejmowania 2 macierzy:";
  251.             macierz trzecia(pierwsza.pobierzSzerokosc(),pierwsza.pobierzWysokosc());
  252.             trzecia.odejmij(pierwsza, druga);
  253.            
  254.         }
  255.         else
  256.             cout << endl << "Aby wykonac odejmowanie macierze musza byc tego samego wymiaru!" << endl;
  257.  
  258.  
  259.         ////////////////////////////////////////////////////////////////
  260.  
  261.         cout << endl << "Podaj liczbe przez ktora chcesz pomnozyc elementy macierzy nr 1: " << endl;
  262.         cin >> f;
  263.         cout << endl << "Nowa macierz: " << endl;
  264.         pierwsza.przezliczbe(f);
  265.  
  266.         ////////////////////////////////////////////////////////////////
  267.  
  268.         pierwsza.zapiszplik();
  269.  
  270.  
  271.  
  272.         system("pause");
  273.         return 0;
  274. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement