Você está na página 1de 4

Programao Orientada a Objetos

Lista de exerccios
Jos Romildo Malaquias
30 de maro de 2011
Captulo 1
Classes e objetos
Exerccio 1.1. Descreva em no mximo 200 palavras o que um automvel e o que ele faz. Liste os
substantivos e verbos separadamente. Cada substantivo corresponde a um objeto que precisar ser construdo
para implementar um sistema, nesse caso, um carro. Selecione 5 dos objetos que voc listou e, para cada um,
liste vrios atributos e comportamentos. Descreva brevemente como esses objetos interagem entre si e com
outros objetos na sua descrio. Estes passos que voc seguiu so tpicos do projeto orientado a objetos.
Exerccio 1.2. [deite] Crie uma classe chamada Invoice que possa ser utilizado por uma loja de suprimentos
de informtica para representar uma fatura de um item vendido na loja. Uma fatura deve incluir as seguintes
informaes como atributos:
o nmero do item faturado,
a descrio do item,
a quantidade comprada do item e
o preo unitrio do item.
Sua classe deve ter um construtor que inicialize os quatro atributos. Se a quantidade no for positiva, ela deve
ser congurada como 0. Se o preo por item no for positivo ele deve ser congurado como 0.0. Fornea
um mtodo set e um mtodo get para cada varivel de instncia. Alm disso, fornea um mtodo chamado
getInvoiceAmount que calcula o valor da fatura (isso , multiplica a quantidade pelo preo por item) e
depois retorna o valor como um double. Escreva um aplicativo de teste que demonstra as capacidades da
classe Invoice.
Exerccio 1.3. A m de representar empregados em uma rma, crie uma classe chamada Empregado que
inclui as trs informaes a seguir como atributos:
um primeiro nome,
um sobrenome, e
um salrio mensal.
Sua classe deve ter um construtor que inicializa os trs atributos. Fornea um mtodo set e get para cada
atributo. Se o salrio mensal no for positivo, congure-o como 0.0. Escreva um aplicativo de teste que
demonstra as capacidades da classe. Crie duas instncias da classe e exiba o salrio anual de cada instncia.
Ento d a cada empregado um aumento de 10% e exiba novamente o salrio anual de cada empregado.
Exerccio 1.4. Cria uma classe chamada Complex para representar nmeros complexos e escreva um pro-
grama para test-la.
1. Escolha uma representao para os nmeros complexos, usando a forma retangular ou a forma polar.
2. Fornea trs construtores que permitam que objetos dessa classe sejam inicializados ao serem alocados
na memria:
um construtor sem parmetros que inicializa o objeto como zero
1
um construtor com um parmetro representando a parte real; a parte imaginria ser zero
um construtor com dois parmetros representando as partes real e imaginria
3. Dena operaes para obter a parte real, a parte imaginria, o mdulo (valor absoluto) e o ngulo de
um nmero complexo.
4. Fornea a operao para determinar o inverso aditivo de um nmero complexo.
5. Fornea as operaes aritmticas bsicas com nmeros complexos: adio, subtrao, multiplicao e
diviso.
6. Fornea as operaes relacionais que permitem comparar dois nmeros complexos.
7. Dena a operao toString para converter um nmero complexo em string Utilize o formato (a, b),
onde a a parte real e b a parte imaginria.
8. Escreva um aplicativo de teste que demonstra as capacidades da classe Complex.
Exerccio 1.5. Crie uma classe para representar datas.
1. Represente uma data usando trs atributos: o dia, o ms, e o ano.
2. Sua classe deve ter um construtor que inicializa os trs atributos e verica a validade dos valores
fornecidos.
3. Fornea um construtor sem parmetros que inicializa a data com a data atual fornecida pelo sistema
operacional.
4. Fornea um mtodo set um get para cada atributo.
5. Fornea o mtodo toString para retornar uma representao da ata como string. Considere que a
data deve ser formatada mostrando o dia, o ms e o ano separados por barra (/).
6. Fornea uma operao para avanar uma data para o dia seguinte.
7. Escreva um aplicativo de teste que demonstra as capacidades da classe.
Garanta que uma instncia desta classe sempre esteja em um estado consistente.
Exerccio 1.6. Escreva um programa completo para jogar o jogo da velha. Para tanto crie uma classe
JogoDaVelha:
a classe deve conter como dados privados um array bidimensional 3x3 para representar a grade do jogo
crie uma enumerao para representar as possibilidades de ocupao de uma casa na grade (vazia,
jogador 1 ou jogador 2)
o construtor deve inicializar a grade como vazia
fornea um mtodo para exibir a grade
permita dois jogadores humanos
fornea um mtodo para jogar o jogo; todo movimento deve ocorrer em uma casa vazia; depois de
cada movimento, determine se houve uma derrota ou um empate.
Exerccio 1.7. Crie uma classe IntegerSet para representar um conjunto de nmeros inteiros. Cada objeto
da classe IntegerSet pode armazenar inteiros no intervalo de 0 at um valor mximo especco para cada
objeto. O conjunto deve ser representado por um array de booleanos. O elemento do array na posio i
verdadeiro se e somente se o inteiro i pertencer ao conjunto. O construtor inicializa o objeto como um
conjunto vazio (isto , um conjunto cuja representao de array contm todos os valores falso). Fornea
mtodos para implementar as operaes de unio, interseo e diferena de conjuntos. Fornea um mtodo
para inserir um novo elemento no conjunto e outro mtodo para excluir um elemento do conjunto. Fornea
ainda um mtodo para converter um conjunto para string. Faa uma aplicao para testar a classe.
2
Exerccio 1.8. Grafo uma estrutura de dados muito comum em computao, e os algoritmos sobre grafos
so fundamentais para a rea.
Um grafo G = (V, A) consiste em:
um conjunto nito de pontos V. Os elementos de V so chamados de vrtices de G.
um conjunto nito A de pares no ordenados de V, que so chamados de arestas de G. Uma aresta a
em A um par no ordenado (v, w) de vrtices v, w emV, que so chamados de extremidades de a.
Uma aresta a em A chamada de incidente com um vrtice v emV, se v for uma extremidade de a.
Um vrtice v em V diz-se vizinho de outro vrtice w em V se existir uma aresta a em A incidente com v
e w.
Um grafo pode ser representado por listas de adjacncia ou por uma matriz de adjacncia, como ilus-
trado na gura 1.1.
1 2
4 5
3
(a) O grafo.
vrtice lista de adjacncia
1 2, 5
2 1, 5
3 2, 4
4 2, 5, 3
5 4, 1, 2
(b) Listas de adjacncia do grafo.
1 2 3 4 5
1 0 1 0 0 1
2 1 0 1 1 1
3 0 1 0 1 0
4 0 1 1 0 1
5 1 1 0 1 0
(c) Matriz de adjacncia do
grafo.
Figura 1.1: Um exemplo de grafo.
Escreva uma classe para representar grafos. Escolha entre a representao por listas de adjacncia ou por
matriz de adjacncia. A classe deve oferecer uma operao para determinar se dois vrtices so vizinhos, e
outra operao para determinar a lista de todos os vrtices que so vizinhos de um dado vrtice. Considere
que cada vrtice representado por um nmero inteiro. Escreva um aplicativo para testar a classe.
3

Você também pode gostar