• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Apresentação 5 - Fundamentos de Programação
 

Apresentação 5 - Fundamentos de Programação

on

  • 744 views

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

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.

Statistics

Views

Total Views
744
Views on SlideShare
213
Embed Views
531

Actions

Likes
0
Downloads
31
Comments
0

2 Embeds 531

http://campusonline.europeia.pt 502
http://campusonline.isla.pt 29

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Apresentação 5 - Fundamentos de Programação Apresentação 5 - Fundamentos de Programação Presentation Transcript

    • 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 + item; sum += item; 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[30];  final int[] sizes = new int[numberOfClasses];  final int numberOfStudents = 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 sum = 0.0; int i = 0; while (i != grades.length) { sum += grades[i]; i++; } double sum = 0.0; for (int i = 0; i != grades.length; i++) { sum += 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 sum = 0.0; for (int i = 0; i != grades.length; i++) { sum += grades[i]; } double sum = 0.0; for (double grade : grades) { sum += 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 Tester { … 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.print(”The sorted numbers are: "); for (int number : numbers) 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