SlideShare une entreprise Scribd logo
1  sur  20
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/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
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
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
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.
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
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
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
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
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
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
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
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
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_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
A reter Matrizes multidimensionais Estratégias de resolução de problemas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
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
Sumário Matrizes multidimensionais Estratégias de resolução de problemas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20

Contenu connexe

En vedette

Mediação entre Pares
Mediação entre ParesMediação entre Pares
Mediação entre ParesMaria Simões
 
Escola de Pais • Inteligência Emocional
Escola de Pais • Inteligência EmocionalEscola de Pais • Inteligência Emocional
Escola de Pais • Inteligência EmocionalColégio PGD
 
Formação de Dirigentes Desportivos Rui Lança Portimão dia 1 de Dezembro
Formação de Dirigentes Desportivos Rui Lança Portimão dia 1 de DezembroFormação de Dirigentes Desportivos Rui Lança Portimão dia 1 de Dezembro
Formação de Dirigentes Desportivos Rui Lança Portimão dia 1 de Dezembrorlanca
 
Que faz de um bom lider, excelente
Que faz de um bom lider, excelenteQue faz de um bom lider, excelente
Que faz de um bom lider, excelentesilasdias
 
Estratégias para resolver conflitos
Estratégias para resolver conflitosEstratégias para resolver conflitos
Estratégias para resolver conflitosguest4b4f772
 
Aula 8 mecanismos de coping
Aula 8 mecanismos de copingAula 8 mecanismos de coping
Aula 8 mecanismos de copingFuturos Medicos
 
O PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇA
O PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇAO PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇA
O PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇAALTAIR GERMANO
 
Esquema inicias desaptativos
Esquema inicias desaptativosEsquema inicias desaptativos
Esquema inicias desaptativosTiago Malta
 
Teoria do Esquema - Cognitivo-Comportamental
Teoria do Esquema - Cognitivo-ComportamentalTeoria do Esquema - Cognitivo-Comportamental
Teoria do Esquema - Cognitivo-ComportamentalNilson Dias Castelano
 
Inteligencia Emocional | Eagles Vision
Inteligencia Emocional | Eagles VisionInteligencia Emocional | Eagles Vision
Inteligencia Emocional | Eagles VisionEduardo De Souza
 
Inteligencia Emocional & Inteligencia Social
Inteligencia Emocional & Inteligencia SocialInteligencia Emocional & Inteligencia Social
Inteligencia Emocional & Inteligencia SocialGustavo Fantin
 
Inteligência emocional as 5 chaves fundamentais
Inteligência emocional   as 5 chaves fundamentaisInteligência emocional   as 5 chaves fundamentais
Inteligência emocional as 5 chaves fundamentaisManuela Selas
 
Desenvolvendo Inteligência emocional
Desenvolvendo Inteligência emocionalDesenvolvendo Inteligência emocional
Desenvolvendo Inteligência emocionalAlexandre Rivero
 
Inteligencia Emocional
Inteligencia EmocionalInteligencia Emocional
Inteligencia Emocionalberuscka
 
Presentación inteligencia emocional
Presentación inteligencia emocionalPresentación inteligencia emocional
Presentación inteligencia emocionaldehl06
 
INTELIGENCIA EMOCIONAL - Daniel Goleman
INTELIGENCIA EMOCIONAL -  Daniel GolemanINTELIGENCIA EMOCIONAL -  Daniel Goleman
INTELIGENCIA EMOCIONAL - Daniel GolemanRosa Elemil Martinez
 

En vedette (20)

Mediação entre Pares
Mediação entre ParesMediação entre Pares
Mediação entre Pares
 
Proverbios 12
Proverbios 12Proverbios 12
Proverbios 12
 
Escola de Pais • Inteligência Emocional
Escola de Pais • Inteligência EmocionalEscola de Pais • Inteligência Emocional
Escola de Pais • Inteligência Emocional
 
Formação de Dirigentes Desportivos Rui Lança Portimão dia 1 de Dezembro
Formação de Dirigentes Desportivos Rui Lança Portimão dia 1 de DezembroFormação de Dirigentes Desportivos Rui Lança Portimão dia 1 de Dezembro
Formação de Dirigentes Desportivos Rui Lança Portimão dia 1 de Dezembro
 
Que faz de um bom lider, excelente
Que faz de um bom lider, excelenteQue faz de um bom lider, excelente
Que faz de um bom lider, excelente
 
A espiritualidade como estratégia de coping na doença de Lupus Eritematoso Si...
A espiritualidade como estratégia de coping na doença de Lupus Eritematoso Si...A espiritualidade como estratégia de coping na doença de Lupus Eritematoso Si...
A espiritualidade como estratégia de coping na doença de Lupus Eritematoso Si...
 
Estratégias para resolver conflitos
Estratégias para resolver conflitosEstratégias para resolver conflitos
Estratégias para resolver conflitos
 
Aula 8 mecanismos de coping
Aula 8 mecanismos de copingAula 8 mecanismos de coping
Aula 8 mecanismos de coping
 
O PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇA
O PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇAO PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇA
O PERFIL DE SETE LÍDERES: FUNDAMENTOS PARA A EXCELÊNCIA NA LIDERANÇA
 
Esquema inicias desaptativos
Esquema inicias desaptativosEsquema inicias desaptativos
Esquema inicias desaptativos
 
Teoria do Esquema - Cognitivo-Comportamental
Teoria do Esquema - Cognitivo-ComportamentalTeoria do Esquema - Cognitivo-Comportamental
Teoria do Esquema - Cognitivo-Comportamental
 
Inteligencia Emocional | Eagles Vision
Inteligencia Emocional | Eagles VisionInteligencia Emocional | Eagles Vision
Inteligencia Emocional | Eagles Vision
 
Inteligencia Emocional & Inteligencia Social
Inteligencia Emocional & Inteligencia SocialInteligencia Emocional & Inteligencia Social
Inteligencia Emocional & Inteligencia Social
 
Inteligência emocional as 5 chaves fundamentais
Inteligência emocional   as 5 chaves fundamentaisInteligência emocional   as 5 chaves fundamentais
Inteligência emocional as 5 chaves fundamentais
 
Inteligencia emocional
Inteligencia emocionalInteligencia emocional
Inteligencia emocional
 
Desenvolvendo Inteligência emocional
Desenvolvendo Inteligência emocionalDesenvolvendo Inteligência emocional
Desenvolvendo Inteligência emocional
 
Inteligencia Emocional
Inteligencia EmocionalInteligencia Emocional
Inteligencia Emocional
 
Presentación inteligencia emocional
Presentación inteligencia emocionalPresentación inteligencia emocional
Presentación inteligencia emocional
 
INTELIGENCIA EMOCIONAL - Daniel Goleman
INTELIGENCIA EMOCIONAL -  Daniel GolemanINTELIGENCIA EMOCIONAL -  Daniel Goleman
INTELIGENCIA EMOCIONAL - Daniel Goleman
 
Curso Gestão de Conflitos
Curso Gestão de ConflitosCurso Gestão de Conflitos
Curso Gestão de Conflitos
 

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

7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...Manuel Menezes de Sequeira
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - MatrizesPacc UAB
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03thomasdacosta
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesRADILSON RIPARDO DE FRETIAS
 
Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Pacc UAB
 
113856859 exercicios-vetor-e-matriz
113856859 exercicios-vetor-e-matriz113856859 exercicios-vetor-e-matriz
113856859 exercicios-vetor-e-matrizDaniel Natividade
 
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Ficha de revisões módulo 8
Ficha de revisões   módulo 8Ficha de revisões   módulo 8
Ficha de revisões módulo 8t1renato
 
1ª lista de exercícios
1ª lista de exercícios1ª lista de exercícios
1ª lista de exercíciosdanleinad
 
Oficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando ROficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando RFabrício Barth
 
Acesso à memória e registros
Acesso à memória e registrosAcesso à memória e registros
Acesso à memória e registrosRodrigo Almeida
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 

Similaire à Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas (20)

7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizes
 
Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1
 
113856859 exercicios-vetor-e-matriz
113856859 exercicios-vetor-e-matriz113856859 exercicios-vetor-e-matriz
113856859 exercicios-vetor-e-matriz
 
NBI.pptx
NBI.pptxNBI.pptx
NBI.pptx
 
Modulo02
Modulo02Modulo02
Modulo02
 
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 10 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Ficha de revisões módulo 8
Ficha de revisões   módulo 8Ficha de revisões   módulo 8
Ficha de revisões módulo 8
 
1ª lista de exercícios
1ª lista de exercícios1ª lista de exercícios
1ª lista de exercícios
 
Novidades java 7
Novidades java 7Novidades java 7
Novidades java 7
 
Modelagem e elaboração de componentes
Modelagem e elaboração de componentesModelagem e elaboração de componentes
Modelagem e elaboração de componentes
 
Oficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando ROficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando R
 
Acesso à memória e registros
Acesso à memória e registrosAcesso à memória e registros
Acesso à memória e registros
 
JTableView - Swing
JTableView - SwingJTableView - Swing
JTableView - Swing
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 

Plus de Manuel Menezes de Sequeira

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...Manuel Menezes de Sequeira
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...Manuel Menezes de Sequeira
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...Manuel Menezes de Sequeira
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 

Plus de Manuel Menezes de Sequeira (20)

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 

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

  • 1. Aula 6 Matrizes multidimensionais Estratégias de resolução de problemas
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Resolução de problemas: etapas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14
  • 15. Resolução de problemas: estratégias 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
  • 16. Resolução de problemas: estratégias 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16
  • 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. A reter Matrizes multidimensionais Estratégias de resolução de problemas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
  • 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. Sumário Matrizes multidimensionais Estratégias de resolução de problemas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20