Из Квадратной Матрицы Сделать Прямоугольную

Тема в разделе "C/C++/C#", создана пользователем bearmad, 26 ноя 2012.

  1. bearmad

    bearmad Гость

    Помогите из квадратной матрицы сделать прямоугольную



    #include <iostream>
    #include <conio.h>
    #include <math.h>
    using namespace std;
    class matrix { // клас матриця
    private:
    int *p_m;
    int n;
    public:
    matrix (int count_n);
    matrix (const matrix& m);
    matrix operator+(const matrix my);
    matrix operator-(const matrix my);
    matrix operator*(const matrix my);
    matrix operator/(const matrix my);
    void operator=(const matrix my);
    void In_put();
    void Out_put();
    ~matrix();
    };

    matrix matrix::eek:perator*(const matrix my)
    {
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m=p_m*my.p_m;
    return m_ret;
    };

    matrix matrix::eek:perator+(const matrix my)
    {
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m=p_m+my.p_m;
    return m_ret;
    };

    matrix matrix::eek:perator-(const matrix my)
    {
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m=p_m-my.p_m;
    return m_ret;
    };

    matrix matrix::eek:perator/(const matrix my)
    {
    int my_n=(n*n-n)/2+n;
    matrix m_ret(n);
    for(int i=0;i<my_n;i++)
    m_ret.p_m=p_m/my.p_m;
    return m_ret;
    };

    void matrix::eek:perator=(const matrix my)
    {
    int my_n=(n*n-n)/2+n;
    for(int i=0;i<my_n;i++)
    p_m=my.p_m;
    };

    matrix::matrix(int count_n)
    {
    n=count_n;
    int my_n=(n*n-n)/2+n;
    p_m=new int [my_n];
    for(int i=0;i<my_n;i++)
    p_m=0;
    };

    matrix::matrix (const matrix& m) {
    n=m.n;
    int my_n=(n*n-n)/2+n;
    p_m=new int [my_n];
    for(int i=0;i<my_n;i++)
    p_m=m.p_m;
    };

    matrix::~matrix()
    {
    delete p_m;
    };

    void matrix::Out_put()
    {
    int y=0, out_ch=0;
    for(int i=0;i<n;i++)
    {
    for(int k=0;k<y;k++)
    {
    cout.width(4);
    cout << "0";
    }
    for(int j=0;j<n-y;j++)
    {
    cout.width(4);
    cout << p_m[out_ch];
    out_ch++;
    }
    cout << "\n";
    y++;
    }
    };

    void matrix::In_put()
    {
    int y=0, in_ch=0;
    for(int i=0;i<n;i++)
    {
    for(int j=0;j<n-y;j++)
    {
    cout << "[" << i << "," << j << "]: ";
    cin >> p_m[in_ch];
    in_ch++;
    }
    y++;
    }
    };

    int main()
    {
    int size;
    cout << "Matrix [Size]: ";
    cin >> size;
    matrix m1(size), m2(size), m(size);
    cout << "\nMatrix 1: \n";
    m1.In_put();
    cout << "\nMatrix 2: \n";
    m2.In_put();
    m=m1+m2;
    cout << "\n Matrix 1 + Matrix 2 : \n";
    m.Out_put();
    cout << "\n";
    m=m1-m2;
    cout << "\n Matrix 1 - Matrix 2 : \n";
    m.Out_put();
    cout << "\n";
    m=m1*m2;
    cout << "\n Matrix 1 * Matrix 2 :\n";
    m.Out_put();
    cout << "\n";
    m=m1/m2;
    cout << "\n Matrix 1 / Matrix 2 :\n";
    m.Out_put();
    getch();
    };
     
Загрузка...

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