Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / matrix / matrix

.cpp
Скачиваний:
12
Добавлен:
18.02.2017
Размер:
1.62 Кб
Скачать
//---------------------------------------------------------------------------


#pragma hdrstop

#include <stdlib.h>
#include "matrix.h"
#include "Unit1.h"
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------

#pragma package(smart_init)


CMatrix::CMatrix()
{
	x=Form1->TrackBar1->Position;
	y=Form1->TrackBar2->Position;
	randomize();
	M = new int[x*y];
	for (int j=0; j < y; j++) {
		for (int i=0; i < x; i++) {

		M[j*x+i]=random(10);

		}
	}
}

CMatrix::CMatrix(int a,int b)
{
	x=a;
	y=b;
	randomize();
	M = new int[x*y];
	for (int j=0; j < y; j++) {
		for (int i=0; i < x; i++) {

		M[j*x+i]=random(10);
		}
	}
}

CMatrix::~CMatrix()
{

}

CMatrix CMatrix::operator+(CMatrix &A)
{
	CMatrix MatNew(A.x,A.y);
	for (int j = 0; j < y; j++) {
		for (int i = 0; i < x; i++) {
			MatNew.M[x*j+i]=M[x*j+i]+A.M[x*j+i];
		}
	}
	return MatNew;
}

CMatrix CMatrix::operator =(CMatrix *A)
{

	for (int j = 0; j < y; j++) {
		for (int i = 0; i < x; i++) {
			M[x*j+i]=A->M[x*j+i];
		}
	}
	return *this;
}

CMatrix CMatrix::operator-(CMatrix &A)
{
	CMatrix MatNew(A.x,A.y);
	for (int j = 0; j < y; j++) {
		for (int i = 0; i < x; i++) {
			MatNew.M[x*j+i]=M[x*j+i]-A.M[x*j+i];
		}
	}
	return MatNew;
}

CMatrix CMatrix::operator*(CMatrix &A)
{
	CMatrix MatNew(y,A.x);
	for (int j = 0; j < A.x; j++) {
	for (int i = 0; i < y; i++){
	MatNew.M[MatNew.x*j+i]=0;
		for (int k = 0; k < x; k++) {
		MatNew.M[MatNew.x*j+i]+=M[x*i+k]*A.M[A.x*k+j];
		}
	}
	}
	return MatNew;
}
Соседние файлы в папке matrix