Matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um único nome. O nome de cada variável de uma matriz é identificada através do uso de índices, e portanto se declararmos uma matriz de duas dimensões seriam necessários dois índices para acessar cada variável dela, se declaramos uma matriz de três dimensões seriam necessários três índices, e assim por diante. Note que o vetor é uma matriz de uma dimensão onde é necessário apenas um índice para identificar as variáveis.

Para entendermos melhor a dinâmica da matriz veja o seguinte problema :

N (0 < N <= 1000) pessoas jogando dardos e cada pessoa tem direito a M (0 < M <= 1000) lançamentos, a cada lançamento a pessoa ganha determinado ponto. Dado N, M e os pontos de cada jogador em seus determinados lançamentos, você receberá Q perguntas onde deverá responder quantos pontos o jogador i (0 <= i < N) fez no seu j-ésimo lançamento (0 <= j < M). Para resolver esse problema devemos guardar os pontos de cada jogador em determinado lançamento em uma matriz, nesse caso o código ficaria assim :

#include<iostream>
using namespace std;
const int MAXN = 1010;
const int MAXM = 1010;
int N, M, Q, I, J; // Declaro todas as variáveis necessárias
int pontos[MAXN][MAXM]; // Declaro a matriz de duas dimensões que responderá as perguntas
int main ()
{
cin >> N >> Q; // Leio a quantidade de pessoas que há no jogo e a quantidade de lançamentos que cada um possuí
for(int i = 0; i < N; i++) // A variável i representa o índice do jogador
{
for(int j = 0; j < M; j++) // A variável j representa o índice do lançamento
{
cin >> pontos[i][j]; // Leio a quantidade de pontos que o jogador i fez no seu j-ésimo lançamento
}
}
cin >> Q; // Leio a quantidade de perguntas
for(int i = 0; i < N; i++)
{
cin >> I >> J; // Leio o índice do jogador e o índice do lançamento
cout << pontos[I][J] << "\n"; // Imprimo a resposta
}
return 0;
}
view raw Matriz.cpp hosted with ❤ by GitHub

Nesse problema é necessário apenas uma matriz de duas dimensões pois precisamos de apenas duas informações para determinar a resposta : o jogador e o lançamento desse jogador, e portanto o primeiro índice da matriz representa o jogador e o segundo índice representa a quantidade de pontos desse jogador.

Problemas para praticar