aula 3 igor ebrahim (ies) if669 - introdução à programação monitoria de ip

20
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Upload: internet

Post on 21-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Aula 3Aula 3

Igor Ebrahim (ies)

if669 - Introdução à Programação

Monitoria de IP

Page 2: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Agenda

• Declarando e Usando Arrays• Arrays de Objetos• Arrays Bidimensionais

Page 3: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays

• Arrays são listas ordenadas de valores que permitem armazenar uma grande quantidade de informação;

0 1 2 3 4 5 6 7 8 9

79 87 94 82 67 98 87 81 74 91

Um array de tamanho N é indexado de 0 a N-1

valores

Nome do array inteiro

Cada valor tem um índice numérico

Esse array guarda 10 valores indexados de 0 a 9

Page 4: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays

• Para referenciar um determinado valor armazenado em um array, usa-se o nome do array seguido do índice entre colchetes;

• Exemplo:valores[3]; // valor 82 índice 3

• Essa expressão representa um inteiro e pode ser usada em qualquer lugar que uma variável de inteiro pudesse também;

0 1 2 3 4 5 6 7 8 9

79 87 94 82 67 98 87 81 74 91

Page 5: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays

• Por exemplo, um elemento de array pode receber um valor, ser impresso ou usado em algum cálculo:

valores[2] = 89;

valores[primeiro] = valores[primeiro] + 2;

media = (valores[0] + valores[1])/2;

MiniJavaSystem console;

console = new MiniJavaSystem();

console.println(“Maior = " + valores[5]);

Page 6: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays

• Os valores guardados no array são chamados de elementos do array;

• Um array armazena múltiplos valores do mesmo tipo – o tipo do elemento;

• O tipo do elemento pode ser um tipo primitivo ou uma referência para um objeto;

• Portanto, podemos criar um array de inteiros, um array de chars, um array de objetos;

• Em Java, o próprio array é um objeto e precisa ser instanciado;

Page 7: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays

• Outra maneira de descrever um array:

valores 79

87

94

82

67

98

87

81

74

91

Page 8: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Declarando Arrays

• O array valores pode ser declarado assim:int[] valores = new int[10];

• O tipo da variável valores é int[] (um array de inteiros);

• A variável valores referencia um novo objeto array que pode armazenar 10 inteiros;

• Alguns outros exemplos:

float[] precos = new float[500];

boolean[] flags;

flags = new boolean[20];

char[] codigo = new char[1750];

Page 9: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Usando Arrayspublic class BasicArray {

final static int LIMIT = 15;

final static int MULTIPLE = 10;

public static void main (String[] args) {

int[] list = new int[LIMIT];

// Inicializa os valores do array

for (int index = 0; index < LIMIT; index++)

list[index] = index * MULTIPLE;

for (int index = 0; index < LIMIT; index++)

System.out.print (list[index] + " ");

System.out.println ();

}

}

Page 10: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Checando os Limites

• No momento em que o array é criado ele tem seu tamanho fixado;

• Um índice usado para referenciar um valor do array deve apontar para um elemento válido;

• Isto é, o índice deve estar no intervalo de 0 a N-1;• Caso haja a tentativa de se ler fora do intervalo

permitido, Java lança uma exceção (ArrayIndexOutOfBoundsException);

Page 11: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Checando os Limites

• No momento em que o array é criado ele tem seu tamanho fixado;

• Um índice usado para referenciar um valor do array deve apontar para um elemento válido;

• Isto é, o índice deve estar no intervalo de 0 a N-1;• Caso haja a tentativa de se ler fora do intervalo

permitido, Java lança uma exceção (ArrayIndexOutOfBoundsException);

• Erro comum:

for (int index=0; index <= 100; index++)codes[index] = index*50 + epsilon;

problema

Page 12: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Checando os Limites

• Cada array tem uma constante pública chamada lenght que armazena o tamanho do array;

• Ele é usada da seguinte maneira:valores.lenght

• Note que o lenght armazena o número de elementos e não o maior índice do array;

Page 13: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Sintaxe Alternativa

• Os colchetes podem estar associados ao tipo dos elementos do array ou ao seu nome;

• Portanto, as duas declarações seguintes são equivalentes:

float[] precos;

float precos[];

• O primeiro formato é mais legível e, por isso, mais usado também.

Page 14: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Inicialização

• Podemos inicializar um array com apenas um passo:int[] units = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476};char[] letterGrades = {'A', 'B', 'C',

'D', ’F'};

• Os valores são delimitados por chaves e separados por vírgulas;

• Note que desta maneira não o new não é usado e o tamanho não especificado (o tamanho é determinado pelo números de itens na lista);

• Este tipo de inicialização só pode ser usado na declaração do array;

Page 15: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays como Parâmetros

• Um array inteiro pode ser passado como parâmetro para um método;

• Assim como os objetos, é passada ao método uma referencia para o array;

• Portanto, mudando um elemento do array no corpo deste método acarretará a mudança do original;

• Um único elemento do array também pode ser passado como parâmetro de um método;

Page 16: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays de Objetos

• Os elementos de um array podem ser referências para objetos;

• A seguinte declaração reserva espaço para armazenar 5 referências para Strings:

String[] words = new String[5];• Isto não instancia as Strings. Inicialmente é tudo

null;• Cada objeto deve ser instanciado separadamente;

Page 17: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays de Objetos

• O array words quando inicializado:

words -

-

-

-

-

• Neste ponto, a seguinte referência lançaria uma NullPointerException:

MiniJavaSystem c = new MiniJavaSystem();c.println (words[0]);

Page 18: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays de Objetos

• Após algumas Strings serem criadas e armazenadas no array;

“amizade”words

-

-

“lealdade”

“honra”

Page 19: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays Bidimensionais

• Arrays unidimensionais armazenam uma lista de elementos;

• Arrays bidimensionais podem ser imaginados como uma tabela, com linhas e colunas;

unidimensional bidimensional

Page 20: Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP

Arrays Bidimensionais

• Para ser preciso, em Java um array bidimenisonal não nada mais do que um array de arrays;

• Um array bidimensional pode ser declarado especificando o tamanho de cada dimensão separadamente:

int [][] valores = new int[12][30];• O elemento é referenciado usando dois índices:

int valor = valores[3][6];• Um array armazenado em uma linha, pode ser

referenciado usando um índice:

int[] linha = valores[3];