Buscar

Vetores em Java

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 6 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 6 páginas

Prévia do material em texto

1 
 
FACULDADE DE COMPUTAÇÃO E INFORMÁTICA 
BACHARELADOS EM CIÊNCIA DA COMPUTAÇÃO E SISTEMAS DE INFORMAÇÃO E 
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 
Linguagem de Programação I – Semana 01 
 
TEORIA: REVISÃO DE VETORES 
 
 
 
Nossos objetivos nesta aula são: 
 
 Revisar os principais conceitos de vetores como 
declaração, preenchimento e percurso 
 
 Implementar estes conceitos na Linguagem Java 
 
 
 
A referência para esta aula é o Capítulo 7, Seção 7.1 
(Arrays) do nosso livro da referencia básica: 
 
HORSTMANN, C. Conceitos de Computação com Java. 5.ed. 
Porto Alegre: Bookman, 2009. 
 
Não deixem de ler esta seção após a aula de hoje! 
 
 
 
DECLARAÇÃO E INICIALIZAÇÃO DE VETORES 
 
 Conforme estudamos nas disciplinas de Introdução a Programação e Laboratório de 
Programação, um vetor (ou array) é uma sequência de valores do mesmo tipo. A cada 
valor da sequência é identificado por um número inteiro chamado índice. Na 
Linguagem Java, estes índices começam no valor zero. A figura abaixo ilustra um 
exemplo de vetor de números inteiros, que vamos identificar com a letra v: 
 
0 1 2 3 4 5 6 
8 7 5 6 7 -3 4 
 
 Neste exemplo, temos um vetor de tamanho 7. Os índices dos valores 8 e -3, por 
exemplo, são 0 e 5, respectivamente. Assim, dizemos que v[0]=8 e v[5]=-3. 
 
 Uma das grandes vantagens do uso de vetores é que utilizamos somente um nome (v) 
para identificar uma sequência inteira da valores, economizando vários nomes de 
variáveis. Além disto, como os valores estão numa sequência, podemos utilizar 
comandos de repetição para percorrê-la e realizar algum processamento dos valores. É 
2 
 
comum utilizarmos o comando for, pois podemos utilizar o contador como índice no 
vetor. 
 
 O primeiro passo para uso de um vetor é declará-lo e alocar espaço para os seus 
elementos. Assim, é importante que saibamos, a priori, quantos elementos 
(possivelmente) vamos usar no vetor. Abaixo, temos um exemplo de declaração de um 
vetor de 10 números inteiros em Java: 
 
int v[ ] = new int[10]; 
 
 Embora não seja muito comum, é possível também se utilizar uma notação alternativa 
na declaração do vetor, colocando os colchetes antes da variável que identifica o vetor: 
 
int [ ] v = new int[10]; 
 
 A mesma variável v pode ser utilizada para se alocar outro vetor. Para isto, basta utilizar 
uma nova alocação com new. Porém, é importante ressaltar que, se os valores 
anteriores à nova alocação não forem referenciados por uma outra variável, seu 
conteúdo estará perdido após a nova alocação. 
 
 É importante, também, verificar se a JVM (Java Virtual Machine) conseguiu alocar o 
espaço solicitado antes de começar o preenchimento, conforme mostrado abaixo: 
 
int [ ] v = new int[10]; 
if (v!=null) { // verifica se houve alocação do vetor 
 ... 
} 
 
 Uma vez que o vetor foi corretamente alocado, podemos passar à tarefa de 
preenchimento. No exemplo abaixo, preenchemos as 10 primeiras posições do vetor 
com os números de 0 a 9: 
 
 
int [ ] v = new int[10]; 
if (v!=null) { // verifica se houve alocação do vetor 
 for(int i=0;i<10;i++) 
 v[i]=i; 
} 
 
 
 
 
 
3 
 
EXERCÍCIO TUTORIADO 
 
A partir do esqueleto de código abaixo, implemente em Java a função generateVector, que 
recebe um número inteiro maior que zero e devolve um vetor de números inicializado com 
os valores de 0 a n-1. Adicionalmente, leia o número inteiro n na função main e invoque 
generateVector. 
 
public class Revisao { 
 
 public static int[ ] generateVector(int n){ 
 
 
 
 
 } 
 
 public static void main(String args[]){ 
 
 
 
 
 
 } 
} 
 
PERCURSO EM VETORES 
 
 Dado um vetor v inicializado, há dois percursos sequenciais possíveis em v: da esquerda 
para a direita (do índice 0 até o último índice) e da direita para a esquerda (do último 
índice para o índice 0). Ambos os percursos, podem ser realizados com o comando for: 
 
PERCURSO ESQUERDA  DIREITA PERCURSO DIREITA  ESQUERDA 
 
for(int i=0;i<v.length;i++) 
 // processa elemento v[i] 
 
 
 
for(int i= v.length-1;i>=0;i--) 
 // processa elemento v[i] 
 
 
 
4 
 
EXERCÍCIO TUTORIADO 
 
Implemente os procedimentos printVector e printReverseVector para exibir os elementos 
do vetor v da esquerda para a direita e da direita para a esquerda, respectivamente. 
Invoque estes procedimentos na função main. 
 
public class Revisao { 
 
 public static int[ ] generateVector(int n){ 
 ... 
 } 
 
 public void printVector(int v[ ]){ 
 
 
 
 
 } 
 
 public void printReverseVector(int v[ ]){ 
 
 
 
 
 } 
 
 
 public static void main(String args[]){ 
 
 
 
 
 } 
} 
 
5 
 
ATIVIDADE DE LABORATÓRIO 
 
Utilizando o código desenvolvido na aula teórica, implemente as duas funções abaixo: 
 
 public static int[ ] union(int v[ ], int w[ ]): calcula e devolve o resultado da união entre 
os vetores v e w. 
 public static int[ ] intersection(int v[ ], int w[ ]): calcula e devolve o resultado da 
intersecção entre os vetores v e w. 
 
Invoque estas duas funções na função main e verifique se o resultado está correto 
observando a saída do procedimento printVector. 
 
public class Revisao { 
 
 public static int[ ] generateVector(int n){ 
 ... 
 } 
 public void printVector(int v[ ]){ 
 ... 
 } 
 public void printReverseVector(int v[ ]){ 
 ... 
 } 
 public static int[ ] union(int v[ ], int w[ ]){ 
 
 } 
 
 public static int[ ] intersection(int v[ ], int w[ ]){ 
 
 } 
 public static void main(String args[]){ 
 } 
} 
 
 
 
6 
 
EXERCÍCIOS EXTRA-CLASSE 
 
1. Implemente uma função em Java que gere o vetor dos n primeiros números pares. 
2. Implemente uma função em Java que gere o vetor dos n primeiros números múltiplos de 
5. 
3. Implemente uma função em Java que gere o vetor dos n primeiros números primos. 
4. Implemente uma função em Java que receba um vetor de números inteiros e devolva a 
sua versão invertida. 
5. Dizemos que uma palavra é um palíndromo se ela for a mesma tanto numa leitura da 
esquerda para a direita quanto da direita para a esquerda. Por exemplo, MOM é um 
palíndromo. Implemente uma função em Java que receba um vetor de caracteres (char) 
representando uma palavra e verifique se a palavra é um palíndromo ou não. 
6. Implemente uma função em Java que receba dois vetores de números inteiros e 
verifique se eles são iguais. 
7. Implemente uma função em Java que receba dois vetores de números inteiros e devolva 
a diferença entre eles. 
8. Implemente uma função em Java que receba um vetor de números inteiros 
representando um número binário, ou seja, contendo somente os dígitos 0 e 1 e 
devolva o número decimal correspondente. 
9. Implemente uma função em Java que receba um vetor de números inteiros e verifique 
se ele está ordenado de forma crescente. 
10. Implemente uma função em Java que receba dois vetores de números inteiros em 
ordem crescente e produza um terceiro vetor, resultante da intercalação ordenada dos 
dois vetores ordenados passados como parâmetro.

Outros materiais