Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
01.05.2014
Размер:
3.37 Кб
Скачать
#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