Example #1
0
//Déclaration de l'opération * entre les matrices
Matrice operator*(Matrice A, Matrice B)
{
    int nlA, ncA, nlB, ncB;
    A.GetSize(nlA, ncA);
    B.GetSize(nlB, ncB);
    Matrice result(nlA, ncB);

    if(ncA!=nlB) // On ne peut pas multiplier n'importe quelles matrices
    {
        cout << "* Impossible" << endl;
        return result;
    }
    else
    {
        double** m = new double*[nlA];

        for(int i=0; i<nlA ; i++)
        {
            m[i] = new double[ncB];
            for (int j=0; j<ncB; j++)
                m[i][j] = 0;
        }

        for(int i=0; i<nlA ; i++)
            for(int j=0; j<ncB ; j++)
                for(int k=0; k<ncA ; k++){
                    m[i][j]+=(A.GetValue(i,k))*(B.GetValue(k,j));}

        result.Set(m);
        return result;
    }
}
Example #2
0
Matrice operator-(Matrice A, Matrice B)
{
    int nlA, ncA, nlB, ncB;
    A.GetSize(nlA, ncA);
    B.GetSize(nlB, ncB);
    Matrice result(nlA, ncB);

    if(ncA!=ncB || nlA!=nlB)
    {
        cout << "- Impossible" << endl;
        return result;
    }
    else
    {
        double** m = new double*[nlA];

        for(int i=0; i<nlA ; i++)
        {
            m[i] = new double[ncB];
            for (int j=0; j<ncB; j++)
                m[i][j] = 0;
        }

        for(int i=0; i<nlA ; i++)
            for(int j=0; j<ncB ; j++)
                m[i][j]=(A.GetValue(i,j))-(B.GetValue(i,j));

        result.Set(m);
        return result;
    }
}
Example #3
0
Matrice operator*(Matrice A, Matrice B)
{
    int nlA, ncA, nlB, ncB;
    A.GetSize(nlA, ncA);
    B.GetSize(nlB, ncB);
    if(ncA!=nlB)
    {
        cout << "lol les matrice ça ce multiplies pas comme ça fdp" << endl;
    }
    else
    {
        Matrice result(nlA, ncB);
        double** m = new double*[nlA];
        for(int i=0; i<nlA ; i++)
        {
            m[i] = new double[ncB];
        }
        for(int i=0; i<nlA ; i++)
        {
            for(int j=0; j<ncB ; j++)
            {
                for(int k=0; k<ncA ; k++)
                {
                    m[i][j]+=(A.GetValue(i,k))*(B.GetValue(k,j));
                }
            }
        }
        result.Set(m);
        return resultat;
    }
}