Escolar Documentos
Profissional Documentos
Cultura Documentos
11. Escreva uma classe que represente um pas. Um pas tem como atributos o seu nome, o nome da
capital, sua dimenso em Km2 e uma lista de pases com os quais ele faz fronteira. Represente a
classe e fornea os seguintes construtores e mtodo:
a) Construtor que inicialize o nome, capital e a dimenso do pas;
b) Mtodos de acesso (obter/get) para as propriedades indicadas no item (a);
c) Um mtodo que permita verificar se dois pases so iguais. Dois pases so iguais se tiverem o
mesmo nome e a mesma capital. A assinatura deste mtodo deve ser:
d) Um mtodo que define quais outros pases fazem fronteira (note que um pas no pode fazer
fronteira com ele mesmo);
e) Um mtodo que retorne a lista de pases que fazem fronteira;
f) Um mtodo que receba um outro pas como parmetro e retorne uma lista de vizinhos comuns aos
dois pases.
12. De forma incremental, traduza o seguinte conjunto de classes em um programa Python.
a) Classe: Porta
Atributos: aberta, cor, dimensaoX, dimensaoY, dimensaoZ
Mtodos: abre(), fecha(), pinta(), estaAberta()
b) Classe: Casa
Atributos: cor, porta1, porta2, porta3
Mtodo: void pinta(), totalDePortas(), quantasPortasEstaoAbertas()
c) Classe: Edificio
Atributos: cor, totalDePortas, totalDeAndares, portas[]
Mtodos: pinta(), quantasPortasEstaoAbertas(), adicionaPorta(), totalDePortas(), adicionarAndar(),
totalDeAndares()
d) As classes Casa e edifcio ficaram muito parecidas. Crie a classe Imovel e coloque nela tudo o
Casa e Edificio tem em comum. Faa Imovel superclasse de Casa e Edificio. Note que alguns
mtodos em comum no podero ser implementados por Imovel (e.g., quantasPortasEstaoAbertas e
totalDePortas).
Logo, esses devero ser declarados como mtodos abstratos.
13. Identifique as classes, atributos e mtodos necessrios para modelar e implementar:
a) Uma conta corrente que possui um nmero, um saldo, um status que informa se ela especial ou
no, um limite e um conjunto de movimentaes.
b) Uma movimentao que possui uma descrio, um valor e uma informao se ela uma
movimentao de crdito ou dbito.
c) Um banco que armazene um conjunto de contas e fornea mtodos que permitam que sejam feitos
criaes de conta, excluso de contas, saques (uma conta corrente s pode fazer saques desde que o
valor no exceda o limite de saquelimite + saldo negativo), depsitos, emisso de saldo e extrato e
transferncia entre contas.
Uma vez feita a modelagem, implemente em Python.
14. Crie um objeto nmero que seja capaz de informar:
a) os seus fatores primos;
b) seu fatorial;
15. Crie uma classe que modele um nmero complexo para realizar aritmtica com nmeros
complexos.
Os nmeros complexos tm a forma:
parteReal + parteImaginaria * i, onde i a raiz quadrada de -1.
Utilize variveis reais para representar as partes real e imaginria do nmero. A presena das partes
real e imaginria condio necessria para a criao do objeto. Um nmero complexo deve ser
capaz de realizar:
a) adio com outro nmero complexo: as partes reais so somadas de um lado e as partes
imaginrias so somadas de outro;
b) subtrao com outro nmero complexo: a parte real do operando direito subtrada da parte real
do operando esquerdo e a parte imaginria do operando direito subtrada da parte imaginria do
operando esquerdo;
c) multiplicao com outro nmero complexo;
d) diviso com outro nmero complexo;
e) fornecer uma representao em String do nmero na forma a + bi, onde a a parte real e b a
parte imaginria.
As frmulas podem ser encontradas em http://en.wikipedia.org/wiki/Complex_number