Programa C ++ para multiplicar duas matrizes usando matrizes multidimensionais

Este programa usa duas matrizes da ordem r1 * c1 e r2 * c2, respectivamente. Em seguida, o programa multiplica essas duas matrizes (se possível) e as exibe na tela.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação C ++:

  • Arrays C ++ multidimensionais
  • Arrays C ++

Para multiplicar duas matrizes, o número de colunas da primeira matriz deve ser igual ao número de linhas da segunda matriz. Este programa exibe o erro até que o número de colunas da primeira matriz seja igual ao número de linhas da segunda matriz.

Exemplo: multiplique duas matrizes sem usar funções

 #include using namespace std; int main() ( int a(10)(10), b(10)(10), mult(10)(10), r1, c1, r2, c2, i, j, k; cout <> r1>> c1; cout <> r2>> c2; // If column of first matrix in not equal to row of second matrix, // ask the user to enter the size of matrix again. while (c1!=r2) ( cout << "Error! column of first matrix not equal to row of second."; cout <> r1>> c1; cout <> r2>> c2; ) // Storing elements of first matrix. cout << endl << "Enter elements of matrix 1:" << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c1; ++j) ( cout << "Enter element a" << i + 1 << j + 1 <> a(i)(j); ) // Storing elements of second matrix. cout << endl << "Enter elements of matrix 2:" << endl; for(i = 0; i < r2; ++i) for(j = 0; j < c2; ++j) ( cout << "Enter element b" << i + 1 << j + 1 <> b(i)(j); ) // Initializing elements of matrix mult to 0. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( mult(i)(j)=0; ) // Multiplying matrix a and b and storing in array mult. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) for(k = 0; k < c1; ++k) ( mult(i)(j) += a(i)(k) * b(k)(j); ) // Displaying the multiplication of two matrix. cout << endl << "Output Matrix: " << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( cout << " " << mult(i)(j); if(j == c2-1) cout << endl; ) return 0; ) 

Resultado

Insira linhas e colunas para a primeira matriz: 3 2 Insira linhas e colunas para a segunda matriz: 3 2 Erro! coluna da primeira matriz diferente da linha da segunda. Insira linhas e colunas para a primeira matriz: 2 3 Insira linhas e colunas para a segunda matriz: 3 2 Insira os elementos da matriz 1: Insira os elementos a11: 3 Insira os elementos a12: -2 Insira os elementos a13: 5 Insira os elementos a21: 3 Insira os elementos a22 : 0 Insira os elementos a23: 4 Insira os elementos da matriz 2: Insira os elementos b11: 2 Insira os elementos b12: 3 Insira os elementos b21: -9 Insira os elementos b22: 0 Insira os elementos b31: 0 Insira os elementos b32: 4 Matriz de saída: 24 29 6 25

Neste programa, o usuário é solicitado a inserir o tamanho de duas matrizes primeiro.

A coluna da primeira matriz deve ser igual à linha da segunda matriz para multiplicação. Se esta condição não for satisfeita, o tamanho da matriz é novamente questionado usando o loop while.

Em seguida, o usuário é solicitado a inserir duas matrizes e, finalmente, a saída de duas matrizes é calculada e exibida.

Como o programa é longo e difícil de depurar, é melhor resolvê-lo passando-o para uma função.

Visite esta página para aprender a multiplicar matrizes passando matrizes para uma função.

Artigos interessantes...