Buscar

POO lista5

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

Prévia do material em texto

Unidade Acadêmica de Garanhuns 
Curso: Bacharelado em Ciência da Computação. 
Disciplina: Programação Orientada à Objetos. 
Semestre: 2014.1 
Professora: Thaís Alves Burity Rocha. 
 
5ª Lista de Exercícios 
Parte I - Exercícios teóricos de fixação 
1) Complete as frases a seguir: 
a. Um array é um grupo de __________ cujos valores são todos do mesmo __________. 
b. __________ permite percorrer um vetor sem a necessidade de usar um contador. 
c. O número usado para referenciar um elemento particular de um vetor é denominado __________. 
d. Um array pode ter mais de uma __________. 
e. Argumentos de linha de comando são armazenados em __________. 
f. __________ na lista de parâmetros de um método indica que o método pode receber um número variável 
de argumentos de um dado tipo. 
g. Um vetor unidimensional p contém 4 elementos. O nome desses elementos é __________, __________, 
__________ e __________, respectivamente. 
h. Definir o nome do vetor, o seu tipo e especificar a quantidade de dimensões consiste em __________ o 
vetor. 
i. Em um vetor bidimensional, o primeiro índice identifica a __________ de um elemento e o segundo 
índice, a __________. 
j. Um vetor m por n contém __________ linhas, __________ colunas e __________ elementos. 
2) Classifique cada afirmativa a seguir como verdadeira (V) ou falsa (F). No caso da afirmativa ser falsa, explique. 
a. ( ) Um vetor pode armazenar muitos tipos diferentes de valores. 
b. ( ) O índice de um vetor deve ser um valor de tipo float. 
c. ( ) Um elemento individual de um vetor que é passado como parâmetro para um método e é modificado 
nesse método irá conter o valor modificado quando o método terminar de executar. 
d. ( ) Os argumentos passados para o método main são separados por vírgula. 
e. ( ) Uma declaração de vetor reserva espaço na memória para o vetor. 
f. ( ) Para uma aplicação poder inicializar todos os elementos de um vetor bidimensional é necessário 
utilizar laços aninhados. 
3) Considerando a declaração float[] sequencia = new float[25];, classifique cada declaração a 
seguir como C (correto) ou E (errado). 
a. ( ) sequencia[0] = 0; 
b. ( ) sequencia[1] = 1; 
c. ( ) sequencia[1.5] = 1.5; 
d. ( ) sequencia[-1] = -1; 
e. ( ) sequencia[23] = “23”; 
f. ( ) sequencia[24] = 24; 
g. ( ) sequencia[25] = 25; 
4) Qual será o conteúdo dos vetores declarados no código a seguir, ao término da execução do método main? 
public static void main (String... argumentos){ 
 double[] valores = {1,2,3,4,5,6}; 
 double[] primeiraCopia = valores; 
 double[] segundaCopia = valores; 
 primeiraCopia[1] = 1; 
 segundaCopia[2] = valores[0]+ primeiraCopia[1]; 
 primeiraCopia[3] = valores[1]+ segundaCopia[2]; 
 valores[4] = primeiraCopia[2]+ segundaCopia[3]; 
 valores[5] = segundaCopia[3]+ primeiraCopia[4]; 
} 
5) O que são var-args? Qual a utilidade desse recurso? 
Parte II - Exercícios práticos 
Observação: O uso de var-args deve ser feito conforme a identificação da aplicabilidade. 
6) Crie uma classe, definindo um nome adequado para ela, que tenha um método de nominado somar, que some 
um valor constante do tipo float a cada elemento de um vetor que deverá ser passado como argumento. Nessa 
mesma classe, crie também um método denominado calcularTotal, que some todos os valores do vetor, 
retornando o resultado. Crie uma classe para testar o seu código, que deverá imprimir o vetor passado como 
argumento antes e depois da chamada de cada método. Analise o resultado obtido e verifique o que aconteceu 
com o vetor: ele foi alterado? 
7) Crie uma classe denominada MatrizDeDoubles para representar uma matriz de valores do tipo double. Essa 
classe deve conter um método denominado eIgual para verificar se duas matrizes são iguais e que, portanto, 
deve retornar true se as matrizes comparadas forem iguais ou false, caso contrário. Duas matrizes devem ser 
consideradas iguais se forem do mesmo tamanho e guardarem os mesmos valores. 
8) Crie a classe RepositorioContasVetor, que gerencia o armazenamento de contas bancárias através de um 
vetor. A classe deverá conter métodos para: inserir uma conta, remover uma conta, atualizar uma conta, procurar 
uma conta pelo número, procurar uma conta pelo cliente, listar todas as contas, listar todas as contas de um cliente 
e verificar se uma conta existe. Crie uma classe TesteRepositorioContasVetor para testar as 
funcionalidades desenvolvidas. Observação: Não deve ser possível armazenar duas contas com o mesmo número. 
9) Crie a classe RepositorioContasArrayList, que gerencia o armazenamento de contas bancárias através 
de um ArrayList. A classe deverá conter os mesmos métodos da classe RepositorioContasVetor. Crie 
uma classe TesteRepositorioContasArrayList para testar as funcionalidades desenvolvidas. 
10) Com base na questão anterior, implemente uma classe para representar um repositório de clientes. 
11) Implemente o jogo da velha utilizando matrizes. 
12) Implemente o jogo de batalha naval utilizando matrizes. Considere que cada navio ocupa três posições, sendo o 
tabuleiro de tamanho 7x7. O comportamento do jogo é descrito a seguir. 
 Trata-se de uma competição entre 2 jogadores: Ganha o jogo quem destruir os navios do adversário primeiro. 
 Primeiramente, cada jogador deve posicionar os navios no tabuleiro. Logo, visualizar o tabuleiro é essencial. 
 Dado que os navios foram posicionados, cada jogador faz um palpite para atacar uma determinada posição 
do tabuleiro, de maneira alternada, começando pelo jogador 1. 
 Cada palpite deverá causar um efeito que deverá ser visualizado pelo jogador. Um palpite certo é aquele que 
atinge um navio (ou parte dele); um palpite é errado, se não atingir navio algum e um palpite elimina um 
navio somente quando todas as posições que compõem o navio são atacadas. 
 Uma posição que já foi atacada não pode ser atacada novamente. 
 Posições fora das dimensões do tabuleiro também não podem ser atacadas. 
 O jogo só acaba quando um dos jogadores consegue destruir todos os navios do seu adversário ou quando o 
jogador seleciona a opção de encerrar partida. 
 No caso de haver um vencedor, o programa deve mostrar. 
 Deverão ser utilizadas a entrada e a saída padrão. 
13) Implemente o jogo da forca utilizando String e vetor, bem como a entrada e a saída padrão. Para tanto, pense 
no funcionamento do jogo no mundo real, separando cada passo em métodos. A visualização dos erros pode ser 
feita por uma mera contagem ou, preferencialmente, pela exibição do bonequinho na forca.

Continue navegando