
- •1)Класс массив. Описывает нулевой единичный вектор, нулевой вектор произвольного размера и вектор произвольного размера с произвольными значениями
- •2) Описать скалярное произведение векторов
- •If(!m_pVec){
- •Void main(){
- •3)Записать обыкновенную дробь
- •4)Сумма комплексных чисел
- •Void main(){
- •5)Множественное наследование. Создать класс, произвольный от нескольких базовых
- •6)Работа с множествами
- •7)Вычислить комплексное число с помощью формулы Эйлера
- •Void main()
- •8)Вычислить время через определенный промежуток времени
- •9)Вычислить сумму, разность, произведение матриц
- •Void main()
- •10)Вычисление суммы, разности, произведения и деление комплексных чисел
- •Void main()
- •11)Вычислить радиус, диаметр, длину окружности, площадь и объем сферы
- •12)Работа с шаблонами
- •13)Банковские операции (чековая и сберегательная книжка)
- •Void display()
- •Void display()
- •14)Вычислить сумму векторов
- •15)Сортировка по возрастанию
- •Void main()
9)Вычислить сумму, разность, произведение матриц
#include <iostream.h>
#include <conio.h>
#include <math.h>
// Класс матрица
class Matrix
{
private:
// Собственные элементы:
static int size; // Порядок матрицы
int **matrix; // Матрица
public:
// Общедоступные элементы:
Matrix() {} // Конструктор по умолчанию
Matrix(const Matrix &Object); // Конструктор копирования
~Matrix(); // Деструктор
Matrix &operator=(const Matrix &Object); // Перегрузка =
Matrix operator+(Matrix &); // Сложение матриц
Matrix operator-(Matrix &); // Вычитание матриц
Matrix operator*(Matrix &); // Перемножение матриц
// Перегрузка оператора << для вывода матрицы
friend ostream &operator<<(ostream &, Matrix &);
// Перегрузка оператора >> для ввода матрицы
friend istream &operator>>(istream &, Matrix &);
};
// Конструктор копирования
Matrix::Matrix(const Matrix &Object)
{
int i,j;
size = Object.size;
matrix = new int *[size];
for (i = 0; i < size; i++)
matrix[i] = new int [size];
for (i = 0; i < size; i++)
for (j = 0; j < size; j++)
matrix[i][j] = Object.matrix[i][j];
}
// Деструктор
Matrix::~Matrix()
{
for (int i = 0; i < size; i++)
delete matrix[i];
delete matrix;
}
// Перегрузка оператора =
Matrix& Matrix::operator=(const Matrix &Object)
{
int i, j;
size = Object.size;
matrix = new int *[size];
for (i = 0; i < size; i++)
matrix[i] = new int [size];
for (i = 0; i < size; i++)
for (j = 0; j < size; j++)
matrix[i][j] = Object.matrix[i][j];
return *this;
}
// Перегрузка оператора +
Matrix Matrix::operator+(Matrix &fp1)
{
int i, j;
if (size == fp1.size)
{
Matrix fp(fp1);
for (i=0;i<fp.size;i++)
for (j=0;j<fp.size;j++)
fp.matrix[i][j]=matrix[i][j]+fp1.matrix[i][j];
return fp;
}
}
// Перегрузка оператора -
Matrix Matrix::operator-(Matrix &fp1)
{
int i, j;
if (size == fp1.size)
{
Matrix fp(fp1);
for (i = 0; i < fp.size; i++)
for (j = 0; j < fp.size; j++)
fp.matrix[i][j] = matrix[i][j] - fp1.matrix[i][j];
return fp;
}
}
// Перегрузка оператора *
Matrix Matrix::operator*(Matrix &fp1)
{
int i, j, k, sum;
if (size == fp1.size)
{
Matrix fp(fp1);
for(i = 0; i < fp.size; i++)
for(j = 0; j < fp.size; j++)
{
sum = 0;
for (k = 0; k < fp.size; k++)
sum += matrix[i][k] * fp1.matrix[k][j];
fp.matrix[i][j]=sum;
}
return fp;
}
}
// Перегрузка оператора >>
istream &operator>>(istream &fi, Matrix &fp)
{
int i, j;
fp.matrix = new int *[fp.size];
for (i = 0; i < fp.size; i++)
fp.matrix[i] = new int [fp.size];
for (i = 0; i < fp.size; i++)
for (j = 0; j < fp.size; j++)
{
fi >> fp.matrix[i][j];
}
return fi;
}
// Перегрузка оператора <<
ostream &operator<<(ostream &fo, Matrix &fp)
{
int i, j;
for (i = 0; i < fp.size; i++)
for (j = 0; j < fp.size; j++)
{
fo << fp.matrix[i][j]<<"\t";
}
return fo;
}
int Matrix::size = 2;
Void main()
{
Matrix pr1, pr2;
cout << "Vedite matritcu A -> \n ";
cin >> pr1;
cout << "\nVedite matritcu B -> \n ";
cin >> pr2;
cout << "\nA+B="<<(pr1+pr2);
cout << "\n\nA-B="<<(pr1-pr2);
cout << "\n\nA*B="<<(pr1*pr2)<<"\t";
pr1 = pr2;
}