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 :
Há 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; | |
} |
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