Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 5.19 KB

README_RUS.md

File metadata and controls

61 lines (43 loc) · 5.19 KB

Matrix Library C++

English readme here.

В данном проекте я реализую библиотеку s21_matrix_oop.h для работы с матрицами по подобию matrix_library_c, но на этот раз используя объектно-ориентированный подход (см. материалы). Объектно-ориентированный подход позволяет реализовать библиотеку для работы с матрицами в виде отдельного класса, над объектами которого определены операции, представленные как методами, так и стандартными операторами +, -, * и т.д.

Компиляция и тестирование

s21_matrix_oop.a - собрать чистую библиотеку.

Тестирование

test - запустить тесты функций.

leaks - проверить тестируемый код на утечки.

gcov_report - посмотреть покрытие тестами кода.

Операции над матрицами

Ниже представлено краткое описание операций над матрицами, которые реализованы библиотеке.

Конструкторы и деструкторы

Метод Описание
S21Matrix() Базовый конструктор, инициализирующий матрицу некоторой заранее заданной размерностью.
S21Matrix(int rows, int cols) Параметризированный конструктор с количеством строк и столбцов.
S21Matrix(const S21Matrix& other) Конструктор копирования.
S21Matrix(S21Matrix&& other) Конструктор переноса.
~S21Matrix() Деструктор.

Операции (методы)

Операция Описание Исключительные ситуации
bool EqMatrix(const S21Matrix& other) Проверяет матрицы на равенство между собой.
void SumMatrix(const S21Matrix& other) Прибавляет вторую матрицы к текущей различная размерность матриц.
void SubMatrix(const S21Matrix& other) Вычитает из текущей матрицы другую различная размерность матриц.
void MulNumber(const double num) Умножает текущую матрицу на число.
void MulMatrix(const S21Matrix& other) Умножает текущую матрицу на вторую. число столбцов первой матрицы не равно числу строк второй матрицы.
S21Matrix Transpose() Создает новую транспонированную матрицу из текущей и возвращает ее.
S21Matrix CalcComplements() Вычисляет матрицу алгебраических дополнений текущей матрицы и возвращает ее. Матрица не является квадратной.
double Determinant() Вычисляет и возвращает определитель текущей матрицы. Матрица не является квадратной.
S21Matrix InverseMatrix() Вычисляет и возвращает обратную матрицу. Определитель матрицы равен 0.

Перегрузки операторов

Оператор Описание Исключительные ситуации
+ Сложение двух матриц. Различная размерность матриц.
- Вычитание одной матрицы из другой. Различная размерность матриц.
* Умножение матриц и умножение матрицы на число. Число столбцов первой матрицы не равно числу строк второй матрицы.
== Проверка на равенство матриц (EqMatrix).
= Присвоение матрице значений другой матрицы.
+= Присвоение сложения (SumMatrix). Различная размерность матриц.
-= Присвоение разности (SubMatrix). Различная размерность матриц.
*= Присвоение умножения (MulMatrix/MulNumber). Число столбцов первой матрицы не равно числу строк второй матрицы.
(int i, int j) Индексация по элементам матрицы (строка, колонка). Индекс за пределами матрицы.