geekbrains_cpp_difficult_mo.../lesson_3/exercise_2.hpp

48 lines
1.3 KiB
C++
Raw Normal View History

2021-09-30 00:46:47 +00:00
/*
* exercise_2.hpp
*
* Created on: 29 сент. 2021 г.
* Author: alexander
*/
#pragma once
#include <cstddef>
/*
* Т.к. определитель (детрминант) вычисляется только для квадратной матрицы,
* то класс инициализируется одним положительным целочисленным значением.
*/
class Matrix
{
private:
const size_t matrixSize;
const size_t matrixCapacity;
double *array;
double matrixDeterminant { 0.0 };
Matrix getModifiedMatrix(Matrix &arr, const size_t item);
double calculateDeterminant(Matrix &arr, const size_t size);
public:
Matrix(const int size);
void fillRandom(); // заполнить массив случайными значениями
void print() const; // распечатать массив
size_t size() const; // получить размер массива
double determinant() const; // получить определитель матрицы
class Iterator
{
private:
double *currentRow;
public:
Iterator(double *row);
double& operator[](size_t i);
};
Iterator operator[](size_t i);
~Matrix();
};
void exercise_2();