Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Оптимизация в САПР / Malgin_kurs / Matrix
.h#if !defined(AFX_MATRIX_H__0F491015_5413_4832_B7AA_6DD46829A0B5__INCLUDED_)
#define AFX_MATRIX_H__0F491015_5413_4832_B7AA_6DD46829A0B5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <assert.h>
class CMatrix
{
public:
CMatrix (); // конструктор
CMatrix (CMatrix &); // конструктор копирования
CMatrix (int , int); // конструктор с заданием размера
CMatrix & operator= (CMatrix &); // присваивание
CMatrix operator+ (CMatrix &); // сложение матриц
CMatrix operator- (CMatrix &); // вычитание матриц
CMatrix operator* (CMatrix &); // умножение матриц
CMatrix operator^ (CMatrix &); // умножение матриц (перемножение соответствующих элементов)
CMatrix operator/ (CMatrix &); // деление матриц
CMatrix & operator+= (CMatrix &); // присваивания
CMatrix & operator-= (CMatrix &);
CMatrix & operator*= (CMatrix &);
CMatrix & operator^= (CMatrix &);
CMatrix operator+ (double); // операции со скалярами
CMatrix operator- (double);
CMatrix operator* (double);
CMatrix operator/ (double);
CMatrix & operator+= (double);
CMatrix & operator-= (double);
CMatrix & operator*= (double);
CMatrix & operator/= (double);
CMatrix operator- ();
CMatrix getRow (int); // строка
CMatrix getCol (int); // столбец
CMatrix getPart (int, int, int, int); // получить часть
CMatrix getTranspose(); // транспонирование
CMatrix & setSingle (int n); // сделать единичной
CMatrix Read (CString); // ввод вектора (создание)
virtual ~CMatrix (); // деструктор
void init (double c); // инициализация числом
void initStat (double *p, int, int); // инициализация статическим массивом
void initDynam (double **p, int, int); // инициализация динамическим массивом
void setRow (int, CMatrix &); // задать строку
void setCol (int, CMatrix &); // задать столбец
void setSize (int, int); // установка размера
void setPart (int, int, CMatrix &); // задать часть
void setNull (); // сделать нулевой (обнулить все элементы)
void swapRow (int, int); // обмен строк
void swapCol (int, int); // обмен столбцов
void insertCol (CMatrix &x); // вставка нового столбца
int getSizeRow (); // кол-во строк
int getSizeCol (); // кол-во столбцов
double & operator() (int, int); // элемент матрицы
double & operator[] (int); // элемент матрицы-вектора
double operator% (CMatrix &); // скалярное умножение для матриц-векторов
friend CMatrix operator+ (double, CMatrix &); // сложение со скаляром
friend CMatrix operator- (double, CMatrix &); // вычитание со скаляром
friend CMatrix operator* (double, CMatrix &); // умножение на скаляр
friend CString Double_To_String (double value); // преобразование Double`a в строку
friend CString IToS (int value); // преобразование Int`a в строку
CString Write (); // вывод вектора
CString WriteMatrix (); // вывод массива
private:
double ** array; //элементы матрицы
int sizeRow; //кол-во строк
int sizeCol; //кол-во столбцов
void error (int); //сообщение об ошибке
};
#endif // !defined(AFX_MATRIX_H__0F491015_5413_4832_B7AA_6DD46829A0B5__INCLUDED_)
Соседние файлы в папке Malgin_kurs