1

Тема: Підскажіть як задати відображження матриці будь ласка

[code=C]
#include <iostream>
#include <cstdio>
using namespace std;

const int N = 100; // к-сть членів ряду

class Matrix  // клас для реалізації матриць
{
public:
    double a[2][2];
    // метод для множення матриць
    Matrix mult(Matrix obj)
    {
        Matrix T;
        int i, j, k;
        for(i = 0; i < 2; i++)
            for(j = 0; j < 2; j++)
            {
                T.a[i][j] = 0;
                for(k = 0; k < 2; k++)
                T.a[i][j] += a[i][k] * obj.a[k][j];
            }
        return T;
    }
    // метод для сумування матриць
    Matrix mSum(Matrix obj)
    {
        Matrix T;
        int i, j;
        for(i = 0; i < 2; i++)
            for(j = 0; j < 2; j++)
                T.a[i][j] = a[i][j] + obj.a[i][j];
        return T;
    }
    // ділення матриці на число
    Matrix div(double x)
    {
        int i, j;
        for(i = 0; i < 2; i++)
            for(j = 0; j < 2; j++)
            a[i][j] /= x;
        return *this;
    }
    // відображення матриці
    void mShow()
    {
        printf("%8%s%8f%s", a[0][0], " ", a[0][1], "\n");
        printf("%8%s%8f%s", a[1][0], " ", a[1][1], "\n");
    }
};

// матрична експонента
Matrix mExp(Matrix obj)
{
    int i;
    Matrix E, T;
    E.a[0][0] = 1;
    E.a[1][1] = 1;
    E.a[0][1] = 0;
    E.a[1][0] = 0;
    T = E;
    for(i = 0; i < N; i++)
    {
        T = T.mult(obj);
        T = T.div(i);
        E = E.mSum(T);
    }
    return E;
}
int main()
{
    Matrix A;
    A.a[0][0] = 1;
    A.a[0][1] = -1;
    A.a[1][0] = 2;
    A.a[1][1] = 1;
    A.mShow();
    cout << endl;
    mExp(A).mShow();
    return 0;
}
[/code]

Post's attachments

main.cpp 1.4 kb, 69 downloads since 2018-11-25 

2

Re: Підскажіть як задати відображження матриці будь ласка

А що саме ви маєте на увазі під "відображенням" ?

3

Re: Підскажіть як задати відображження матриці будь ласка

Ну як-як, це ж матриця. В двох циклах, звісно. У зовнішньому ще додати виведення нового рядку після рядку матриці.