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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2014, 16:55   #1
zhivushko
 
Регистрация: 15.01.2014
Сообщений: 7
По умолчанию Массив +,-,*

2-е матрицы 3 на 3. необходимо реализовать сложение, разность и перемножение.
Пробовал преподу это припихнуть, но он меня отправил и сказал что мы еще такое не проходим (я на ФЗО)
Код:
#include <iostream>

using namespace std;
//Размер квадратной матрицы:
const int n=3;
//Класс для реализации матриц:
class Matrix
{
	public:
//Поле - двумерный массив:
	int matr[n][n];
//Перегрузка оператора []:
	int *operator[](int k)
	{
		return matr[k];
	}
//Перегрузка оператора сложения +:
	Matrix operator+(Matrix obj)
	{
		Matrix tmp(0);
		for(int i=0; i < n; i++)
		for(int j=0; j < n; j++)
		tmp[i][j]=matr[i][j]+obj[i][j];
		return tmp;
	}
//Перегрузка оператора умножения *:
	Matrix operator*(Matrix obj)
	{
		Matrix tmp(0);
		for(int i=0; i < n; i++)
		for(int j=0; j < n; j++)
		for(int k=0; k < n; k++)
		tmp[i][j]+=matr[i][k]*obj[k][j];
		return tmp;
	}
//Перегрузка оператора вычитания -:
	Matrix operator-(Matrix obj)
	{
		Matrix tmp(0);
		for(int i=0; i <n; i++)
		for(int j=0; j < n; j++)
		tmp[i][j]=matr[i][j]-obj[i][j];
		return tmp;
	}
//Метод для отображения значений матрицы:
	void show()
	{
		for(int i=0; i < n; i++){
		for(int j=0; j < n; j++){
		printf("%3d",matr[i][j]);
	}
	cout << endl;
}
	}
//Конструктор с аргументом:
Matrix(int k)
{
	for(int i=0; i < n; i++)
	for(int j=0; j < n; j++)
	matr[i][j]=k;
}
//Конструктор с аргументом:
Matrix()
{
	for(int i=0; i < n; i++)
	for(int j=0; j < n; j++)
	matr[i][j]=rand()%8-5;
}
};
int main()
{
//Создание объектов:
Matrix A,B,C(0),D(0),E(0);
cout << "Matrix A:\n";
A.show();
cout << "Matrix B:\n";
B.show();
//Сумма матриц:
cout << "Matrix C=A+B:\n";
C=A+B;
C.show();
//Произведение матриц:
cout << "Matrix D=A*B:\n";
D=A*B;
D.show();
//Разность матриц:
cout << "Matrix E=A-B:\n";
E=A-B;
E.show();
system("pause");
return 0;
}
zhivushko вне форума Ответить с цитированием
Старый 16.01.2014, 17:45   #2
zhivushko
 
Регистрация: 15.01.2014
Сообщений: 7
По умолчанию

Чтобы не в ООП код был написан
zhivushko вне форума Ответить с цитированием
Старый 16.01.2014, 20:10   #3
b2soft
Упртй программер
Форумчанин
 
Регистрация: 26.11.2009
Сообщений: 150
По умолчанию

не перегружай, сделай просто процедурки MatrixSum итд
Помощь с кодом/лабами по С/С++
Контакты: ICQ 623334555 Skype: btwosoft; Mail: b2soft@yandex.ru
b2soft вне форума Ответить с цитированием
Старый 16.01.2014, 20:27   #4
zhivushko
 
Регистрация: 15.01.2014
Сообщений: 7
По умолчанию

спасибо большое
zhivushko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58