Aula 6
Matrizes multidimensionais
Estratégias de resolução de problemas
Da aula anterior…
Manipulação de caracteres
Relação entre os tipos char e int
Tipos de valor vs. tipos de referência
2010/...
Matrizes multidimensionais
Itens de matriz podem ser (referências para) matrizes
Possíveis matrizes de mais do que uma dim...
Exemplo regular: matriz identidade de 3 × 3
final double[][]identityMatrix = {
{1.0, 0.0, 0.0},
{0.0,1.0,0.0},
{0.0,0.0,1....
Exemplo irregular: factores primos de primeiros naturais
final int[][]primeFactors = {
null,
{},
{2},
{3},
{2, 2},
{5},
{2...
Construção 1D
final double[] vector1 = {1.0, 0.0, 0.0};
final double[] vector1 = 
newdouble[] {1.0, 0.0, 0.0};
final doubl...
Construção 2D: regular
final double[][] identityMatrix = {
    {1.0, 0.0, 0.0},
    {0.0, 1.0, 0.0},
    {0.0, 0.0, 1.0}
}...
Construção 2D: regular
final double[][] rectangularMatrix =
newdouble[2][3];
2010/2011
Introdução à Programação - DCTI - I...
Construção 2D: irregular
final int[][] primeFactors = {
null,
    {},
    {2},
    {3},
    {2, 2},
    {5},
    {2, 3},
 ...
Indexação
final int secondFactorOf4 =
primeFactors[4][1];
final int[] factorsOf8 =
primeFactors[8];
final int firstFactorO...
Tamanhos
out.println(primeFactors.length);
out.println(primeFactors[2].length);
out.println(primeFactors[8].length);
2010/...
Exemplo: médias
int[][] gradesPerCourse = {
    {14, 16},
    {12, 18, 20}
};
int numberOfGrades = 0;
double sumOfGrades =...
Problema 
Dados
uma matriz com números de alunas(os),
uma matriz com as siglas das UC e
uma matriz de notas (em que cada l...
Resolução de problemas: etapas
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL
14
Resolução de problemas: estratégias
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL
15
Resolução de problemas: estratégias
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL
16
Mais informação
Resolução de problemas
http://en.wikipedia.org/wiki/Problem_solving
http://en.wikipedia.org/wiki/How_to_So...
A reter
Matrizes multidimensionais
Estratégias de resolução de problemas
2010/2011
Introdução à Programação - DCTI - ISCTE...
A ler...
Capítulo 7 do livro:
Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 97...
Sumário
Matrizes multidimensionais
Estratégias de resolução de problemas
2010/2011
Introdução à Programação - DCTI - ISCTE...
Próximos SlideShares
Carregando em…5
×

Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas

1.584 visualizações

Publicada em

Apresentação da semana 6 da unidade curricular de Introdução à Programação do DCTI do ISCTE-IUL. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI, incluindo Luís Nunes e André Santos.

Publicada em: Tecnologia, Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.584
No SlideShare
0
A partir de incorporações
0
Número de incorporações
22
Ações
Compartilhamentos
0
Downloads
80
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas

  1. 1. Aula 6 Matrizes multidimensionais Estratégias de resolução de problemas
  2. 2. Da aula anterior… Manipulação de caracteres Relação entre os tipos char e int Tipos de valor vs. tipos de referência 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
  3. 3. Matrizes multidimensionais Itens de matriz podem ser (referências para) matrizes Possíveis matrizes de mais do que uma dimensão (matrizes de matrizes) Dimensões 1D: int[] grades; 2D: int[][]gradesPerCourse; 3D: int[][][]gradesPerCoursePerProgram; Etc. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3
  4. 4. Exemplo regular: matriz identidade de 3 × 3 final double[][]identityMatrix = { {1.0, 0.0, 0.0}, {0.0,1.0,0.0}, {0.0,0.0,1.0} }; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4 Sentido matemático do termo. identity 0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1 0 1 2 0 1 2 0 1 2 2
  5. 5. Exemplo irregular: factores primos de primeiros naturais final int[][]primeFactors = { null, {}, {2}, {3}, {2, 2}, {5}, {2, 3}, {7}, {2, 2, 2}, {3, 3}, {2, 5} }; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5 O vector primeFactors contém vectores com diferentes tamanhos. Para obter os factores primos de um dado natural 1 ≤ n ≤ 10 usa-se primeFactors[n], que é um simples vector de inteiros. Como 0 (zero) não tem factores primos, o primeiro vector não existe. Isso representa-se usando uma referência nula.
  6. 6. Construção 1D final double[] vector1 = {1.0, 0.0, 0.0}; final double[] vector1 = newdouble[] {1.0, 0.0, 0.0}; final double[] vector2 = newdouble[3]; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6 Sentido matemático de vector. Vectores e matrizes matemáticas podem ser representados por matrizes (arrays) do Java. vector1 vector2 1.0 0.0 0.0 0.0 0.0 0.0 0 1 2 0 1 2
  7. 7. Construção 2D: regular final double[][] identityMatrix = { {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0} }; final double[][] identityMatrix = newdouble[][] { newdouble[] {1.0, 0.0, 0.0}, newdouble[] {0.0, 1.0, 0.0}, newdouble[] {0.0, 0.0, 1.0} }; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7 identityMatrix 0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1 2
  8. 8. Construção 2D: regular final double[][] rectangularMatrix = newdouble[2][3]; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 8 rectangularMatrix 0 0.0 0.0 0.0 0.0 0.0 0.0 1
  9. 9. Construção 2D: irregular final int[][] primeFactors = { null, {}, {2}, {3}, {2, 2}, {5}, {2, 3}, {7}, {2, 2, 2}, {3, 3}, {2, 5} }; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9 primeFactors 0 2 3 2 2 2 null 2 2 1 2 … 3 4 5 6 … 7 8 9 10
  10. 10. Indexação final int secondFactorOf4 = primeFactors[4][1]; final int[] factorsOf8 = primeFactors[8]; final int firstFactorOf8 = factorsOf8[0]; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 10 primeFactors secondFactorOf4 secondFactorOf4 firstFactorOf8 firstFactorOf8 factorsOf8 factorsOf8 ? 2 ? 2 ? 2 3 2 2 2 0 2 2 … null 1 2 3 … 4 5 6 7 8 9 10
  11. 11. Tamanhos out.println(primeFactors.length); out.println(primeFactors[2].length); out.println(primeFactors[8].length); 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11 primeFactors _ 11 _ 11 1 _ 11 1 3 _ 0 2 3 2 2 2 null 2 2 1 2 3 … 4 5 6 7 … 8 9 10
  12. 12. Exemplo: médias int[][] gradesPerCourse = { {14, 16}, {12, 18, 20} }; int numberOfGrades = 0; double sumOfGrades = 0.0; for (int course = 0; course != gradesPerCourse.length; course++) { for (int i = 0; i != gradesPerCourse[course].length; i++) sum += gradesPerCourse[course][i]; numberOfGrades += gradesPerCourse[course].length; } double averageOfGrades = sumOfGrades / numberOfGrades; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12
  13. 13. Problema Dados uma matriz com números de alunas(os), uma matriz com as siglas das UC e uma matriz de notas (em que cada linha corresponde às notas que a(o) aluna(o) correspondente tem nas UC indicadas, uma por coluna), escrever código Java que mostre as notas de cada aluna(o), mostre a média das notas de cada aluna(o) e mostre a média mais alta, identificando a quem pertence. final int[] studentNumbers = {20032, 30312, 25342, 31432}; final String[] courseAcronyms = { "IP", "AC", "POO"}; final int[][] studentGrades = { {15, 18, 17}, {18, 10, 11}, // grades of student 30312 {11, 13, 15}, {10, 19, 16} }; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13
  14. 14. Resolução de problemas: etapas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14
  15. 15. Resolução de problemas: estratégias 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
  16. 16. Resolução de problemas: estratégias 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16
  17. 17. Mais informação Resolução de problemas http://en.wikipedia.org/wiki/Problem_solving http://en.wikipedia.org/wiki/How_to_Solve_It George Pólya http://en.wikipedia.org/wiki/George_P%C3%B3lya 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17 Fonte: Wikipédia
  18. 18. A reter Matrizes multidimensionais Estratégias de resolução de problemas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
  19. 19. A ler... Capítulo 7 do livro: Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19
  20. 20. Sumário Matrizes multidimensionais Estratégias de resolução de problemas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20

×