Sie sind auf Seite 1von 3

Universidade Federal de Sergipe UFS Ncleo de Sistema da Informao Disciplina: Programao II Professor: Thiago Silva Reis Santos Data:

: 22/09/2009

Lista de Exerccios 1) Quando fazemos java Classe, invocamos o mtodo main() de Classe. Mas, no incio do programa, ainda no existe nenhum objeto da classe Classe. Como possvel que main() seja invocado? 2) Escreva mtodo esttico boolean ehPrimo(int n), que recebe um inteiro n como argumento e retorna se o nmero ou no primo. 3) Escreva um mtodo esttico que ordena um array de inteiros. 4) Escreva um programa que imprime os argumentos de linha de comando na ordem reversa, do ltimo ao primeiro. 5) Defina uma classe Java para representar uma pessoa. Uma pessoa, no nosso caso, possui os seguintes atributos: Nome Idade Altura Peso Sexo A classe deve possuir mtodos para modificar e acessar cada um dos atributos, construtores, um mtodo para calcular o IMC (ndice de Massa Corprea) e um mtodo toString() que fornece o nome da pessoa e uma descrio de sua categoria de acordo com o IMC. O ICM obtido atravs da diviso do peso pela altura ao quadrado e interpretado da seguinte forma: IMC <= 18,5: Abaixo do peso normal 18,5 < IMC <= 25: Peso Normal 25 < IMC <= 30: Acima do peso normal. IMC > 30: Obesidade 6) Voc foi contratado para fazer um sistema de controle de uma biblioteca. Um item fundamental no sistema obviamente a classe Livro. Construa uma classe Livro para ser usada no sistema. Pense sobre que funcionalidade precisa/deve estar implementada dentro de Livro e tambm sobre qual a interface Livro deve disponibilizar para o resto do sistema. Lembre-se de escrever os testes automticos para esta classe(Opcional). 7) Escreva uma classe em Java chamada DVD para representar DVDs de vdeo. A classe tem dois atributos: o ttulo da DVD e o preo do aluguel por dia. Chame esses atributos "ttulo" e "preo". Deve haver um mtodo para que um programa "fora" da classe descubra o ttulo do DVD e o preo do aluguel por dia. Alm do mais, deve haver um mtodo pblico getPreoAluguel(int nmeroDeDiasAlugado) que retorne o valor do aluguel deste DVD se ela for alugada um certo nmero de dias (este nmero de dias passado como parmetro). Invente um construtor adequado para a classe. 8) Crie uma representao para as 7 notas musicais, DO, R, MI, FA, SOL, LA e SI. Deve ser possvel modificar cada uma das notas para obter um som sustenido ou bemol e cada nota deve possuir um tempo de durao especificado pelo compositor. O ato de tocar uma nota musical deve ser representado pela impresso na sada padro do seu valor,seguido pelo modificador, caso exista, seguido pelo tempo de durao.

9) Escreva uma classe para Semforo de Transito. Pense bem em quais mtodos voc quer criar.

10) Implemente a classe Dado, que tem a seguinte interface: void jogar(); int face(); Use a classe Dado para estimar a probabilidade de, em 10 jogadas, 5 ou mais vezes tenha se obtido a face 6. Como voc j sabe, Math.random() retorna um nmero pseudo-randmico na faixa [0,1). 11)
class Empregado { public Empregado(String n, double s) { nome = n; salario = s; } public void mostra() { System.out.println(nome + ", ganha " + salario + " patacos."); } public void aumentaSalario(double byPercent) { salario *= 1 + byPercent / 100; } public String nome; public double salario; }

Dada esta classe, faa um programa (i., escreva um mtodo de classe main(), numa nova classe TestePessoal) que: a) Declare um Array destes objectos, e o preencha com alguns Empregados. b) Imprima o contedo do Array, com base no comportamento j definido para os Empregados. c) D um aumento razovel a toda a gente. d) Imprima o Array novamente. Depois de realizar e testar os pontos anteriores, transforme o programa num Applet: e) Mude a declarao da classe TestePessoal para "TestePessoal extends Applet" f) Adapte o mtodo de classe main(), transformando-o em start() g) Escreva um arquivo HTML com uma tag APPLET que carregue o seu Applet. h) Teste o programa com o seu browser WWW. 12) Defina em Java a classe Hora contendo os mtodos equals, anterior, posterior e atualizar, conforme as assinaturas abaixo: boolean anterior(Hora h), indica se a hora fornecida como parmetro anterior hora representada pelo objeto no qual este mtodo executado; boolean posterior(Hora h), indica se a hora fornecida como parmetro posterior hora representada pelo objeto no qual este mtodo executado; boolean equals(Hora h), indica se a hora fornecida como parmetro igual hora representada pelo objeto no qual este mtodo executado; void atualizar(Hora h), atualiza a hora representada pelo objeto no qual este mtodo executado, usando as informaes da hora fornecida como parmetro. Alm dos mtodos acima, defina os mtodos get e set para cada um dos atributos da classe. Defina tambm um construtor. 13) Escreva um mtodo main em Java que l duas horas (horas e minutos, nesta ordem) do teclado e as compara, apresentando uma mensagem na tela indicando se a primeira posterior segunda. Utilize a classe Console. 14) Defina em Java a classe Data, a qual deve conter um construtor e os mtodos anterior, posterior, equals e atualizar, similares aos da classe Hora da Questo 1. Utilize a classeConsole apenas para apresentar mensagens de erro na tela. No precisa levar em considerao a existncia de anos bissextos mas considere que existem meses com 30 e 31 dias. 15) Escreva um mtodo main em Java que l trs datas (dia, ms e ano, nesta ordem) do teclado e as compara, apresentando uma mensagem na tela imprimindo a maior e a menor das trs, nesta ordem.

16) Defina em Java a classe Periodo, que tem como atributos duas datas, e que deve conter um construtor e os mtodos anterior, posterior, equals e atualizar, similares aos da classe Hora da Questo 17) Utilize a classe Console apenas para apresentar mensagens de erro na tela. Para o perodo1 ser anterior ao perodo2 necessrio que sua data inicial e final sejam anteriores data inicial do perodo2. Se uma das datas do perodo1 estiver contida no intervalo das datas inicial e final do perodo2, ento ele no considerado anterior nem posterior. 18) Estenda a classe Periodo com os seguintes mtodos: temIntersecao, verifica se dois perodos tem alguma interseo; eSubPeriodo, verifica se um perodo sub-perodo do outro; estaNoPeriodo, verifica se uma data est dentro de um perodo. Utilize a classe Console apenas para apresentar mensagens de erro na tela. 19) Agora que j foram criados os mtodos acima, reformule o mtodo anterior e posterior para que os mesmos no tenham repetio de cdigo desnecessria. 20) Escreva um mtodo main em Java que l seis datas (dia, ms e ano, nesta ordem) do teclado, constri trs perodos, verifica se os dois primeiros perodos tem interseo, se o primeiro subperodo do segundo e verifica tambm se a primeira data est dentro do terceiro perodo construdo. Utilize a classe Console para leitura do teclado e impresso dos resultados. Crie um mtodo auxiliar para ler uma data (dia, ms e ano, nesta ordem) e use-o para evitar repetio de cdigo. 21) Altere o mtodo main da Questo 8 para que ele tambm imprima as datas digitadas que tenham janeiro ou julho como ms. Indique tambm quantas datas foram digitadas com dia 1.

Das könnte Ihnen auch gefallen