andrelievable

zad3

Dec 7th, 2020 (edited)
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <gtest/gtest.h>
  4. using namespace std;
  5.  
  6. class Matrix  //klasa macierzy
  7. {
  8. public:
  9.  
  10.     Matrix(int, int);    // domyślny konstruktor = metoda
  11.     int** tab;          // tworzymy wskaznik do tablicy
  12.     int wers;            // rozmiar wersów
  13.     int kolumna;       // rozmiar kolunm
  14.  
  15.     void dodawanie(const Matrix& M2);
  16.     void wstaw();       // funkcja uzupełniająac macierz 
  17.     void show();
  18.     ~Matrix();
  19.  
  20.  
  21. };
  22.  
  23. Matrix::Matrix(int size_w, int size_k)         //deklaracja meotody
  24. {
  25.     this->kolumna = size_k;               // wskazujemy na atrybut obiektu kolumna i przypisujemy go do argumntu size_k
  26.     this->wers = size_w;                   //wskazujmey na atrybut obiektu wers i przypisujemy bo wartość
  27.     this->tab = new int*[size_w];         // alokujemy pamiec na tablice o romiarze
  28.                                                //size_w czyli wierszy
  29.  
  30.     for (int i = 0; i < this->wers; i++)                  //alokujemy pamieć
  31.     {
  32.         for (int j = 0; j < this->kolumna; j++)
  33.         {
  34.             this->tab[i] = new int[size_k];
  35.  
  36.         }
  37.     }
  38. }
  39.  
  40. Matrix::~Matrix()
  41. {
  42.     cout << "destruktor" << endl;
  43.     for (int i = 0; i < this->wers; i++)
  44.     {
  45.  
  46.         delete[] this->tab[i];
  47.     }
  48.     delete this->tab;
  49. }
  50.  
  51. void Matrix::wstaw()
  52. {
  53.     for (int i = 0; i < this->wers; i++)          // wypelniamy macierz wersami
  54.     {
  55.         for (int j = 0; j < this->kolumna; j++)     // jednoczesnie wypełniając
  56.                                                             //kolumny
  57.         {
  58.             cout << "Wartosc [" << i << "][" << j << "]  ";
  59.             cin >> this->tab[i][j];                 //wprowadzamy z klawiruty
  60.                                                                  //wartosci
  61.         }
  62.     }
  63. }
  64.  
  65. void Matrix::show()
  66. {
  67.  
  68.     for (int i = 0; i < this->wers; i++)
  69.     {
  70.         for (int j = 0; j < this->kolumna; j++)
  71.         {
  72.             cout << this->tab[i][j] << " ";
  73.         }
  74.         cout << endl;
  75.     }
  76. }
  77. void Matrix::dodawanie(const Matrix& M2)
  78. {
  79.  
  80.     if (this->wers != M2.wers || this->kolumna != M2.kolumna)
  81.     {
  82.         cout << "blad" << endl;
  83.         exit(-1);
  84.     }
  85.     else
  86.     {
  87.         for (int i = 0; i < this->wers; i++)
  88.         {
  89.             for (int j = 0; j < this->kolumna; j++)
  90.             {
  91.  
  92.                 this->tab[i][j] += M2.tab[i][j];
  93.  
  94.             }
  95.             cout << endl;
  96.         }
  97.     }
  98. }
  99.  
  100.  
  101. int main(int argc, char* argv[])
  102. {
  103.  
  104.     unique_ptr<Matrix> ptrM = unique_ptr<Matrix>{ new Matrix(3,2) };
  105.     unique_ptr<Matrix> ptrM2 = unique_ptr<Matrix>{ new Matrix(3,2) };
  106.  
  107.                                              
  108.     ptrM->wstaw();                               // dla obiektu klasy M wykona się funkcja
  109.     ptrM->show();
  110.     cout << "dane drugiej macierzy:  " << endl;
  111.     ptrM2->wstaw();                               // dla obiektu klasy M2 wykona się funkcja
  112.     ptrM2->show();
  113.    
  114. }
Advertisement
Add Comment
Please, Sign In to add comment