geekbrains_cpp_difficult_mo.../lesson_3/exercise_2.hpp

53 lines
1.4 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>
/*
* Т.к. определитель (детрминант) вычисляется только для квадратной матрицы,
2021-09-30 01:08:40 +00:00
* то объект класса инициализируется одним положительным целочисленным значением.
2021-09-30 00:46:47 +00:00
*/
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);
2021-09-30 01:08:40 +00:00
double calculateDeterminant(Matrix &arr);
2021-09-30 00:46:47 +00:00
public:
Matrix(const int size);
void fillRandom(); // заполнить массив случайными значениями
void print() const; // распечатать массив
size_t size() const; // получить размер массива
double determinant() const; // получить определитель матрицы
class Iterator
{
private:
2021-09-30 17:08:09 +00:00
double *current;
2021-09-30 00:46:47 +00:00
public:
2021-09-30 17:08:09 +00:00
Iterator(double *pointer);
2021-09-30 00:46:47 +00:00
double& operator[](size_t i);
2021-09-30 17:08:09 +00:00
Iterator& operator ++();
bool operator !=(const Iterator &iterator);
double& operator *();
2021-09-30 00:46:47 +00:00
};
Iterator operator[](size_t i);
2021-09-30 17:08:09 +00:00
Iterator begin();
Iterator end();
2021-09-30 00:46:47 +00:00
~Matrix();
};
void exercise_2();