Отладка

  • Автор темы nike64n
  • Дата начала
N

nike64n

Гость
#1
Прошу помощи в решении моей задачи.Заранее благодарен.

"Модульное программирование"
Примечание. Разместить определение данных в заголовочном файле, а определения функций и главную функцию программы в двух отдельных файлах.

Вариант:
Дана квадратная матрица А порядка п. Получить матрицу 1/2(А*А(в степени"Т")) . Определить функции сложения двух квадратных матриц и умножения матрицы на скаляр.

Вот начало моей идеи,кода,алгоритма:

main.cpp
C++:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "matrix.h"
#include <time.h>
using namespace std;

int main()
{

const int m = 2;
const int n = 2;
int values[m][n];
srand(time(NULL));
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
values[i][j] = rand() % 50 + 1;



int * pointers[m];
for (int i = 0; i < m; i++)
{
pointers[i] = values[i];
}

Matrix uno (pointers, m, n);
cout <<"Matrix"<< endl;
uno.print();
cout << endl;

Matrix dos = uno.sum(uno);
cout <<"Summ matrix"<< endl;
dos.print();
cout <<endl;

return 0;
}

matrix.cpp
C++:
#include <iostream>
#include "matrix.h"

using namespace std;

Matrix::~Matrix()
{
for (int i = 0; i <m; i++)
{
delete [] values[i];
}
delete [] values;
}

Matrix Matrix::sum(const Matrix & matrix)
{
Matrix result(m, n);
for (int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
result.values[i][j] = values[i][j] + matrix.values[i][j];
}
}
return result;
}

Matrix::Matrix(int m, int n)
{
this->n = n;
this->values = new int*[m];
this->m = m;
for(int i = 0; i <m; i++)
{
this->values[i] = new int[n];
}
}

Matrix::Matrix(int**values,int m, int n)
{
this->n = n;
this->values = new int*[m];
this->m = m;
for(int i = 0; i <m; i++)
{
this->values[i] = new int[n];
for(int j = 0; j< n; j++)
{
this->values[i][j]= values[i][j];
}
}
}



void Matrix::print()
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << values[i][j] << "\t";
}
cout << endl;
}
}

matrix.h
C++:
#include <iostream>

class Matrix
{
public:
Matrix(int m, int n);
Matrix(int ** values, int m, int n);
~Matrix();

Matrix sum(const Matrix & matrix);
void print();

private:
int m;
int n;
int ** values;
};