Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote

1,904 views
1,795 views

Published on

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

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,904
On SlideShare
0
From Embeds
0
Number of Embeds
44
Actions
Shares
0
Downloads
86
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote

  1. 1. Aula 4 Atribuições especiais Matrizes em Java Tipos de ciclos (ciclo for) Classes pacote
  2. 2. Da aula anterior… Introdução ao Java Variáveis Instrução de selecção if-else Ciclos while e do-while Métodos de classe (publicstatic …) 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
  3. 3. Operadores de atribuição especiais 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3
  4. 4. Matrizes Java (arrays) Sequências de itens com comprimento fixado durante construção Declaração tipoDosItens[]nome; Declaração, construção e inicialização tipoDosItens[]nome = newtipoDosItens[comprimento]; Exemplos final double[] grades = newdouble[numberOfStudents]; final int[] sizes = newint[numberOfClasses]; final intnumberOfStudents = grades.length; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4 construção
  5. 5. Matrizes Java (arrays) Itens identificados por índices Primeiro item: índice 0 (zero) Último item: índice matriz.length- 1 Exemplos intfirstSize = sizes[0]; intlastSize = sizes[sizes.length - 1]; 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5
  6. 6. Matrizes Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6
  7. 7. Construção de matrizes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7
  8. 8. int i = 0; while (i != 10) { … i++; } Ciclos: partes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 8 inicialização guarda passo acção progresso
  9. 9. Ciclos: for Ciclo for Alternativa a while Tipicamente usado com iteradores Útil para manipular de matrizes 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9 inti = 0; while (i != 10) { … i++; } for (inti = 0; i != 10; i++) { … }
  10. 10. Ciclos: while vs. for 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 10 doublesum = 0.0; int i = 0; while (i != grades.length) { sum += grades[i]; i++; } doublesum = 0.0; for (int i = 0; i != grades.length; i++) { sum += grades[i]; }
  11. 11. Ciclos: lado-a-lado… 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11 while for do-while inicialização inicialização inicialização [¬guarda] [¬guarda] [guarda] [guarda] passo acçãoprogresso passo [guarda] [¬guarda]
  12. 12. Blocos: se instrução única, dispensáveis 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12
  13. 13. Operador de selecção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13 instrução operação
  14. 14. Exemplo de método função /** * Returns maximum of the items in array. * * @paramarrayarray whose maximum will be returned. * @returns the maximum of the items in array. * @prearray must have at least one item */ public static intmaximumOf(final int[] array) { int maximum = array[0]; for (inti = 1; i != array.length; i++) if(maximum < array[i]) maximum = array[i]; return maximum; } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14 Assume-se que array não é null. A ver mais tarde…
  15. 15. Classe pacote 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) – Calcula valor absoluto. Math.sqrt(double) – Calcula raiz quadrada. Math.pow(double, double) – Calcula potência. Math.sin(double) – Calcula seno. Math.cos(double) – Calcula co-seno. … Constantes Math.PI – Valor de π. Math.E – Valor de e. 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
  16. 16. Classe pacote: exemplo public class IntArrayUtilities { private IntArrayUtilities() { throw new RuntimeException("Attempt to instantiate " + "package class"); } public staticintmaximumOf(final int[] array) { … } public staticint minimum(final int[] array) { … } public staticint[] sortedCopyOf(final int[] array) { … } public staticbooleanthereAreDuplicatesIn(final int[] array) { … } … } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16
  17. 17. Classe pacote: utilização import static java.lang.System.out; import static IntArrayUtilities.*; public class Tester { … public static void main(final String[] arguments) { final int[] myArray = {9, 2, 6, 5, 8, 2}; out.println("Maximum of array is " + maximum(array)); out.println("Minimum of array is " + minimum(array)); final int[] mySortedArray = sortedCopyOf(testArray); out.print("mySortedArray is: "); for (inti = 0; i != mySortedArray.length; i++) out.println("t" + mySortedArray[i]); if (thereAreDuplicatesIn(myArray)) out.println("myArray has duplicate items."); } } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17
  18. 18. A reter Java Matrizes Ciclo for Simplificações sintácticas Classes pacote 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
  19. 19. A ler... Capítulos 1 a 4 do livro: Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19
  20. 20. Sumário Atribuições especiais Matrizes em Java Tipos de ciclos (ciclo for) Classes pacote 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20

×