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

1,505 views
1,679 views

Published on

Fundamentos da Programação 5:
• Atribuições especiais
• Arrays em Java
• Tipos de ciclos (while e do-while, for e foreach)
• Classes-pacote

Apresentação 5 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,505
On SlideShare
0
From Embeds
0
Number of Embeds
1,037
Actions
Shares
0
Downloads
54
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Atribuições especiais Arrays em Java Tipos de ciclos (while e do-while, for e foreach) Classes-pacote
  2. 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. 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. 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. 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. 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. 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. 8. int i = 0; while (i != 10) { … i++; } 2013/2014 Fundamentos de Programação 8 guarda inicialização passo acção progresso
  9. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 19.  Java  Arrays  Ciclos for e foreach  Simplificações sintácticas da atribuição  Classes-pacote 2013/2014 Fundamentos de Programação 19
  20. 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

×