Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2012, 11:43   #1
Remy
Новичок
Джуниор
 
Регистрация: 24.06.2012
Сообщений: 1
По умолчанию Ошибка в программе

Народ помогите, никак не могу понять в чем ошибка.
вот код:

Код:
#include "stdafx.h"
#include "matrix.h"
#include  "vector"

typedef std::vector<std::vector<int>> Matrix;

class CMatrix
{
public:
	CMatrix(Matrix mat);
	~CMatrix();

	size_t GetSizeM();
	size_t GetSizeN();
	int GetValue(int m, int n);

	CMatrix operator +(CMatrix& par);
	CMatrix operator -(CMatrix& par);
	CMatrix operator *(CMatrix& par);
	CMatrix operator /(CMatrix& par);

private:
	Matrix m_matrix;
};


CMatrix::CMatrix(Matrix mat)
	:m_matrix(mat)
{
}


CMatrix::~CMatrix(void)
{
}

size_t CMatrix::GetSizeM()
{
	if(m_matrix.size() > 0)
		return m_matrix[0].size();
	return 0;
}

size_t CMatrix::GetSizeN()
{
	return m_matrix.size();
}

int CMatrix::GetValue(int m, int n)
{
	return m_matrix[n][m];
}

CMatrix CMatrix::operator +(CMatrix& par)
{
	Matrix mat;
	for(size_t n = 0; n < par.GetSizeN(); n++)
	{
		std::vector<int> tmp;
		for(size_t m = 0; m < par.GetSizeN(); m++)
		{
			tmp.push_back(par.GetValue(m, n) + this->GetValue(m, n));
		}
		mat.push_back(tmp);
	}
	return CMatrix(mat);
}

CMatrix CMatrix::operator -(CMatrix& par)
{
	Matrix mat;
	for(size_t n = 0; n < par.GetSizeN(); n++)
	{
		std::vector<int> tmp;
		for(size_t m = 0; m < par.GetSizeN(); m++)
		{
			tmp.push_back(par.GetValue(m, n) - this->GetValue(m, n));
		}
		mat.push_back(tmp);
	}
	return CMatrix(mat);
}

CMatrix CMatrix::operator *(CMatrix& par)
{
	if(this->GetSizeM() != par.GetSizeN())
	{
		return CMatrix(Matrix());
	}

	Matrix mat;
	for(size_t row = 0; row < this->GetSizeN(); row++)
	{
		std::vector<int> tmp;
		for(size_t n = 0; n < par.GetSizeN(); n++)
		{
			int sum = 0;
			for(size_t m = 0; m < par.GetSizeN(); m++)
			{
				sum += par.GetValue(n, m) * this->GetValue(m, n);
			}
			tmp.push_back(sum);
		}
		mat.push_back(tmp);
	}
	return CMatrix(mat);
}

Последний раз редактировалось Stilet; 24.06.2012 в 12:07.
Remy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в программе CraZZZy-GameRRR Общие вопросы Delphi 2 14.02.2011 02:22
Ошибка в программе. ZeroCount Помощь студентам 2 18.12.2010 20:33
Ошибка в программе misher Общие вопросы Delphi 12 01.09.2010 19:11
Ошибка в программе Vladislav514 Софт 0 13.07.2010 15:16
Ошибка в программе RoadTrain Общие вопросы Delphi 5 24.10.2007 22:16