Buscar

Extra - Slides: Vetores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Presbiteriana Mackenzie 
Vetores em Java 
Profa. Ana Cristina dos Santos 
Faculdade de Computação e Informática 
Introdução à Programação 1 
Introdução à Programação 2 
• Estruturas de dados homogêneas: 
– vetores (arrays de tipos primitivos, em Java) 
Vetores 
Introdução à Programação 3 
Vetores em Java 
• Um vetor é um conjunto de informações do mesmo tipo 
referenciadas por um nome lógico comum, onde cada 
elemento do conjunto é obtido através de um índice. 
índices do vetor 0 1 2 3 4 5 6
elementos do vetor 32 10 8 12 23 9 18
um vetor de números inteiros, chamado vet
vet possui 7 elementos, indexados de 0 a 6
vet [ 2 ] = 8 ( o elemento de índice 2 em vet, contém valor 8 )
Introdução à Programação 4 
Vetores em Java 
• Vetores em Java são chamados de arrays (arranjos). 
• Arrays possuem tamanho definido no momento de sua 
criação (esse tamanho é fixo). 
• Valores de índices começam sempre em zero. 
 
• Exemplo: 
um vetor chamado nomeVetor, criado com 10 elementos: 
– nomeVetor[0] = valor1; // primeiro elemento do vetor 
– nomeVetor[9] = valor2; // último elemento do vetor 
– nomeVetor[10] = ... // ERRO! elemento inexistente! 
Introdução à Programação 5 
Vetores em Java 
• Os elementos de vetores podem ser de: 
– Tipo primitivo (int, double, char, boolean....); 
– Tipo objeto (referências a objetos de classes quaisquer, como, 
por exemplo, String). 
• Por enquanto, estudaremos apenas vetores de tipos 
primitivos. 
 
• Observação: 
– Em Java, existe uma classe Vector, que faz alocação dinâmica 
de memória para manipular arrays. Não utilizaremos Vector 
neste momento! 
Introdução à Programação 6 
Vetores em Java 
• Existem três fases bem distintas no uso de vetores: 
– Declaração do vetor 
• declaração de uma variável que referencia um tipo de 
estrutura homogênea 
– Criação do vetor 
• refere-se ao momento em que a estrutura de dados é 
criada na memória, com um tamanho pré-determinado 
– Manipulação dos elementos do vetor 
• quando os elementos do vetor são lidos ou alterados 
Introdução à Programação 7 
Vetores de Tipos Primitivos 
• Declaração: 
 tipoDado nomeVetor[ ]; // ou: 
 tipoDado[ ] nomeVetor; 
 
– Exemplos: 
• int faltas[ ]; 
• int[ ] valores; 
• double notas[ ]; 
• boolean aprovado[ ]; 
• int[ ] a, b; // dois vetores de inteiros: a, b 
• int a[ ], b; // um inteiro b e um vetor de inteiros a 
Introdução à Programação 8 
Vetores de Tipos Primitivos 
• Criação: 
 nomeVetor = new tipoDado [ qtd_elementos ] ; 
– Exemplos: 
• faltas = new int [ 10 ]; 
• notas = new double [ 10 ]; 
 
• Manipulação: 
 nomeVetor [ índice ] = valor; 
– Exemplos: 
• faltas[2] = faltas[0] + faltas[1]; // o 3º elemento do vetor faltas 
 // recebe a soma do 1° com o 2º 
Introdução à Programação 9 
Vetores em Java 
• Quando se sabe previamente o tamanho do vetor a ser 
criado e os valores iniciais de cada elemento, é possível 
fazer declaração, criação e inicialização conjuntas: 
 tipoDado nomeVetor[ ] = { valor1, valor2, ....}; 
• Exemplos: 
int faltas[ ] = { 0,1,2,3 }; // vetor com 4 inteiros 
double[ ] notas = { 2.5, 7.0 }; // vetor com 2 valores reais 
float[ ] a = { 1.4f, 2.3f }; // vetor com 2 reais (precisão simples) 
boolean[ ] b = { true,false,true }; // vetor com 3 booleanos 
String[ ] nomes = { "ana","paula" }; // vetor com 2 strings 
 // String não é tipo primitivo, mas aceita essa forma de 
inicializ. 
Introdução à Programação 10 
Exemplo 1 - Vetor de Reais (1/3) 
Vamos fazer um algoritmo que lê um vetor de 3 posições (reais), 
calcula e exibe a média aritmética dos elementos do vetor 
Nome: MediaAritmeticaVetor 
Objetivo: Calcular a média aritmética 
Variáveis: 
 real V[3] 
 inteiro i 
 real soma, media 
Introdução à Programação 11 
Exemplo 1 - Vetor de Reais (1/3) 
Vamos fazer um algoritmo que lê um vetor de 3 posições (reais), 
calcula e exibe a média aritmética dos elementos do vetor 
Inicio 
 PARA i DE 0 ATÉ 2 FAÇA 
 LEIA V[ i ] 
 FIM-PARA 
 
 soma  0 
 PARA i DE 0 ATÉ 2 FAÇA 
 soma  soma + V[ i ] 
 FIM_PARA 
 
 media  soma / 3 
Fim 
Introdução à Programação 12 
Exemplo 1 - Vetor de Reais (2/3) 
 
public class MediaAritmeticaVetor { 
 
 public static void main ( String args [ ] ) { 
 
 double v[ ] ; // declara um vetor de números reais 
 int i; 
 double soma, media; 
 
 v = new double [3]; // cria um vetor de reais com 3 posições 
 
 // lê todos os elementos do vetor, a partir da digitação do 
usuário: 
 for ( i = 0 ; i <= 2 ; i++ ) { 
 v [ i ] = EntradaSaida.leReal ( "Digite um nº real:” ); 
 } 
 
. . . continua . . . 
Acesso a um elemento do vetor 
Introdução à Programação 13 
Exemplo 1 - Vetor de Reais (3/3) 
 . . . continuação . . . 
 
 soma = 0; 
 for ( i = 0 ; i <= 2 ; i++ ) { 
 soma = soma + v [ i ] ; 
 } 
 
 media = soma / 3 ; 
 EntradaSaida.exibeMsg("A média dos elementos do vetor é ” + 
media); 
 
 } // fim do método main (módulo principal) 
 
} // fim do programa (da classe MediaAritmeticaVetor) 
 
Acesso a um 
elemento do vetor 
Introdução à Programação 14 
Depuração 
• Digite e execute 
• Depois de ter o exemplo funcionando, depure-o: 
– crie um breakpoint 
– acione Debug As Java Application 
–prossiga passo a passo com F6 
–observe os valores no vetor (expandir v) 
Introdução à Programação 15 
Exercício 1 - Vetores 
• Escreva um algoritmo (e transcreva-o para Java) que: 
– recebe do usuário uma quantidade inteira positiva; 
– cria um vetor de inteiros, com o número de posições 
igual à quantidade fornecida pelo usuário; 
– preenche o vetor, pedindo que o usuário digite a 
quantidade dada de inteiros; 
– percorre o vetor, identificando qual é o menor dos 
inteiros fornecidos, usando um método para isto. 
– exibe o menor dos valores encontrados no vetor. 
Introdução à Programação 16 
Vetores e Modularização 
• Com muita frequência, algoritmos que envolvem 
vetores fazem: 
– a leitura dos dados para preencher o vetor; 
– a varredura para exibição de todos os elementos do 
vetor. 
• Isso sugere o uso de módulos, para reutilizarmos a 
codificação das tarefas acima. 
• Veremos alguns exemplos de uso de vetores em 
módulos. Tais módulos serão acrescentados à classe 
EntradaSaida, que será renomeada para ESVetor 
Introdução à Programação 17 
Vetores e Modularização 
• A classe ESVetor conterá os seguintes procedimentos, 
além daqueles de EntradaSaida: 
 
public static void leVetorInteiros (int v[ ], int tam) 
recebe um vetor v de inteiros já criado e seu 
tamanho; altera v com valores lidos do teclado; 
 
public static void exibeVetorInteiros (int v[ ], int tam) 
recebe um vetor v de inteiros já criado e preenchido e 
seu tamanho; exibe todos os dados de v 
Introdução à Programação 18 
Vetores e Modularização 
• Mais procedimentos da classe ESVetor: 
 
public static void leVetorReais (double v[ ], int tam) 
recebe um vetor v de reais já criado e seu tamanho; 
altera v com valores lidos do teclado; 
 
public static void exibeVetorReais (double v[ ], int tam) 
recebe um vetor v de reais já criado e preenchido e seu 
tamanho; exibe todos os dados de v 
Introdução à Programação 19 
Classe ESVetor (1/2) 
. . . Trecho de ESVetor: . . . 
public static void leVetorInteiros (int v[ ], int tam) { 
 int i; 
 for ( i=0 ; i<tam ; i++ ) { 
 v[ i ] = leInteiro("Digite um inteiro para v[" +i+ "]"); 
 } 
} 
 
public static void leVetorReais(double v[ ], int tam) { 
 int i; 
 for ( i=0 ; i<tam ; i++ ) { 
 v[ i ] = leReal("Digite um real para v[" +i+ "]"); 
 } 
} . . . continua . . . 
O parâmetro v[ ] é uma 
referência a um vetor 
A posição i de v é alterada 
definitivamente, isto é, há impacto 
na variável do 
módulo chamador 
Introdução à Programação 20 
Classe ESVetor (2/2) 
. . . continuação . . . 
public static void exibeVetorInteiros (int v[ ], int tam) { 
 int i; 
 String saida=""; 
 for ( i=0 ; i<tam ; i++ ) { 
 saida = saida + "v[" +i+ "] = " + v[i] + "\n" ; 
 } 
 exibeMsg(saida); 
} 
public static void exibeVetorReais (double v[ ], int tam) { 
 String saida=" "; 
 for ( int i=0 ; i<tam ; i++ ) { 
 saida = saida + "v[" +i+ "] = " + v[i] + "\n" ; 
 } exibeMsg(saida); 
} 
A string auxiliar saida guarda 
todos os dados de v, para 
posterior exibição 
Introdução à Programação 21 
Exercício 2 - Vetores e Módulos 
Crie um procedimento que recebe três vetores de inteiros 
A, B e C de igual tamanho, já criados e preenchidos 
com valores. Altere o vetor C para que contenha a 
soma de A com B. 
A assinatura do procedimento deve ser: 
public static void somaVetores ( int A[ ], int B[ ], int C[ ], int tam ) 
 
Exemplo: 
para tam=7 
Introdução à Programação 22 
Exercício 3 - Vetores e Módulos 
• Crie um programa que contenha dois procedimentos: 
– somaVetores, do exercício 2 
– main, módulo principal que: 
• solicita que o usuário digite um tamanho inteiro positivo 
para os vetores (tam); 
• declara e cria três vetores inteiros de tamanho tam; 
• leia dados para os dois primeiros vetores (use o módulo 
leVetorInteiros de ESVetor); 
• calcula a soma dos dois primeiros vetores e a guarda no 
terceiro vetor; 
• exibe os dados do terceiro vetor. 
Introdução à Programação 23 
Exemplo 2 - Vetor e Funções (1/2) 
Vamos acrescentar ao exercício 3 uma função que 
recebe como parâmetros um vetor v de inteiros (já 
criado e preenchido) e seu tamanho tam. A função 
realiza a soma de todos os elementos de v e retorna 
essa soma. 
 A assinatura da função deve ser: 
 public static int somaNoVetor ( int v[ ], int tam ) 
 
Exemplo, 
para tam=4: 
índices de v: 0 1 2 3
elementos de v: 3 4 5 6
soma dos elementos de v: 18
Introdução à Programação 24 
Exemplo 2 - Vetor e Funções (2/2) 
 // transcrição em Java, da função somaNoVetor: 
 
public static int somaNoVetor ( int v[ ], int tam ) { 
 int i; 
 int soma=0; 
 
 for (i=0 ; i<tam ; i++ ) { 
 soma = soma + v[ i ]; 
 } 
 return soma; 
 
} // fim da função somaNoVetor 
 
A resposta da função 
é a soma de todos 
os elementos de v 
A resposta da 
função é um inteiro 
Introdução à Programação 25 
Exercício 4 - Vetores e Módulos 
• Crie uma função em Java que recebe como parâmetro 
um vetor de inteiros v, de tamanho tam. O vetor v já 
vem criado e preenchido com valores. A função calcula 
e retorna a média aritmética dos elementos de v. 
• A assinatura da função deve ser: 
 public static double mediaVetor ( int v[ ], int tam ) 
 
Exemplo, 
para tam=4: índices de v: 0 1 2 3
elementos de v: 3 4 5 6
média dos elementos de v: 4,5
Introdução à Programação 26 
Exercício 5 - Vetores e Módulos 
• Crie uma função em Java que recebe como 
parâmetro um vetor de inteiros v, de tamanho tam. 
O vetor v já vem criado e preenchido com valores. A 
função retorna o índice de v onde ocorre o elemento 
de maior valor. A assinatura da função deve ser: 
 public static int indiceMaiorVetor ( int v[ ], int tam ) 
 
Exemplo, 
para tam=4: 
índices de v: 0 1 2 3
elementos de v: 3 4 5 6
índice do maior de v: 3
Introdução à Programação 27 
Exercício 6 - Vetores e Módulos 
• Crie uma função em java que recebe como parâmetro 
um vetor de inteiros v, de tamanho tam, e um valor 
inteiro x. O vetor v já vem criado e preenchido com 
valores. A função conta a quantidade de vezes que o 
valor x ocorre em v e retorna essa contagem. A 
assinatura da função deve ser: 
 public static int contaX ( int v[ ], int tam, int x ) 
 
Exemplo, 
para tam=4: 
índices de v: 0 1 2 3
elementos de v: 3 6 5 6
ocorrências de x=6 em v: 2
ocorrências de x=4 em v: 0
Introdução à Programação 28 
Exercício 7 - Vetores e Módulos 
• Crie uma função em Java que recebe como 
parâmetro um vetor de inteiros v, de tamanho tam, e 
um valor inteiro x. O vetor v já vem criado e 
preenchido com valores. A função conta a 
quantidade de números pares que ocorrem em v e 
retorna essa contagem. A assinatura da função deve 
ser: 
 public static int contaPares ( int v[ ], int tam ) 
 
Exemplo, 
para tam=4: 
índices de v: 0 1 2 3
elementos de v: 3 4 5 6
quantidade de pares em v: 2
Introdução à Programação 29 
Exercício 8 - Vetores e Módulos 
• Crie um programa que contenha as quatro funções dos 
exercícios anteriores (mediaVetor, maiorNoVetor, contaX e 
contaPares), além do main, módulo principal que: 
– solicita que o usuário digite um tamanho inteiro positivo (tam) 
para a criação de vetores; 
– declara e cria dois vetores de inteiros de tamanho tam; 
– lê dados para os dois vetores (use leVetorInteiros); 
– calcula e exibe a média aritmética dos dois vetores (com a 
função mediaVetor); 
– exibe os índices e os valores dos maiores elementos dos dois 
vetores (use maiorNoVetor); 
– solicita que o usuário digite um inteiro x; 
– conta as ocorrências de x no vetor que contiver a maior 
quantidade de pares (caso empate o nº de pares, conte x nos 
dois vetores).

Outros materiais