Следите за новостями GitVerse в нашем телеграм-канале

Matrix_C_plus

Форк
0

5 месяцев назад
5 месяцев назад
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 Вы можете самостоятельно в настройках Вашего браузера.