Отладка

Тема в разделе "C/C++/C#", создана пользователем nike64n, 7 июл 2012.

  1. nike64n

    nike64n Гость

    Прошу помощи в решении моей задачи.Заранее благодарен.

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

    Вариант:
    Дана квадратная матрица А порядка п. Получить матрицу 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;
    };
     
Загрузка...
Похожие Темы - Отладка
  1. Allexei
    Ответов:
    2
    Просмотров:
    4.164

Поделиться этой страницей