SlideShare uma empresa Scribd logo
1 de 19
Arrays multidimensionais
Estratégias de resolução de problemas
 Manipulação de caracteres
 Relação entre os tipos char e int
 Tipos de valor vs. tipos de referência
2013/2014 Fundamentos de Programação 2
 Itens de array podem ser (referências para)
arrays
 Possíveis arrays de mais do que uma dimensão
(arrays de arrays, arrays de arrays de arrays, ...)
 Dimensões
 1D: int[] grades;
 2D: int[][] gradesPerCourse;
 3D: int[][][] gradesPerCoursePerProgram;
 Etc.
2013/2014 Fundamentos de Programação 3
final double[][] identityMatrix = {
{1.0, 0.0, 0.0},
{0.0, 1.0, 0.0},
{0.0, 0.0, 1.0}
};
2013/2014 Fundamentos de Programação 4
identityMatrix
0
1
2
1.0 0.0 0.0
0 1 2
1.00.0 0.0
0 1 2
1.00.00.0
0 1 2
Sentido
matemático do
termo.
final int[][] primeFactors = {
null,
{},
{2},
{3},
{2, 2},
{5},
{2, 3},
{7},
{2, 2, 2},
{3, 3},
{2, 5}
};
2013/2014 Fundamentos de Programação 5
O array primeFactors contém arrays
com diferentes tamanhos. Para
obter os factores primos de um dado
natural 1 ≤ n ≤ 10 usa-se
primeFactors[n], que é um simples
array de inteiros. Como 0 (zero) não
tem factores primos, o primeiro
array não existe. Isso representa-se
usando uma referência nula.
Parámos nos factores
primos de 10 porque não
havia mais espaço na
apresentação. :-P
final double[] vector1 = {1.0, 0.0, 0.0};
final double[] vector1 =
new double[] {1.0, 0.0, 0.0};
final double[] vector2 = new double[3];
2013/2014 Fundamentos de Programação 6
vector1
1.0 0.0 0.0
0 1 2
vector2
0.0 0.0 0.0
0 1 2
Sentido matemático de vector.
Vectores e matrizes matemáticas
podem ser representados por
arrays unidimensinais e
bidimensionais do Java,
respectivamente.
Forma
alternativa
equivalente de
inicialização.
Itens inicializados
com valor por
omissão dos
double.
final double[][] identityMatrix = {
{1.0, 0.0, 0.0},
{0.0, 1.0, 0.0},
{0.0, 0.0, 1.0}
};
final double[][] identityMatrix = new double[][] {
new double[] {1.0, 0.0, 0.0},
new double[] {0.0, 1.0, 0.0},
new double[] {0.0, 0.0, 1.0}
};
2013/2014 Fundamentos de Programação 7
identityMatrix
0
1
2
1.0 0.0 0.0
1.00.0 0.0
1.00.00.0
Forma
alternativa
equivalente de
inicialização.
final double[][] rectangularMatrix =
new double[2][3];
2013/2014 Fundamentos de Programação 8
rectangularMatrix
0
1
0.0 0.0 0.0
0.00.0 0.0
…
final int[][] primeFactors = {
null,
{},
{2},
{3},
{2, 2},
{5},
{2, 3},
{7},
{2, 2, 2},
{3, 3},
{2, 5}
};
2013/2014 Fundamentos de Programação 9
primeFactors
null0
1
2
3
4
5
6
7
8
9
10
2
3
2 2
2 2 2
…
…
final int secondFactorOf4 =
primeFactors[4][1];
final int[] factorsOf8 =
primeFactors[8];
final int firstFactorOf8 =
factorsOf8[0];
2013/2014 Fundamentos de Programação 10
primeFactors
null0
1
2
3
4
5
6
7
8
9
10
2
3
2 2
…
?
secondFactorOf4
2
secondFactorOf4
?
firstFactorOf8
2
firstFactorOf8
?
factorsOf8factorsOf8
2 2 2
…
out.println(primeFactors.length);
out.println(primeFactors[2].length);
out.println(primeFactors[8].length);
2013/2014 Fundamentos de Programação 11
primeFactors
null0
1
2
3
4
5
6
7
8
9
10
2
3
2 2
2 2 2
…
_11
_
11
1
_
11
1
3
_
final int[][] gradesPerCourse = {
{14, 16},
{12, 18, 20}
};
int numberOfGrades = 0;
int sumOfGrades = 0;
for (int course = 0; course != gradesPerCourse.length; course++) {
for (int i = 0; i != gradesPerCourse[course].length; i++)
sumOfGrades += gradesPerCourse[course][i];
numberOfGrades += gradesPerCourse[course].length;
}
final double averageOfGrades = sumOfGrades / (double) numberOfGrades;
2013/2014 Fundamentos de Programação 12
Cálculo da média
de todas as
notas de todos
os cursos.
Sejam
1. um array com os números das/os alunas/os,
2. um array com as siglas das UC e
3. um array de notas, em que cada linha corresponde às notas que
a/o aluna/o correspondente tem nas UC indicadas, uma por
coluna.
Escreva código Java que
1. mostre as notas de cada aluna/o,
2. mostre a média das notas de cada aluna/o e
3. mostre a média mais alta, identificando a quem pertence.
final int[] studentIDs = {50020032, 50030312, 50025342, 50031432};
final String[] courseAcronyms = { ”EPL", ”P1", ”P2"};
final int[][] studentGrades = {
{15, 18, 17},
{18, 14, 16}, // grades of student 50030312
{11, 13, 15},
{10, 19, 16}
};
2013/2014 Fundamentos de Programação 13
Etapa Descrição/notas
Compreender o problema! Ser cuidadoso e preciso.
Planear • (Escolher uma ou mais estratégias.)
• Partir a tarefa em pequenos passos.
• Descrever em pormenor cada passo.
Seguir o plano • Decidir qual o próximo passo.
• Executar o próximo passo.
Rever e estender • Analisar o processo de resolução.
• Aprender com os erros.
2013/2014 Fundamentos de Programação 14
Estratégia Descrição
Analogia Conhecemos soluções para problemas semelhantes?
Especialização O nosso problema é caso particular de outro de que conhecemos a
solução?
Generalização O nosso problema é um caso genérico de outro mais particular de
que conhecemos a solução?
Indução Compreendemos melhor o problema se estudarmos alguns dos seus
casos particulares?
Alteração Será que alterar o enunciado do problema o transforma noutro de
que conhecemos a solução?
2013/2014 Fundamentos de Programação 15
Estratégia Descrição
Aproximações
sucessivas
• Será que conseguimos encontrar uma forma de atingir um
subobjectivo e ficar, assim, mais próximo da solução?
• Será que podemos repetir o processo até resolver o
problema?
Decomposição ou
dividir para conquistar
Será que podemos dividir o problema em subproblemas de
mais simples solução e compor, assim, uma solução global?
Partir do objectivo Será que olhar para o nosso destino nos dá boas pistas
acerca do caminho a seguir?
Fazer um
diagrama/desenho
Nem calcula o quanto ajuda…
2013/2014 Fundamentos de Programação 16
 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
2013/2014 Fundamentos de Programação 17
Fonte: Wikipédia
 Arrays multidimensionais
 Estratégias de resolução de problemas
2013/2014 Fundamentos de Programação 18
 Arrays multidimensionais
 Estratégias de resolução de problemas
2013/2014 Fundamentos de Programação 19

Mais conteúdo relacionado

Mais procurados

Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3
Robson Ferreira
 

Mais procurados (19)

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...
 
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
 
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...
 
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...
 
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
 
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 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
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
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
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
 
Programação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código FonteProgramação Estruturada 2 - Aula 01 - Código Fonte
Programação Estruturada 2 - Aula 01 - Código Fonte
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01
 

Destaque

Destaque (9)

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...
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 
Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7
 
Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6
 
Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
 
Eng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitos
 

Semelhante a 7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamentos de Programação

Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizando
João Gomes
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
Mauro Pereira
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
12anogolega
 

Semelhante a 7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamentos de Programação (20)

Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
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
 
Aula1
Aula1Aula1
Aula1
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Modulo02
Modulo02Modulo02
Modulo02
 
Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizando
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e Planificações
 
MapReduce
MapReduceMapReduce
MapReduce
 
Modelagem Dimensional
Modelagem DimensionalModelagem Dimensional
Modelagem Dimensional
 
Criando módulos em java
Criando módulos em javaCriando módulos em java
Criando módulos em java
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de Informação
 
BSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
BSDDAY 2019 - Data Science e Artificial Intelligence usando FreebsdBSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
BSDDAY 2019 - Data Science e Artificial Intelligence usando Freebsd
 
Algoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de ProblemasAlgoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de Problemas
 
Macro br
Macro brMacro br
Macro br
 
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e PlanificaçõesPractice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Pattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptPattners Everywhere, Even in Javascript
Pattners Everywhere, Even in Javascript
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 

Mais de Manuel Menezes de Sequeira

Mais de Manuel Menezes de Sequeira (11)

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 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
 
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 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)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 
Eng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectosEng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectos
 

Último

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
AntonioVieira539017
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 

Último (20)

Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 

7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamentos de Programação

  • 1. Arrays multidimensionais Estratégias de resolução de problemas
  • 2.  Manipulação de caracteres  Relação entre os tipos char e int  Tipos de valor vs. tipos de referência 2013/2014 Fundamentos de Programação 2
  • 3.  Itens de array podem ser (referências para) arrays  Possíveis arrays de mais do que uma dimensão (arrays de arrays, arrays de arrays de arrays, ...)  Dimensões  1D: int[] grades;  2D: int[][] gradesPerCourse;  3D: int[][][] gradesPerCoursePerProgram;  Etc. 2013/2014 Fundamentos de Programação 3
  • 4. final double[][] identityMatrix = { {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0} }; 2013/2014 Fundamentos de Programação 4 identityMatrix 0 1 2 1.0 0.0 0.0 0 1 2 1.00.0 0.0 0 1 2 1.00.00.0 0 1 2 Sentido matemático do termo.
  • 5. final int[][] primeFactors = { null, {}, {2}, {3}, {2, 2}, {5}, {2, 3}, {7}, {2, 2, 2}, {3, 3}, {2, 5} }; 2013/2014 Fundamentos de Programação 5 O array primeFactors contém arrays com diferentes tamanhos. Para obter os factores primos de um dado natural 1 ≤ n ≤ 10 usa-se primeFactors[n], que é um simples array de inteiros. Como 0 (zero) não tem factores primos, o primeiro array não existe. Isso representa-se usando uma referência nula. Parámos nos factores primos de 10 porque não havia mais espaço na apresentação. :-P
  • 6. final double[] vector1 = {1.0, 0.0, 0.0}; final double[] vector1 = new double[] {1.0, 0.0, 0.0}; final double[] vector2 = new double[3]; 2013/2014 Fundamentos de Programação 6 vector1 1.0 0.0 0.0 0 1 2 vector2 0.0 0.0 0.0 0 1 2 Sentido matemático de vector. Vectores e matrizes matemáticas podem ser representados por arrays unidimensinais e bidimensionais do Java, respectivamente. Forma alternativa equivalente de inicialização. Itens inicializados com valor por omissão dos double.
  • 7. final double[][] identityMatrix = { {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0} }; final double[][] identityMatrix = new double[][] { new double[] {1.0, 0.0, 0.0}, new double[] {0.0, 1.0, 0.0}, new double[] {0.0, 0.0, 1.0} }; 2013/2014 Fundamentos de Programação 7 identityMatrix 0 1 2 1.0 0.0 0.0 1.00.0 0.0 1.00.00.0 Forma alternativa equivalente de inicialização.
  • 8. final double[][] rectangularMatrix = new double[2][3]; 2013/2014 Fundamentos de Programação 8 rectangularMatrix 0 1 0.0 0.0 0.0 0.00.0 0.0
  • 9. … final int[][] primeFactors = { null, {}, {2}, {3}, {2, 2}, {5}, {2, 3}, {7}, {2, 2, 2}, {3, 3}, {2, 5} }; 2013/2014 Fundamentos de Programação 9 primeFactors null0 1 2 3 4 5 6 7 8 9 10 2 3 2 2 2 2 2 …
  • 10. … final int secondFactorOf4 = primeFactors[4][1]; final int[] factorsOf8 = primeFactors[8]; final int firstFactorOf8 = factorsOf8[0]; 2013/2014 Fundamentos de Programação 10 primeFactors null0 1 2 3 4 5 6 7 8 9 10 2 3 2 2 … ? secondFactorOf4 2 secondFactorOf4 ? firstFactorOf8 2 firstFactorOf8 ? factorsOf8factorsOf8 2 2 2
  • 11. … out.println(primeFactors.length); out.println(primeFactors[2].length); out.println(primeFactors[8].length); 2013/2014 Fundamentos de Programação 11 primeFactors null0 1 2 3 4 5 6 7 8 9 10 2 3 2 2 2 2 2 … _11 _ 11 1 _ 11 1 3 _
  • 12. final int[][] gradesPerCourse = { {14, 16}, {12, 18, 20} }; int numberOfGrades = 0; int sumOfGrades = 0; for (int course = 0; course != gradesPerCourse.length; course++) { for (int i = 0; i != gradesPerCourse[course].length; i++) sumOfGrades += gradesPerCourse[course][i]; numberOfGrades += gradesPerCourse[course].length; } final double averageOfGrades = sumOfGrades / (double) numberOfGrades; 2013/2014 Fundamentos de Programação 12 Cálculo da média de todas as notas de todos os cursos.
  • 13. Sejam 1. um array com os números das/os alunas/os, 2. um array com as siglas das UC e 3. um array de notas, em que cada linha corresponde às notas que a/o aluna/o correspondente tem nas UC indicadas, uma por coluna. Escreva código Java que 1. mostre as notas de cada aluna/o, 2. mostre a média das notas de cada aluna/o e 3. mostre a média mais alta, identificando a quem pertence. final int[] studentIDs = {50020032, 50030312, 50025342, 50031432}; final String[] courseAcronyms = { ”EPL", ”P1", ”P2"}; final int[][] studentGrades = { {15, 18, 17}, {18, 14, 16}, // grades of student 50030312 {11, 13, 15}, {10, 19, 16} }; 2013/2014 Fundamentos de Programação 13
  • 14. Etapa Descrição/notas Compreender o problema! Ser cuidadoso e preciso. Planear • (Escolher uma ou mais estratégias.) • Partir a tarefa em pequenos passos. • Descrever em pormenor cada passo. Seguir o plano • Decidir qual o próximo passo. • Executar o próximo passo. Rever e estender • Analisar o processo de resolução. • Aprender com os erros. 2013/2014 Fundamentos de Programação 14
  • 15. Estratégia Descrição Analogia Conhecemos soluções para problemas semelhantes? Especialização O nosso problema é caso particular de outro de que conhecemos a solução? Generalização O nosso problema é um caso genérico de outro mais particular de que conhecemos a solução? Indução Compreendemos melhor o problema se estudarmos alguns dos seus casos particulares? Alteração Será que alterar o enunciado do problema o transforma noutro de que conhecemos a solução? 2013/2014 Fundamentos de Programação 15
  • 16. Estratégia Descrição Aproximações sucessivas • Será que conseguimos encontrar uma forma de atingir um subobjectivo e ficar, assim, mais próximo da solução? • Será que podemos repetir o processo até resolver o problema? Decomposição ou dividir para conquistar Será que podemos dividir o problema em subproblemas de mais simples solução e compor, assim, uma solução global? Partir do objectivo Será que olhar para o nosso destino nos dá boas pistas acerca do caminho a seguir? Fazer um diagrama/desenho Nem calcula o quanto ajuda… 2013/2014 Fundamentos de Programação 16
  • 17.  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 2013/2014 Fundamentos de Programação 17 Fonte: Wikipédia
  • 18.  Arrays multidimensionais  Estratégias de resolução de problemas 2013/2014 Fundamentos de Programação 18
  • 19.  Arrays multidimensionais  Estratégias de resolução de problemas 2013/2014 Fundamentos de Programação 19