Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.

Slides:



Advertisements
Apresentações semelhantes
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores.
Advertisements

Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Programação em Java Prof. Maurício Braga
Programação Orientada a Objetos*
Estruturas de Dados Marcio Gonçalves.
Laboratório de programação III Linguagem C
Algoritmos e Estrutura de Dados I
Introdução a Programação
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
UDESC - Prof. Juliano Maia
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Construção de Compiladores
Lógica de Programação Módulo II
Ponteiros.
Classes e objetos Arrays e Sobrecarga
Capítulo 6 Arrays & Clusters. Uma array é uma lista de informações indexadas todas do mesmo tipo. Ela pode ter no máximo ((2exp31)) -1 elementos por dimensão.
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Vetores e Matrizes Laboratório de ICCN Marco Antonio Montebello Júnior
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 8 Ponteiros Monitoria de Introdução à Programação.
Aula prática 6 Vetores e Matrizes
Aula Prática 4 Monitoria IP/CC (~if669).
Linguagens de Programação
PHP Tipos de dados Constantes.
Linguagem de Programação II Parte VII
Linguagem de Programação II Parte V
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Capítulo III Utilizando Arrays.
Aula prática 6 Vetores e Matrizes
7 Arrays.
Professor Mário Dantas
Prof. Ricardo Santos PONTEIROS
Vetores Imagine que você tem que receber o nome e a nota de 50 alunos de uma escola, e depois listar o nome de cada um e a média final de cada aluno e.
Fundamentos de Programação
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Vetores e Matrizes Ameliara Freire
JAVA Orientação a Objetos Sun Campus Ambassador Aula 5.
Módulo I Capítulo 6: Matrizes
By Ducheno Kelly Centro de Formação São Domingos.
Módulo I Capítulo 5: Vetores
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Programação I Aula 12 (Arrays Bidimensionais)
BC-0505 Processamento da Informação Santo André, Março de 2011 Professor: Carlos Alberto Kamienski -
Linguagem de Programação JAVA
Laboratório I Mateus Raeder. Mateus Raeder – maio de 2010 Arrays unidimensionais  Arrays unidimensionais são objetos que permitem ao programador armazenar.
Linguagem de Programação JAVA
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Laboratório I Mateus Raeder. Mateus Raeder – maio de 2010 Arrays  Variável: armazena apenas um valor  Como criar em uma única variável, espaço para.
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Profa. Patrícia A. Jaques
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
Introdução ao C++ para programadores OO Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira {fcfl, jpsml,
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
 A linguagem Java tem diversas classes para a manipulação dos conjuntos de dados. Esses dados podem ser organizados de duas maneiras diferentes: ◦ Vetores.
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Array e ArrayList LPOO – 01/09/14.
Linguagem de Programação
Programação em C Aula 9.
1 Programação – JAVA Unidade - 4 Arrays e Strings Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos (Arrays) Carla Merkle Westphall INE-CTC-UFSC
Minicurso Java Básico Ruddá Beltrão | Cristian Costa.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Transcrição da apresentação:

Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em arrays: busca linear e busca binária 7.7 arrays multidimensionais

7.1 Introdução Arrays estruturas de dados dados relacionados de um mesmo tipo uma vez criados, mantém o mesmo tamanho

7.2 Arrays Arrays Grupo de variáveis Tendo o mesmo tipo Tendo o mesmo nome

c[ 0 ] -45 6 72 1543 -89 62 -3 1 6453 78 Nome do array (observe que todos os elementos do array têm o mesmo nome, c) c[ 1 ] c[ 2 ] c[ 3 ] c[ 4 ] c[ 5 ] c[ 6 ] c[ 7 ] c[ 8 ] c[ 9 ] índice do elemento no array c c[ 10 ] c[ 11 ] Fig. 7.1 Um array de 12 elementos.

7.2 Arrays (cont.) Índice número da posição entre colchetes Deve ser um número positivo ou uma expressão inteira a = 5; b = 6; c[ a + b ] += 2; Soma 2 a c[ 11 ]

7.2 Arrays (cont.) Examine o array c c é o nome do array c.length devolve o tamanho do vetor c c tem 12 elementos ( c[0], c[1], … c[11] ) O valor de c[0] é –45

7.3 Declarando e Criando Arrays Arrays são objetos que ocupam memória Criados dinamicamente com a palavra reservada new int c[] = new int[ 12 ]; Equivalente a: int c[]; // declara uma variável array c = new int[ 12 ]; // cria o array Podemos criar também arrays de objetos String b[] = new String[ 100 ];

7.4 Exemplos Usando Arrays Declarando arrays Criando arrays Inicializando arrays Manipulando os elementos de um array

7.4 Exemplos Usando Arrays (Cont.) Criando e inicializando um array Declare o array Crie o array Initialize os elementos do array

InitArray.java Linha 6 Declara array como um array de ints Linha 8 Instancia um array de 10 posições. Cada int é inicializado com 0 por default Linha 13 array.length retorna o tamanho do array Linha 14 array[conta] retorna o inteiro indexado por conta

InitArray.java Cada posição do array é inicializada com 0 por default

7.4 Exemplos Usando Arrays (Cont.) Inicializando um array usando uma lista de inicializadores Items entre chaves ({}) Items em listas separadas por vírgulas int n[] = { 10, 20, 30, 40, 50 }; Cria um array de 5 elementos valor dos índices: 0, 1, 2, 3, 4 Não é necessário usar a palavra reservada new

InitArray.java Linha 5 Declara vetor como um array de ints Linha 5 O compilador usa a lista de inicialização para alocar o array

InitArray.java Cada elemento do vetor corresponde a um elemento na lista de inicializações

7.4 Exemplos Usando Arrays (Cont.) Calculando o valor a ser armazenado em cada elemento do array Inicializa os elementos de um array de inteiros com 10 inteiros positivos e pares

InitArray.java Linha 7 Declare vetor como um array de ints Linha 7 Crie 10 ints para vetor Linha 10 Use o índice de vetor para atribuir valores aos elementos do array

InitArray.java

7.4 Exemplos Usando Arrays (Cont.) Somando os elementos de um array Os elementos de um array podem representar uma série de valores Podemos somar estes valores

Linha 5 Declara array com uma lista de inicializadores Linhas 8-9 Soma todos os valores do array

7.4 Exemplos Usando Arrays (Cont.) Usando histogramas para mostrar graficamente o conteúdo de um array Histograma Imprima cada valor numérico como uma barra de asteriscos (*)

Linha 5 Declara array com uma lista de inicialização Linhas 12 e 13 Para cada elemento de array imprime o número correspondente de asteriscos

Histograma.java

7.4 Exemplos Usando Arrays (Cont.) Usando os elementos de um array como contadores Use os elementos do vetor como uma série de contadores para fazer alguma estatística dos dados

RollDie.java Linha 5 Declara frequencia como um array de 7 ints Linhas 7-8 Gera aleatoriamente 6000 inteiros no intervalo 1-6 Linha 8 Incrementa os elementos de frequencia nas posições associadas com o número aleatório gerado

7.4 Exemplos Usando Arrays (Cont.) Usando arrays para analisar os resultados de pesquisas 40 estudantes dão notas para a qualidade de alimentos Escala de 1-10: 1 significa horrível, 10 significa excelente Coloque as 40 respostas em um array de inteiros Apresente os resultados consolidados

Linhas 5-13 Declare respostas como um array para armazenar 40 respostas Linha 15 Declare frequencia como um array de 10 inteiros Linhas 18-20 Para cada resposta, incremente os valores do array frequencia na posição associada com a resposta

7.4 Exemplos Usando Arrays (Cont.) Alguns pontos adicionais Ao percorrer um array em um laço O índice não deve nunca se tornar negativo O índice deve ser menor do que o número total de elementos Quando ocorre uma referência inválida a um elemento de um array: Java gera uma exceção: ArrayIndexOutOfBoundsException Veremos o tratamento de exceções mais tarde

7.5 Referências e Passagem de Parâmetros por Referência Duas formas de passar argumentos para os métodos Passagem por valor Uma cópia do valor do argumento é passada para o método invocado em Java, todo tipo primitivo é passado por valor Passagem por referência O método que invoca, dá ao método invocado acesso direto ao seus dados O método invocado pode manipular esses dados Desempenho melhor do que a passagem por valor em Java, todo objeto é passado por referência em Java, arrays são objetos Portanto, arrays são passados para os métodos por referência

7.6 Passando Arrays para Métodos Para passar um array como argumento para um método Escreva o nome do array sem os colchetes O Array temperaturas é declarado como int temperaturas = new int[ 24 ]; A chamada do método modificaArray(temperaturas ); Passa o array temperaturas para o método modificaArray

Declara um array de 5 inteiros com uma lista de inicialização Passa o array por referência para o método modificaArray Passa array[3] por valor para o método modifyElement

O método modificaArray manipula diretamente o array O método modificaElemento manipula uma cópia do tipo primitivo O tipo primitivo original não é modificado

O objeto, passado por referência, é modificado O tipo primitivo, passado por valor, não é modificado

7.7 Ordenando Arrays Ordenando dados Atraiu intensas pesquisas na área da ciência da computação método da Bolha Valores menores "borbulham" em direção ao início do array Valores maiores "afundam" em direção ao final do array Usa laços aninhados para efetuar múltiplas passagens pelo array Cada passo compara pares de elementos contíguos do array Os pares são mantidos inalterados se eles já estão em ordem crescente (ou se são iguais) Os elementos do par trocam de posição se eles estão em ordem decrescente

Linha 3 Declare um array de 10 posições com uma lista de inicializações Linhas 9-20 O método da bolha (bubbleSort) para ordenar o array

7.8 Busca em Arrays: Busca Linear e Busca Binária Procurando elementos em arrays de grandes dimensões Determine se o array contém valores que casam com a chave de busca busca linear busca binária

7.8 Busca em Arrays: Busca Linear e Busca Binária (Cont.) Compare cada elemento do array com a chave de busca Se a chave de busca for encontrada retorne o índice da posição onde ela foi encontrada Se a chave de busca não for encontrada, retorne -1 (índice inválido) Funciona melhor para arrays pequenos ou não ordenados Ineficiente para arrays com muitos elementos

Linha 3 Declara e instancia um array de 100 ints Linhas 5-6 preenche array com inteiros pares Linha 10 Percorre array usando um laço Lines 11-14 Se o elemento na posição i é igual à chave de busca, interrompe a busca

7.8 Busca em Arrays: Busca Linear e Busca Binária (Cont.) Eficiente para arrays grandes e ordenados Elimina metade dos elementos a cada comparação Compara o elemento do meio do array com a chave de busca Se o elemento é igual a chave de busca Retorna o índice da posição corrente Se o elemento é menor do que a chave Repete a busca na metade de cima do array Se o elemento é maior do que a chave Repete a busca metade de baixo do array Continue a busca até que: o elemento do meio é igual a chave de busca (sucesso) O conjunto de números não pesquisados contém apenas um elemento e este não é igual à chave (falha)

Declara e instancia um array de 15 posições Preenche array com números pares

Se a chave de busca é igual ao elemento do meio do array, interrompe a busca Se a chave de busca é menor do que o elemento do meio do array, repete a busca na metade de baixo do array Se a chave de busca é maior do que o elemento do meio do array, repete a busca na metade de cima do array Constrói a String de saída usada para imprimir o intervalo sendo pesquisado

7.9 Arrays Multidimensionais Tabelas com linhas e colunas Arrays bidimensionais Declaração de um array bidimensional b[2][2] int b[][] = { { 1, 2 }, { 3, 4 } }; 1 e 2 inicializam b[0][0] e b[0][1] 3 e 4 inicializam b[1][0] e b[1][1] int b[][] = { { 1, 2 }, { 3, 4, 5 } }; linha 0 contém os elementos 1 e 2 linha 1 contém os elementos 3, 4 e 5

7.9 Arrays Multidimensionais (Cont.) Criando arrays multidimensionais Podem ser alocados dinamicamente array 3-por-4 int b[][]; b = new int[ 3 ][ 4 ]; As linhas podem ter diferentes números de colunas int b[][]; b = new int[ 2 ][ ]; // aloca linhas b[ 0 ] = new int[ 5 ]; // aloca a linha 0 b[ 1 ] = new int[ 3 ]; // aloca a linha 1

Fig. 7.13 Array bidimensional com 3 linhas e 4 colunas. índice da Coluna índice da Linha nome do array Fig. 7.13 Array bidimensional com 3 linhas e 4 colunas.

Declara array1 um array 2 x 3 Declara array2 um array de 3 linhas e número variável de colunas array[linha].length retorna o número de colunas associadas com o índice linha Use a notação de dois colchetes para acessar os valores no array bidimensional

Outro exemplo DoubleArray.java

Declara notascomo um array 3-por-4 Cada linha representa um estudante; cada coluna representa a nota de uma prova ArrayDoubles Determina o mínimo e o máximo para todos os estudantes Determina a média para cada estudante Usa laços aninhados para procurar a menor nota

Usa laços aninhados para procurar a maior nota ArrayDoubles Usa laços aninhados para procurar a maior nota O método media recebe as notas de um aluno como parâmetro Calcula a soma dos elementos do array Divide pelo número de elementos para obter a média