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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2011, 10:11   #11
Skender
Пользователь
 
Регистрация: 27.08.2011
Сообщений: 21
По умолчанию

clasmatrix.cpp
Код:
#include "class.h"
#include <iostream>
using namespace std;
//Реализация класса matrix 
//Construction and Destruction
matrix : : matrix()
{
	string = 3;  
	column = 3;
	matr=new int*[string];
	for(int j = 0; j <string;j++)
		{
			matr[j]=new int[column];
		}
	for(int  i =  0;i<string;i++)
		for(int j = 0;j<column;j++)
			{
				matr[i][j]=rand()%2;	
			}
}
matrix : : matrix(int number)
{
	string = number;
	column = number;
	matr=new int*[string];
	for(int j = 0 ; j < string;j++)
		{
			matr[j]=new int[column];
		}
	for(int   i = 0;i<string;i++)
		for(int  j = 0;j<column;j++)
			{
				matr[i][j]=rand()%16;	
			}
}
matrix::matrix(matrix &matr1, int number)
{	
	string=number;
	column=number;
	matr=new int*[string];
	for(int j=0;j<string;j++)
		{
			matr[j]=new int[column];
		}
	for(int i=0;i<string;i++)
		for(int j=0;j<column;j++)
			{
				matr[i][j]=matr1.get(j,i);	
			}
}
matrix::matrix(matrix& matr2)
{	
	int size=matr2.getCount();
	matr=new int*[size];
	for(int j=0;j<size;j++)
		{
			matr[j]=new int[size];
		}
	for(int i=0;i<size;i++)
		for(int j=0;j<size;j++)
			{
				matr[i][j]=get(i,j);	
			}
}
matrix::~matrix()
{
	for (int j=0; j<column; j++)
		{
			delete matr[j];
		}
    delete[] matr;
}
//The End
//Job number
matrix matrix::operator+(float num)
{
		
	for(int i=0;i<getCount();i++)
		for(int j=0;j<setCount();j++)
			{
				 matr[i][j]=matr[i][j]+(int)num;	
			}
		return **matr;
}
matrix matrix : : operator-(float num)
{
	for(int i = 0;i<getCount();i++)
		for(int  j = 0;j<setCount();j++)
			{
				matr[i][j]=matr[i][j]-(int)num;	
			}
	return **matr;
}
matrix matrix : : operator+=(float num)
{
	for(int i = 0;i<getCount();i++)
		for(int  j = 0;j<setCount();j++)
			{
				matr[i][j]+=(int)num;	
			}
	return **matr;
}
matrix matrix : : operator-=(float num)
{
	for(int i = 0;i<getCount();i++)
		for(int j = 0;j<setCount();j++)
			{
				matr[i][j]-=(int)num;	
			}
	return **matr;
}
matrix matrix : : operator*(float num)
{
	for(int i = 0;i<getCount();i++)
		for(int j = 0;j<setCount();j++)
			{
				 matr[i][j]=matr[i][j]*(int)num;	
			}
		return **matr;
}
matrix matrix : : operator*=(float num)
{
	for(int i = 0;i<getCount();i++)
		for(int j = 0;j<setCount();j++)
			{
				matr[i][j]*=(int)num;	
			}
	return **matr;
}
matrix matrix : : operator=(const float num)
{
	for(int i = 0;i<getCount();i++)
		for(int j = 0;j<setCount();j++)
			{
				matr[i][j]=(int)num;	
			}
		return **matr;
}
//the end
//Job matrix
matrix &matrix : : operator =(const matrix &str)
{
	if (this!=&str)
		{
			for(int i = 0;i<str.string;i++)
				for(int  j = 0;j<str.column;j++)
					{
						matr[i][j]=str.matr[i][j];	
					}
		}
	return (matrix)**matr;
}
matrix matrix : : operator+(const matrix &str)
{
	for(int i = 0;i<str.string;i++)
		for(int j = 0;j<str.column;j++)
			{
				matr[i][j]=matr[i][j]+str.matr[i][j];	
			}	
	return **matr;
}
matrix matrix : : operator-(const matrix &str)
{
	for(int i = 0;i<str.string;i++)
		for(int j = 0;j<str.column;j++)
			{
				matr[i][j]=matr[i][j]-str.matr[i][j];	
			}	
	return **matr;
}
matrix matrix: : operator+=(const matrix &str)
{
	for(int  i = 0;i<str.string;i++)
		for(int j = 0;j<str.column;j++)
			{
				matr[i][j]+=str.matr[i][j];	
			}	
	return **matr;
}
matrix matrix : : operator-=(const matrix &str)
{
	for(int i = 0;i<str.string;i++)
		for(int j =  0;j<str.column;j++)
			{
				matr[i][j]-=str.matr[i][j];	
			}	
	return **matr;
}
matrix matrix : : operator*=(const matrix &str)
{
	for(int i = 0;i<str.string;i++)
		for(int  j = 0;j<str.column;j++)
			{
				matr[i][j]*=str.matr[i][j];	
			}	
	return **matr;
}
matrix matrix  : : operator*(const matrix &str)
{
	for(int i = 0;i<str.string;i++)
		for(int j = 0;j<str.column;j++)
			{
				matr[i][j]=matr[i][j]*str.matr[i][j];	
			}	
	return **matr;
}
//The End
//Конец реализации

Последний раз редактировалось Stilet; 28.08.2011 в 10:45.
Skender вне форума Ответить с цитированием
Старый 28.08.2011, 10:11   #12
Skender
Пользователь
 
Регистрация: 27.08.2011
Сообщений: 21
По умолчанию

//Реализация дружественных функций
Код:
matrix operator+(matrix &str,vector &size)
{
	if (size.size!=str.string)
		{
			cout<<"Slishkom malo ili mnogo\n";
			exit(1);
		}
	for(int i=0;i<str.string;i++)
		for(int j=0;j<str.column;j++)
			{
				str.matr[i][j]=str.matr[i][j]+size.mas[j];	
			}
		return **str.matr;
}
matrix operator-(matrix &str,vector &size)
{
	if (size.size!=str.string)
		{
			cout<<"Slishkom malo ili mnogo\n";
			exit(1);
		}
	for(int i=0;i<str.string;i++)
		for(int j=0;j<str.column;j++)
			{
				str.matr[i][j]=str.matr[i][j]-size.mas[j];	
			}
		return **str.matr;
}
matrix operator+=(matrix &str,vector &size)
{
	if (size.size!=str.string)
		{
			cout<<"Slishkom malo ili mnogo\n";
			exit(1);
		}
	for(int i=0;i<str.string;i++)
		for(int j=0;j<str.column;j++)
			{
				str.matr[i][j]+=size.mas[j];	
			}
		return **str.matr;
}
matrix operator-=(matrix &str,vector &size)
{
	if (size.size!=str.string)
		{
			cout<<"Slishkom malo ili mnogo\n";
			exit(1);
		}
	for(int i=0;i<str.string;i++)
		for(int j=0;j<str.column;j++)
			{
				str.matr[i][j]-=size.mas[j];	
			}
	return **str.matr;
}
matrix operator*(matrix &str,vector &size)
{
	if (size.size!=str.string)
		{
			cout<<"Slishkom malo ili mnogo\n";
			exit(1);
		}
	for(int i=0;i<str.string;i++)
		for(int j=0;j<str.column;j++)
			{
				str.matr[i][j]=str.matr[i][j]*size.mas[j];	
			}
		return **str.matr;
}
matrix operator*=(matrix &str,vector &size)
{
	if (size.size!=str.string)
		{
			cout<<"Slishkom malo ili mnogo\n";
			exit(1);
		}
	for(int i=0;i<str.string;i++)
		for(int j=0;j<str.column;j++)
			{
				str.matr[i][j]*=size.mas[j];	
			}
		return **str.matr;
}
istream& operator >> (istream& CIN, matrix&str)
{
	for (int i=0;i<str.getCount();i++)
		for(int j=0;j<str.setCount();j++)
			{
				CIN>>str.matr[i][j];	
			}
	return CIN;
}
ostream& operator<<(ostream &COUT,matrix &T)
{
	for (int i=0;i<T.getCount();i++)
		{
			for(int j=0;j<T.setCount();j++)
				{
					COUT<<T.matr[i][j]<<"\t";	
				}
			COUT<<"\n";
		}
	COUT<<"____________________________________________"<<endl;
	return COUT;
}
//Конец реализации

From Stilet: А что просто прикрепить проект религия не позволила? Думаешь удобно эти твои писульки читать?

Последний раз редактировалось Stilet; 28.08.2011 в 10:47.
Skender вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция float average(int arrray[],int from,int to) yuliyayuliya Помощь студентам 0 25.04.2011 21:55
перегрузка & operator+= prc Общие вопросы C/C++ 2 24.03.2011 17:51
ошибка: no match for ‘operator<<’ in ‘std::operator<< [with _Traits = std::char_traits<char> Critter Общие вопросы C/C++ 5 08.08.2010 23:38
Как сделать графическую оболочку& alexov Помощь студентам 3 03.01.2009 15:13
Как сделать так, что-бы при перетаскивании файла драг&дроп-ом на мою форму, он открывался??? Altera Общие вопросы Delphi 2 11.04.2008 15:00