Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <gtest/gtest.h>
- using namespace std;
- class Matrix //klasa macierzy
- {
- public:
- Matrix(int, int); // domyślny konstruktor = metoda
- int** tab; // tworzymy wskaznik do tablicy
- int wers; // rozmiar wersów
- int kolumna; // rozmiar kolunm
- void dodawanie(const Matrix& M2);
- void wstaw(); // funkcja uzupełniająac macierz
- void show();
- ~Matrix();
- };
- Matrix::Matrix(int size_w, int size_k) //deklaracja meotody
- {
- this->kolumna = size_k; // wskazujemy na atrybut obiektu kolumna i przypisujemy go do argumntu size_k
- this->wers = size_w; //wskazujmey na atrybut obiektu wers i przypisujemy bo wartość
- this->tab = new int*[size_w]; // alokujemy pamiec na tablice o romiarze
- //size_w czyli wierszy
- for (int i = 0; i < this->wers; i++) //alokujemy pamieć
- {
- for (int j = 0; j < this->kolumna; j++)
- {
- this->tab[i] = new int[size_k];
- }
- }
- }
- Matrix::~Matrix()
- {
- for (int i = 0; i < this->wers; i++)
- {
- delete[] this->tab[i];
- }
- delete this->tab;
- }
- void Matrix::wstaw()
- {
- for (int i = 0; i < this->wers; i++) // wypelniamy macierz wersami
- {
- for (int j = 0; j < this->kolumna; j++) // jednoczesnie wypełniając
- //kolumny
- {
- cout << "Wartosc [" << i << "][" << j << "] ";
- cin >> this->tab[i][j]; //wprowadzamy z klawiruty
- //wartosci
- }
- }
- }
- void Matrix::show()
- {
- for (int i = 0; i < this->wers; i++)
- {
- for (int j = 0; j < this->kolumna; j++)
- {
- cout << this->tab[i][j] << " ";
- }
- cout << endl;
- }
- }
- void Matrix::dodawanie(const Matrix& M2)
- {
- if (this->wers != M2.wers || this->kolumna != M2.kolumna)
- {
- cout << "blad" << endl;
- exit(-1);
- }
- else
- {
- for (int i = 0; i < this->wers; i++)
- {
- for (int j = 0; j < this->kolumna; j++)
- {
- this->tab[i][j] += M2.tab[i][j];
- }
- cout << endl;
- }
- }
- }
- TEST(Matrix, dodawanie)
- {
- Matrix M(3, 2); //twozrymy obiekt klasy cyzli macierz o
- Matrix M2(3, 2);
- M.wstaw(); // dla obiektu klasy M wykona się funkcja
- cout << "Macierz M" << endl;
- M.show();
- cout << "dane drugiej macierzy: " << endl;
- M2.wstaw(); // dla obiektu klasy M2 wykona się funkcja
- cout << "Macierz M2" << endl;
- M2.show();
- M.dodawanie(M2);
- cout << "Macierz M po dodaniu do niej macierzy M2" << endl;
- M.show();
- for (int i = 0; i < M.wers; i++)
- {
- for (int j = 0; j < M.kolumna; j++)
- {
- ASSERT_EQ(M.tab[i][j], 5);
- }
- }
- }
- int main(int argc, char* argv[])
- {
- testing::InitGoogleTest(&argc, argv);
- RUN_ALL_TESTS();
- }
Advertisement
Add Comment
Please, Sign In to add comment