Uma matriz bi­di­men­si­o­nal em C++ é utilizada para organizar os dados em forma de tabela. Em áreas ma­te­má­ti­cas, es­pe­ci­al­mente em álgebra linear, as matrizes bi­di­men­si­o­nais oferecem uma estrutura ideal para a vi­su­a­li­za­ção de matrizes.

O que é exa­ta­mente uma matriz 2D em C++?

Uma matriz bi­di­men­si­o­nal em C++ é uma estrutura de dados para armazenar elementos numa dis­po­si­ção bi­di­men­si­o­nal se­me­lhante a uma tabela. Ao contrário das matrizes uni­di­men­si­o­nais, que contêm apenas uma série de elementos, uma matriz bi­di­men­si­o­nal organiza os dados em linhas e colunas. Os elementos de uma matriz bi­di­men­si­o­nal são definidos pelas suas posições, que são es­pe­ci­fi­ca­das por índices de linha e coluna. Esta estrutura facilita o acesso e a ma­ni­pu­la­ção de pontos de dados in­di­vi­du­ais. As matrizes bi­di­men­si­o­nais têm múltiplas apli­ca­ções, desde cálculos ma­te­má­ti­cos com matrizes até à gestão de dados em formato raster.

É assim que se estrutura uma matriz bi­di­men­si­o­nal em C++.

Em C++, a sintaxe para a de­cla­ra­ção de uma matriz bi­di­men­si­o­nal consiste nos seguintes elementos:

data_type arrayName[num_rows][num_cols];
c++
  • data_type: O tipo de dados es­pe­ci­fica que tipo de dados devem ser ar­ma­ze­na­dos nas células da matriz bi­di­men­si­o­nal. Isso pode ser, por exemplo, int para números inteiros, double para números de ponto flutuante ou até mesmo tipos de dados per­so­na­li­za­dos.
  • arrayName: O nome funciona como um iden­ti­fi­ca­dor através do qual se pode aceder a toda a matriz.
  • num_rows: Este fragmento da sintaxe indica quantas linhas a matriz bi­di­men­si­o­nal deve ter.
  • num_cols: Aqui é es­pe­ci­fi­cada a quan­ti­dade de colunas para cada linha na matriz bi­di­men­si­o­nal.

No exemplo a seguir, definimos uma matriz bi­di­men­si­o­nal chamada matrix com 2 linhas e 4 colunas, o que equivale a um total de 12 elementos.

int matrix[3][4] = {{1, 2, 3, 4}, 
    {5, 6, 7, 8}, 
    {9, 10, 11, 12}};
c++

Criar uma matriz bi­di­men­si­o­nal em C++

Podemos criar uma matriz bi­di­men­si­o­nal uti­li­zando um loop for. O loop externo itera sobre as linhas, enquanto o loop interno percorre as colunas de cada linha. A instrução std::cout << matrix[i][j] << " "; mostra cada elemento. Após cada linha, geramos uma nova linha com std::cout << std::endl; para formatar melhor o resultado.

#include <iostream> 
 
int main() { 
 
    int matrix[3][4] = {{1, 2, 3, 4}, 
                        {5, 6, 7, 8}, 
                        {9, 10, 11, 12}}; 
 
    for (int i = 0; i < 3; ++i) { 
 
        for (int j = 0; j < 4; ++j) { 
            std::cout << matrix[i][j] << " "; 
        } 
  
        std::cout << std::endl; 
    } 
 
    return 0; 
}
c++

No resultado, os elementos da matriz bi­di­men­si­o­nal são re­pre­sen­ta­dos linha por linha:

1 2 3 4 
5 6 7 8 
9 10 11 12
c++

Exemplos de aplicação para matrizes bi­di­men­si­o­nais em C++

Se aprender C++, even­tu­al­mente irá trabalhar com matrizes. A seguir, mostramos exemplos típicos de apli­ca­ções para matrizes bi­di­men­si­o­nais em C++.

Matriz bi­di­men­si­o­nal em C++ como entrada do uti­li­za­dor

Aqui está um exemplo simples em C++ em que não definimos uma matriz bi­di­men­si­o­nal com valores fixos, mas sim a pro­ces­sa­mos como entrada do uti­li­za­dor. Neste caso, pedimos ao uti­li­za­dor para in­tro­du­zir o número de linhas e colunas, seguido dos elementos reais da matriz:

#include <iostream> 
 
int main() { 
 
    int numRows, numCols; 
    std::cout << "Number of rows: "; 
    std::cin >> numRows; 
    std::cout << "Number of columns: "; 
    std::cin >> numCols; 
 
    int userArray[numRows][numCols]; 
 
    std::cout << "Please enter in elements:\n"; 
    for (int i = 0; i < numRows; ++i) { 
        for (int j = 0; j < numCols; ++j) { 
            std::cout << "Element [" << i << "][" << j << "]: "; 
            std::cin >> userArray[i][j]; 
        } 
    } 
 
    std::cout << "2D array:\n"; 
    for (int i = 0; i < numRows; ++i) { 
        for (int j = 0; j < numCols; ++j) { 
            std::cout << userArray[i][j] << " "; 
        } 
        std::cout << std::endl; 
    } 
 
    return 0; 
}
c++

Se forem passadas 2 linhas e 3 colunas e os valores 1, 2, 3, 4, 5, 6 como entrada do uti­li­za­dor, então a matriz bi­di­men­si­o­nal será:

2D array: 
1 2 3 
4 5 6
c++

Soma de matrizes com matrizes bi­di­men­si­o­nais

Usando ope­ra­do­res C como +, podemos somar fa­cil­mente matrizes com matrizes bi­di­men­si­o­nais em C++.

#include <iostream> 
 
const int numRows = 2;  
const int numCols = 2;  
 
void matrixAddition(int A[][numCols], int B[][numCols], int result[][numCols]) { 
    for (int i = 0; i < numRows; ++i) { 
        for (int j = 0; j < numCols; ++j) { 
            result[i][j] = A[i][j] + B[i][j]; 
        } 
    } 
} 
 
void displayMatrix(int matrix[][numCols]) { 
    for (int i = 0; i < numRows; ++i) { 
        for (int j = 0; j < numCols; ++j) { 
            std::cout << matrix[i][j] << " "; 
        } 
        std::cout << std::endl; 
    } 
} 
 
int main() { 
    int matrixA[numRows][numCols] = {{1, 2}, {3, 4}}; 
    int matrixB[numRows][numCols] = {{5, 6}, {7, 8}}; 
    int resultMatrix[numRows][numCols]; 
 
    matrixAddition(matrixA, matrixB, resultMatrix); 
 
    // Output of matrix A and B and their sum 
    std::cout << "Matrix A:\n"; 
    displayMatrix(matrixA); 
 
    std::cout << "\nMatrix B:\n"; 
    displayMatrix(matrixB); 
 
    std::cout << "\nSum (A + B):\n"; 
    displayMatrix(resultMatrix); 
 
    return 0; 
}
c++

Primeiro, criamos as matrizes 2x2, A e B, e a sua soma é calculada e apre­sen­tada na matriz re­sul­tante. A função matrixAddition recebe as duas matrizes iniciais e a matriz re­sul­tante como ar­gu­men­tos e realiza a soma. A função displayMatrix apresenta a soma das matrizes na consola.

Obtemos este resultado:

Matrix A: 
1 2 
3 4 
 
Matrix B: 
5 6 
7 8 
 
Sum (A + B): 
6 8 
10 12
c++
Ir para o menu principal