Programação I
Aula 12
(Arrays Bidimensionais)
Prof. Gilberto Irajá Müller
Última atualização 3/6/2009
Arrays Bidimensionais
• Um array bidimensional é um arranjo composto de
linhas e colunas de valores, nossa velha conhecida
matriz da Matemática.
Ex.: a matriz “m” abaixo tem 3 linhas e 4 colunas,
totalizando 12 números inteiros (notação matemática)
-4
m= 1
3
7
0
2
2
6
3
0
-3
-1
Arrays Bidimensionais
• Uma das maneiras de criar a matriz acima em Java é
int[][] m = {{-4, 7, 2, 0}, {1, 0, 6, -3}, {3, 2, 3, -1}};
Linha 0
Linha 1
Linha 2
• Para o acesso aos elementos de uma matriz, utiliza-se a
seguinte sintaxe:
m[índice para a linha][índice para a coluna]
• Qual o efeito do trecho abaixo?
m[2][3] = m[0][0] * 2;
System.out.println(m[2][1]);
int s = m[1][2];
m[1][2] = m[0][0];
m[0][0] = s;
Arrays Bidimensionais
• Se não sabemos o conteúdo inicial da matriz, podemos
declará-la e criá-la da maneira convencional.
Ex.:
// Cria uma matriz mat de dimensão linhas x colunas
double [][] mat = new double [linhas][colunas];
Exercício 12.1. Preencha a matriz mat com números
aleatórios positivos menores que 100.
Dica: Ao utilizar arrays bidimensionais, precisaremos
trabalhar com dois “fors”.
Arrays Bidimensionais
• Exercício 12.2. Crie um método que recebe uma matriz
bidimensional double e retorna o maior valor da matriz
• Exercício 12.3. Crie um método que recebe uma matriz
bidimensional inteira e um inteiro que indica uma de
suas linhas, e retorna a média dos valores daquela linha
Arrays Bidimensionais
• Comprimentos de linhas variáveis
Usamos, até agora, matrizes bidimensionais com o
mesmo comprimento para todas as suas linhas.
Podemos declarar matrizes em que o comprimento da
linha varia. Para isso, faz-se o trabalho em duas etapas:
• Primeiramente, aloca-se espaço para a quantidade de linhas que
se deseja, deixando o segundo índice do array vazio;
• Depois, aloca-se cada linha individualmente.
Arrays Bidimensionais
• Ex.:
// repare o segundo índice vazio
int [][] matriz = new int[4][];
// primeira linha terá quatro elementos
matriz[0] = new int[4];
// segunda linha, só dois elementos;
matriz[1] = new int[2];
// terceira linha terá cinco elementos;
matriz[2] = new int[5];
// quarta linha, três elementos.
matriz[3] = new int[3];
Arrays Bidimensionais
• Representação gráfica para o array com comprimento de
linha variado
Arrays Bidimensionais
• Exercício 12.4. Escreva um trecho Java para preencher a
matriz anterior com valores aleatórios
Arrays Bidimensionais
• Java admite matrizes multidimensionais, porém, está
fora do escopo da disciplina.
Ex.:
int[][][] a = {{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}};
int[][][][] b = {{{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}},
{{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}},
{{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}},
{{1, 2, 3}, {1, 2, 3}, {1, 2, 3}}}};
Métodos
• Referências bibliográficas
• http://inf.unisinos.br/~anibal
Download

Nota de Aula