Dev - C++ - C++ para multipicacion de matrices

 
Vista:
sin imagen de perfil

C++ para multipicacion de matrices

Publicado por Leonardo (16 intervenciones) el 09/10/2019 01:20:39
Diseña un programa que lea los valores de dos matrices y realice la multiplicación de ambas. Hay que controlar que ambas matrices tengan la misma dimensión para poder multiplicarlas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

C++ para multipicacion de matrices

Publicado por Alfil (1444 intervenciones) el 09/10/2019 07:13:21
Regla para multiplicar dos matrices: El número de columnas de A debe coincidir con el número de filas de B.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
 
using namespace std;
 
void leerMatriz( int **M, int fil, int col );
void multiplicacionMatrices();
void imprimirMatriz( int **M, int fil, int col );
 
int main()
{
    int filA, colA, filB, colB;
 
    cout << "\n    EL NUMERO DE COLUMNAS DE LA MATRIZ A"
         << "\nDEBE COINCIDIR CON EL DE FILAS DE LA MATRIZ B\n";
 
    cout << "\nDimension de la matriz A:";
    cout << "\nFilas de la matriz: "; cin >> filA;
    cout << "Columnas de la matriz: "; cin >> colA;
 
    int** A = new int*[filA];
    for( int i = 0; i < filA; i++ )
        A[i] = new int[colA];
 
    leerMatriz( A, filA, colA );
 
    cout << "\nDimension de la matriz B:";
    cout << "\nFilas de la matriz: "; cin >> filB;
    cout << "Columnas de la matriz: "; cin >> colB;
 
    int** B = new int*[filB];
    for( int i = 0; i < filB; i++ )
        B[i] = new int[colB];
 
    leerMatriz( B, filB, colB );
 
    int** C = new int*[filA];
    for( int i = 0; i < filA; i++ )
        C[i] = new int[colA];
 
    if( colA == filB ){
        for( int i = 0; i < filA; ++i ){
            for( int j = 0; j < colB; ++j ){
                C[i][j] = 0;
                for( int z = 0; z < colA; ++z )
                    C[i][j] += A[i][z] * B[z][j];
            }
        }
 
        cout << "\nMatriz A:\n";
        imprimirMatriz( A, filA, colA );
        cout << "\nMatriz B:\n";
        imprimirMatriz( B, filB, colB );
        cout << "\nMultiplicacion de las matrices (A*B):\n";
        imprimirMatriz( C, filA, colB );
 
    }else
        cout << "\n         NO SE PUEDEN MULTIPLICAR"
             << "\n    EL NUMERO DE COLUMNAS DE LA MATRIZ A"
             << "\nDEBE COINCIDIR CON EL DE FILAS DE LA MATRZI B";
 
    cout << endl;
 
    return 0;
}
 
void leerMatriz( int **M, int fil, int col )
{
    cout << "\nRellenar la matriz:\n";
    for( int i = 0; i < fil; i++ ){
        for( int j = 0; j < col; j++ ){
            cout << "Matriz[" << i << "][" << j << "]: ";
            cin >> M[i][j];
        }
    }
}
 
void imprimirMatriz( int **M, int fil, int col )
{
    for( int i = 0; i < fil; i++ ){
        cout << "\n| ";
        for( int j = 0; j < col; j++ )
            cout << M[i][j] << " ";
 
        cout << " |";
    }
    cout << endl;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar