SlideShare une entreprise Scribd logo
1  sur  20
Atribuições especiais
Arrays em Java
Tipos de ciclos (while e do-while, for e foreach)
Classes-pacote
 Introdução ao Java
 Variáveis
 Instrução de selecção if-else
 Instruções de iteração while e do-while
 Métodos de classe (public static …)
 Etc.
2013/2014 Fundamentos de Programação 2
Atribuição simples Atribuição especial Observação
sum = sum + value; sum += value; Atribuições especiais semelhantes:
• -=
• *=
• /=
• %=
i = i + 1; ++i;
i++;
Versões prefixo e sufixo equivalentes
neste contexto. Não são equivalentes
em geral!j = j - 1; --j;
j--;
2013/2014 Fundamentos de Programação 3
 Sequências de itens com comprimento fixado durante
construção
 Declaração
 tipoDosItens[] nome;
 Declaração, construção e inicialização
 tipoDosItens[] nome =
new tipoDosItens[comprimento];
 Exemplos
 final double[] grades = new double[numberOfStudents];
 final int[] sizes = new int[numberOfClasses];
 final int numberOfGrades = grades.length;
2013/2014 Fundamentos de Programação 4
construção
 Itens identificados por índices
 Primeiro item: índice 0 (zero)
 Último item: índice array.length - 1
 Exemplos
 int firstSize = sizes[0];
 int lastSize = sizes[sizes.length - 1];
2013/2014 Fundamentos de Programação 5
Listas em Snap! Arrays Java
int[] values = new int[5];
values.length
int value = values[2];
values[0] = 7;
2013/2014 Fundamentos de Programação 6
Valores por omissão (zero) e atribuições Valores explícitos
final int[] values = new int[3];
values[0] = 0;
values[1] = 2;
values[2] = 4;
final int[] values = {0, 2, 4};
2013/2014 Fundamentos de Programação 7
int i = 0;
while (i != 10) {
…
i++;
}
2013/2014 Fundamentos de Programação 8
guarda
inicialização
passo acção
progresso
 Instrução de iteração for
 Alternativa a while
 Tipicamente usado com iteradores
 Útil para percorrer arrays
2013/2014 Fundamentos de Programação 9
int i = 0;
while (i != 10) {
…
i++;
}
for (int i = 0; i != 10; i++) {
…
}
2013/2014 Fundamentos de Programação 10
double sumOfGrades = 0.0;
int i = 0;
while (i != grades.length) {
sumOfGrades += grades[i];
i++;
}
double sumOfGrades = 0.0;
for (int i = 0; i != grades.length; i++) {
sumOfGrades += grades[i];
}
2013/2014 Fundamentos de Programação 11
[¬guarda]
[guarda]
inicialização
passo
[¬guarda]
inicialização
acção
progresso
[guarda]
inicialização
passo
[guarda]
[¬guarda]
while for do-while
2013/2014 Fundamentos de Programação 12
double sumOfGrades = 0.0;
for (int i = 0; i != grades.length; i++) {
sumOfGrades += grades[i];
}
double sumOfGrades = 0.0;
for (double grade : grades) {
sumOfGrades += grade;
}
Excelente para
percorrer
arrays.
2013/2014 Fundamentos de Programação 13
Possível Preferível
while (values[i] != value) {
i++;
}
while (values[i] != value)
i++;
if (hour == 0) {
hour = 23;
} else {
hour--;
}
if (hour == 0)
hour = 23;
else
hour--;Bloco de
instruções.
Possível Preferível
if (m < n)
maximum = n;
else
maximum = m;
maximum = m < n ? n : m;
2013/2014 Fundamentos de Programação 14
instrução operação
/**
* Returns maximum of the items in array.
*
* @param array array whose maximum will be returned.
* @returns the maximum of the items in array.
* @pre array must have at least one item
*/
public static int maximumOf(final int[] array) {
int maximum = array[0];
for (int i = 1; i != array.length; i++)
if (maximum < array[i])
maximum = array[i];
return maximum;
}
2013/2014 Fundamentos de Programação 15
Assume-se que array
não é null.A ver mais
tarde…
Documentação.
 Todos métodos static , i.e., métodos de classe (a ver mais tarde)
 Construtor privado (a ver mais tarde)
 Por exemplo, classe pacote java.lang.Math
 Métodos
▪ Math.abs(int/double) –Valor absoluto do argumento.
▪ Math.sqrt(double) – Raiz quadrada aproximada do argumento.
▪ Math.pow(double, double) – Potência.
▪ Math.sin(double) – Seno.
▪ Math.cos(double) – Cosseno.
▪ …
 Constantes
▪ Math.PI –Valor double aproximado de π.
▪ Math.E –Valor double aproximado de e.
2013/2014 Fundamentos de Programação 16
public final class IntArrayUtilities {
private IntArrayUtilities() {
throw new RuntimeException("Attempt to instantiate " +
"package-class");
}
public static int maximumOf(final int[] array) {
…
}
public static int minimumOf(final int[] array) {
…
}
public static int[] sortedCopyOf(final int[] array) {
…
}
public static boolean thereAreDuplicatesIn(final int[] array) {
…
}
…
}
2013/2014 Fundamentos de Programação 17
import static java.lang.System.out;
import static IntArrayUtilities.*;
public class IntArrayUtilitiesTester {
public static void main(final String[] arguments) {
final int[] numbers = {9, 2, 6, 5, 8, 2};
out.println("Maximum of numbers is " + maximumOf(numbers));
out.println("Minimum of numbers is " + minimumOf(numbers));
final int[] sortedNumbers = sortedCopyOf(numbers);
out.println("The sorted numbers are:");
for (int number : sortedNumbers)
out.println("t" + number);
if (thereAreDuplicatesIn(numbers))
out.println("There are duplicate numbers.");
}
}
2013/2014 Fundamentos de Programação 18
 Java
 Arrays
 Ciclos for e foreach
 Simplificações sintácticas da atribuição
 Classes-pacote
2013/2014 Fundamentos de Programação 19
 Atribuições especiais
 Arrays em Java
 Tipos de ciclos:
 while e do-while
 for e foreach
 Classes pacote
2013/2014 Fundamentos de Programação 20

Contenu connexe

Tendances

Tendances (20)

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...
 
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...
 
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 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...
 
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...
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao 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#
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#
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
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...
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Java4
Java4Java4
Java4
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Java2
Java2Java2
Java2
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Java5
Java5Java5
Java5
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 

En vedette

Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
Charles Jungbeck
 

En vedette (14)

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...
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
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 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 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
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
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
 

Similaire à 5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundamentos de Programação

55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
Stephen Chin
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 

Similaire à 5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundamentos de Programação (20)

Aula5
Aula5Aula5
Aula5
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
Template method pattern
Template method patternTemplate method pattern
Template method pattern
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 
A linguagem java
A linguagem javaA linguagem java
A linguagem java
 
Groovy na plataforma Java
Groovy na plataforma JavaGroovy na plataforma Java
Groovy na plataforma Java
 
Aprendendo objective c - parte 1
Aprendendo objective c - parte 1Aprendendo objective c - parte 1
Aprendendo objective c - parte 1
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Introdução a linguagem Swift
Introdução a linguagem SwiftIntrodução a linguagem Swift
Introdução a linguagem Swift
 
Comandos e expressões
Comandos e expressõesComandos e expressões
Comandos e expressões
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-C
 
Aula4
Aula4Aula4
Aula4
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Groovy para javeiros - Migração Painless
Groovy para javeiros - Migração PainlessGroovy para javeiros - Migração Painless
Groovy para javeiros - Migração Painless
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 

Plus de Manuel Menezes de Sequeira

Plus de Manuel Menezes de Sequeira (13)

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 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 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
 
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
 

Dernier

Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 

Dernier (20)

Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Aula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptAula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.ppt
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
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*
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
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
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
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
 
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
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 

5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundamentos de Programação

  • 1. Atribuições especiais Arrays em Java Tipos de ciclos (while e do-while, for e foreach) Classes-pacote
  • 2.  Introdução ao Java  Variáveis  Instrução de selecção if-else  Instruções de iteração while e do-while  Métodos de classe (public static …)  Etc. 2013/2014 Fundamentos de Programação 2
  • 3. Atribuição simples Atribuição especial Observação sum = sum + value; sum += value; Atribuições especiais semelhantes: • -= • *= • /= • %= i = i + 1; ++i; i++; Versões prefixo e sufixo equivalentes neste contexto. Não são equivalentes em geral!j = j - 1; --j; j--; 2013/2014 Fundamentos de Programação 3
  • 4.  Sequências de itens com comprimento fixado durante construção  Declaração  tipoDosItens[] nome;  Declaração, construção e inicialização  tipoDosItens[] nome = new tipoDosItens[comprimento];  Exemplos  final double[] grades = new double[numberOfStudents];  final int[] sizes = new int[numberOfClasses];  final int numberOfGrades = grades.length; 2013/2014 Fundamentos de Programação 4 construção
  • 5.  Itens identificados por índices  Primeiro item: índice 0 (zero)  Último item: índice array.length - 1  Exemplos  int firstSize = sizes[0];  int lastSize = sizes[sizes.length - 1]; 2013/2014 Fundamentos de Programação 5
  • 6. Listas em Snap! Arrays Java int[] values = new int[5]; values.length int value = values[2]; values[0] = 7; 2013/2014 Fundamentos de Programação 6
  • 7. Valores por omissão (zero) e atribuições Valores explícitos final int[] values = new int[3]; values[0] = 0; values[1] = 2; values[2] = 4; final int[] values = {0, 2, 4}; 2013/2014 Fundamentos de Programação 7
  • 8. int i = 0; while (i != 10) { … i++; } 2013/2014 Fundamentos de Programação 8 guarda inicialização passo acção progresso
  • 9.  Instrução de iteração for  Alternativa a while  Tipicamente usado com iteradores  Útil para percorrer arrays 2013/2014 Fundamentos de Programação 9 int i = 0; while (i != 10) { … i++; } for (int i = 0; i != 10; i++) { … }
  • 10. 2013/2014 Fundamentos de Programação 10 double sumOfGrades = 0.0; int i = 0; while (i != grades.length) { sumOfGrades += grades[i]; i++; } double sumOfGrades = 0.0; for (int i = 0; i != grades.length; i++) { sumOfGrades += grades[i]; }
  • 11. 2013/2014 Fundamentos de Programação 11 [¬guarda] [guarda] inicialização passo [¬guarda] inicialização acção progresso [guarda] inicialização passo [guarda] [¬guarda] while for do-while
  • 12. 2013/2014 Fundamentos de Programação 12 double sumOfGrades = 0.0; for (int i = 0; i != grades.length; i++) { sumOfGrades += grades[i]; } double sumOfGrades = 0.0; for (double grade : grades) { sumOfGrades += grade; } Excelente para percorrer arrays.
  • 13. 2013/2014 Fundamentos de Programação 13 Possível Preferível while (values[i] != value) { i++; } while (values[i] != value) i++; if (hour == 0) { hour = 23; } else { hour--; } if (hour == 0) hour = 23; else hour--;Bloco de instruções.
  • 14. Possível Preferível if (m < n) maximum = n; else maximum = m; maximum = m < n ? n : m; 2013/2014 Fundamentos de Programação 14 instrução operação
  • 15. /** * Returns maximum of the items in array. * * @param array array whose maximum will be returned. * @returns the maximum of the items in array. * @pre array must have at least one item */ public static int maximumOf(final int[] array) { int maximum = array[0]; for (int i = 1; i != array.length; i++) if (maximum < array[i]) maximum = array[i]; return maximum; } 2013/2014 Fundamentos de Programação 15 Assume-se que array não é null.A ver mais tarde… Documentação.
  • 16.  Todos métodos static , i.e., métodos de classe (a ver mais tarde)  Construtor privado (a ver mais tarde)  Por exemplo, classe pacote java.lang.Math  Métodos ▪ Math.abs(int/double) –Valor absoluto do argumento. ▪ Math.sqrt(double) – Raiz quadrada aproximada do argumento. ▪ Math.pow(double, double) – Potência. ▪ Math.sin(double) – Seno. ▪ Math.cos(double) – Cosseno. ▪ …  Constantes ▪ Math.PI –Valor double aproximado de π. ▪ Math.E –Valor double aproximado de e. 2013/2014 Fundamentos de Programação 16
  • 17. public final class IntArrayUtilities { private IntArrayUtilities() { throw new RuntimeException("Attempt to instantiate " + "package-class"); } public static int maximumOf(final int[] array) { … } public static int minimumOf(final int[] array) { … } public static int[] sortedCopyOf(final int[] array) { … } public static boolean thereAreDuplicatesIn(final int[] array) { … } … } 2013/2014 Fundamentos de Programação 17
  • 18. import static java.lang.System.out; import static IntArrayUtilities.*; public class IntArrayUtilitiesTester { public static void main(final String[] arguments) { final int[] numbers = {9, 2, 6, 5, 8, 2}; out.println("Maximum of numbers is " + maximumOf(numbers)); out.println("Minimum of numbers is " + minimumOf(numbers)); final int[] sortedNumbers = sortedCopyOf(numbers); out.println("The sorted numbers are:"); for (int number : sortedNumbers) out.println("t" + number); if (thereAreDuplicatesIn(numbers)) out.println("There are duplicate numbers."); } } 2013/2014 Fundamentos de Programação 18
  • 19.  Java  Arrays  Ciclos for e foreach  Simplificações sintácticas da atribuição  Classes-pacote 2013/2014 Fundamentos de Programação 19
  • 20.  Atribuições especiais  Arrays em Java  Tipos de ciclos:  while e do-while  for e foreach  Classes pacote 2013/2014 Fundamentos de Programação 20