Multiplicação de Duas Matrizes

C++Beginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como encontrar a multiplicação de duas matrizes (arrays 2D) na linguagem de programação C++. Vamos dividi-lo em passos simples, para que mesmo os novos aprendizes possam acompanhar sem qualquer dificuldade.

Incluir os arquivos de cabeçalho necessários

Criaremos um novo arquivo chamado main.cpp no diretório ~/project usando o seguinte comando:

touch ~/project/main.cpp

No primeiro passo, precisamos incluir os arquivos de cabeçalho necessários.

#include <iostream>

Usaremos o arquivo iostream para receber entrada e exibir a saída.

Definir a função main()

No segundo passo, declararemos a função main.

int main() {

Definir Variáveis

No terceiro passo, precisamos declarar variáveis para armazenar as matrizes de entrada e o resultado da multiplicação.

int row1, col1, row2, col2, i, j, k;
int m1[10][10], m2[10][10], pro[10][10];

Aqui, row1 e col1 representam o número de linhas e colunas para a primeira matriz, respectivamente, e row2 e col2 representam o número de linhas e colunas para a segunda matriz, respectivamente. As variáveis m1, m2 e pro representam as duas matrizes de entrada e a matriz produto.

Obter entrada do usuário

No quarto passo, obteremos as matrizes do usuário.

std::cout << "\nEnter the number of Rows and Columns of first matrix : ";
std::cin >> row1 >> col1;

std::cout << "\nEnter the number of Rows and Columns of second matrix : ";
std::cin >> row2 >> col2;

// input of first matrix
std::cout << "\nEnter the " << row1 * col1 << " elements of first matrix : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cin >> m1[i][j];
    }
}

// input of second matrix
std::cout << "\nEnter the " << row2 * col2 << " elements of second matrix : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cin >> m2[i][j];
    }
}

Aqui, pegamos a entrada do usuário para linhas e colunas das duas matrizes e, em seguida, pegamos a entrada para cada elemento das matrizes.

Multiplicar Matrizes

No quinto passo, multiplicaremos as matrizes.

if (col1 == row2) {
    for (i = 0; i < row1; i++) {
        for (j = 0; j < col2; j++) {
            pro[i][j] = 0;
            for (k = 0; k < col1; k++)
                pro[i][j] = pro[i][j] + (m1[i][k] * m2[k][j]);
        }
    }
}

Aqui, primeiro verificamos se as matrizes são válidas para multiplicação. Se forem, realizamos a multiplicação conforme explicado na introdução.

Exibir matrizes

No sexto passo, exibiremos as matrizes.

std::cout << "\nThe first matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cout << m1[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe second matrix is : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cout << m2[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe Product matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col2; j++) {
        std ::cout << pro[i][j] << "  ";
    }
    std::cout << std::endl;
}

Primeiro exibimos as duas matrizes e, em seguida, exibimos a matriz resultante.

Compilar e executar o código

Para compilar o código, abra um terminal e navegue até o diretório onde o arquivo de código foi salvo. Agora, execute o seguinte comando para compilar o código:

g++ main.cpp -o main

Após o código ser compilado com sucesso, execute o seguinte comando para executar o programa:

./main

Resumo

Parabéns! Você aprendeu como encontrar a multiplicação de duas matrizes na linguagem de programação C++. Aprendemos como verificar se as matrizes são válidas para multiplicação, como multiplicar matrizes e como exibir as matrizes de entrada e resultantes. Testamos o código em um ambiente Linux e aprendemos como compilar e executar o código.