Matrix_C_plus

Форк
0

2 месяца назад
2 месяца назад
README.md

Matrix_C_plus

Документация библиотеки S21Matrix

Описание проекта

Библиотека S21Matrix реализует основные операции над матрицами, включая арифметические операции, транспонирование, вычисление определителя и обратной матрицы. Библиотека разработана на языке C++ стандарта C++17 и предназначена для использования в качестве статической библиотеки.

Структура проекта

Проект организован следующим образом:

  • src/ — папка с исходным кодом библиотеки.
    • s21_matrix_oop.h — заголовочный файл с объявлением класса S21Matrix.
    • s21_matrix_oop.cpp — файл реализации методов класса S21Matrix.
  • tests/ — папка с тестами.
    • test_matrix.cpp — файл с тестами для библиотеки, написанный с использованием GTest.
  • Makefile — файл для сборки библиотеки и тестов.

Класс S21Matrix

Описание

Класс S21Matrix реализует матрицу и предоставляет методы для выполнения различных операций над матрицами.

Приватные поля

  • matrix_ — двумерный массив для хранения элементов матрицы.
  • rows_ — количество строк в матрице.
  • cols_ — количество столбцов в матрице.

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

  • S21Matrix()
    Базовый конструктор, инициализирующий матрицу размерностью 0x0.

  • 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.

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

  • +
    Сложение двух матриц.
    Исключение: Разная размерность матриц.

  • -
    Вычитание одной матрицы из другой.
    Исключение: Разная размерность матриц.

  • *
    Умножение матриц и умножение матрицы на число.
    Исключение: Количество столбцов первой матрицы не равно количеству строк второй матрицы.

  • ==
    Проверка на равенство матриц.

  • =
    Присвоение значений одной матрицы другой.

  • +=
    Присвоение сложения двух матриц.
    Исключение: Разная размерность матриц.

  • - =
    Присвоение разности двух матриц.
    Исключение: Разная размерность матриц.

  • *=
    Присвоение умножения матрицы на число или другую матрицу.
    Исключение: Количество столбцов первой матрицы не равно количеству строк второй матрицы.

  • (int i, int j)
    Индексация по элементам матрицы (строка, колонка).
    Исключение: Индекс выходит за пределы матрицы.

Инструкции по сборке

Использование Makefile

Для сборки библиотеки и тестов используйте следующие команды:

  • Сборка библиотеки
    make s21_matrix_oop.a

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.