Anda di halaman 1dari 5

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO DE CINCIAS AGRRIAS CCA/ UFES Departamento de Engenharia Rural

Lista de exerccios 2 Disciplina: Programao II Professora: Juliana Pinheiro Campos Data: 19/10/2012 1) Identifique e explique o(s) erro(s) nas classes abaixo:
a) class Data {
private byte dia,ms; private short ano; private Data(byte d,byte m,short a){ dia = d; ms = m; ano = a; } } // fim da classe b)class Ponto2D { private double x,y; Ponto2D() { Ponto2D(0.0,0.0); } Ponto2D(double coord1,double coord2){ x = coord1; y = coord2; } } // fim da classe

c) class Ponto2D {
private double x,y; Ponto2D(double _x,double _y){ x = _x; y = _y; } Ponto2D(double coord1,double coord2){ x = coord1; y = coord2; } } // fim da classe d) class Media { public int Media(int a,int b){ return (a+b)/2; } public double Media(int a,int b){ return (a+b)/2; } } // fim da classe

e) class ContadorComWhile { public static void main(String[] argumentos){ int contador = 0; while(contador != 100){ contador = contador+3; System.out.println(contador); } } } // fim da classe f) class Ponto2D{ private double x,y; Ponto2D(double _x,double _y){ x = _x; y = _y; } } class Ponto3D extends Ponto2D{ private double z; Ponto3D(double _x,double _y,double _z){ x = _x; y = _y; z = _z; } } g) class Produto{ private String identificao; private double custoDeFabricao; Produto(String i,double c){ identificao = i; custoDeFabricao = c; } abstract public void novoCusto(double nc); } h) abstract class Dispositivo{ private String nome; private long capacidadeEmBytes; Dispositivo(String n,long c){ nome = n; capacidadeEmBytes = c; } abstract public String toString(); abstract public double capacidadeEmMegabytes(); } class DiscoOtico extends Dispositivo{ DiscoOtico(long c){ super("Disco tico",241172480L); } public String toString(){ return "Dispositivo:"+nome+" Capacidade:"+c; } } I) class DemoString{ public static void main(String[] argumentos){ String nome = "Dan Gusfield"; nome.charAt(3) = '+'; System.out.println(nome);

} }

2) Escreva uma classe que contenha mtodos estticos para retornar o maior e o menor de dois, trs, quatro e cinco valores (com um total de oito mtodos), considerando que os argumentos e retorno dos mtodos podem ser dos tipos int e double. Os mtodos devem ser chamados em cascata: para calcular o maior de trs valores a, b e c, pode-se calcular o maior valor de a e b, e comparar esse resultado com c. 3) Podemos ter vrias verses do mtodo main em uma classe, usando a sobrecarga de mtodos? Explique. 4) Escreva uma classe que encapsule uma carta de baralho, com um valor que represente o valor da carta, de um (s) a treze (rei), e outro valor correspondente ao naipe (1 = ouros, 2 = paus, 3 = copas e 4 = espadas). Escreva nessa classe um mtodo que imprima o nome da carta por extenso, usando a instruo switch. Por exemplo: Valete, naipe: espadas. 5) Escreva uma classe VeiculoAVenda que represente informaes bsicas sobre um veculo genrico que esteja venda, como tipo (podendo ser representado por uma string), ano e preoDeVenda. Escreva uma classe AutomovelAVenda que herde de VeiculoAVenda e que inicialize o campo tipo com o valor constante Automovel, e uma classe MotocicletaAVenda que herde de VeiculoAVenda e que inicialize o campo tipo com o valor constante Motocicleta. Escreva tambm um programa que demonstre o uso das diversas classes. 6) Uma string dita palndroma se puder ser lida da esquerda para a direita ou da direita para a esquerda da mesma forma. As strings radar, asa e O breve verbo so palndromas (desconsiderando os espaos). Escreva dois mtodos estticos que retornem true se uma string passada como argumento for palndroma e false se no for. No use mecanismos da classe StringBuffer. 7) Escreva uma classe StringDNA que seja capaz de processar uma string de DNA. Strings de DNA so strings que so formadas exclusivamente pelos caracteres A, C, G e T nenhum outro caracter permitido. Essa classe deve encapsular uma instncia da classe String e conter ao menos os seguintes mtodos: Construtor, que recebe uma instncia da classe String como argumento e copia somente os caracteres vlidos para a string encapsulada (por exemplo, se a string passada for CATGATTAG, a string encapsulada dever ser CATGATTAG, mas se a string passada for JAVA, a string encapsulada dever ser AA). toString, que retorna a string encapsulada, charAt, que retorna o caracter na posio que for passada como argumento, quantosA, quantosC, quantosG e quantosT, que retornam, respectivamente, quantos caracteres A, C, G e T existem na string encapsulada, length, que retorna o comprimento da string encapsulada. 8) Faa as alteraes solicitadas no projeto que foi implementado no 2 trabalho. a) Altere o 3 item do menu (suporte on-line) para que o dilogo com o usurio seja finalizado se o usurio digitar tchau ou tcHAu em qualquer lugar na frase. b) Altere o 3 item do menu (suporte on-line) para que o programa leve em considerao as perguntas do usurio. Identifique algumas palavras comuns que possam aparecer nas perguntas

do usurio e faa a associao destas palavras a determinadas respostas usando um HashMap. Por exemplo, sempre que o usurio digitar uma pergunta com a palavra devagar ser impressa a resposta Eu acredito que seja um problema de hardware. Atualizar o seu processador deve resolver todos os problemas de desempenho. Se a pergunta do usurio no contm nenhuma palavra conhecida (que est no hashMap) deve-se escolher aleatoriamente uma resposta padro.

9) Sabendo que Desconhecido_3 uma classe abstrata, apresente as classificaes possveis para Desconhecido_1 e Desconhecido 4 em classe concreta, classe abstrata ou interface e justifique.

10) Dado o diagrama abaixo:

a) Implemente essa estrutura de classes seguindo os passos: Todo Veculo possui modelo e cor. Implemente construtor e mtodos modificadores e de acesso nessa classe. Um carro possui modelo, cor e placa. Implemente um construtor e um mtodo imprime na classe Carro. O mtodo imprime deve imprimir a String CARRO antes de imprimir seus detalhes. Uma bicicleta possui modelo e cor. Implemente um construtor e um mtodo imprime na classe Bicicleta. O mtodo imprime deve imprimir a String BICICLETA antes de imprimir seus detalhes. A classe Veculos possui uma coleo de objetos da classe Veiculo. Implemente nessa classe um mtodo adicionar que adiciona um veculo coleo. Implemente tambm um mtodo listar que imprime os detalhes de todos os objetos armazenados na coleo utilizando o operador instanceof.

b) Pelo diagrama de classes dessa aplicao fcil perceber que ela possui acoplamento forte e no utilizou os recursos de herana da melhor maneira. O que poderia ser feito para melhorar a aplicao? Implemente essas melhorias em uma segunda verso desse exerccio. 11) Implemente um programa que solicite que o usurio digite o cdigo de um cliente (String) e o nome do cliente (String) enquanto o usurio no digitar a palavra fim quando for solicitado o cdigo do cliente. Cada par <codigo, nome> digitado, deve ser inserido em um HashMap. Implemente tambm um mtodo que solicite que o usurio digite o cdigo de um cliente, pesquise esse cliente no HashMap e retorne o nome associado a ele. 12) Implemente um programa que gere nmeros aleatrios entre 1 e 10. O programa deve gerar 20 nmeros nesse intervalo. Implemente um mtodo que imprima na tela o nmero de vezes que cada nmero de 1 a 10 foi sorteado. Observe um exemplo de sada do programa: O nmero 1 foi sorteado 2 vezes O nmero 2 foi sorteado 1 vezes O nmero 3 foi sorteado 3 vezes O nmero 4 foi sorteado 2 vezes O nmero 5 foi sorteado 1 vezes O nmero 6 foi sorteado 2 vezes O nmero 7 foi sorteado 4 vezes O nmero 8 foi sorteado 1 vezes O nmero 9 foi sorteado 3 vezes O nmero 10 foi sorteado 1 vezes 13) possvel alterar um programa que use List para usar um Set? Qual a dificuldade de se fazer isso? 14) Refaa o projeto de figuras geomtricas estudado em sala considerando que existe a interface ObjetoGeometrico e as classes que a implementam: Circulo, retngulo, tringulo e quadrado. Inclua uma classe ColecaoFiguras que pode ter uma coleo de figuras e possibilita adicionar figuras, remover figuras e imprimir figuras. 15) Crie uma classe que implemente o jogo da forca: A classe deve encapsular a palavra a ser descoberta e o nmero de tentativas que o usurio tem para descobr-la. O construtor deve filtrar a string recebida, garantindo que a palavra a ser adivinhada no ter caracteres maisculos. O programa deve interagir com o usurio at que ele descubra a palavra (e ganhe o jogo) ou at alcanar o nmero de tentativas (e perde o jogo). O programa deve sempre apresentar ao usurio quais caracteres ele j digitou ao solicitar um novo caractere. Para cada caractere que o usurio digitar , o programa deve mostrar quais letras da string j foram descobertas.