Lista Exercicios POO

3

Click here to load reader

description

Lista de Exercicios de Programação Orientada a Objetos

Transcript of Lista Exercicios POO

  • LISTA 2 - Programao Orientada a ObjetoProfessor: Eduardo Carvalho

    1. Crie uma classe que modele uma bola e permita trocar e consultar a cor da bola.

    2. Crie uma classe que modele um quadrado e permita definir, alterar e consultar o tamanho dosdados e obter a rea.

    3. Crie uma classe que modele um retngulo e permita definir, alterar e consultar os valores doslados, obter a rea e obter o permetro.

    4. Crie uma classe que modele uma pessoa e permita definir e obter a idade, peso e altura da pessoae que permita fazer a pessoa envelhecer, engordar e emagrecer. A cada ano que a pessoa envelhece,sendo a idade dela menor que 21 anos, ela deve crescer 1,5 cm.

    5. Crie uma classe que modele uma televiso e que permita ligar e desligar a TV, e alterar e consultaro nmero do canal e o volume. O nmero do canal e o volume somente podem ser alterados dentrode uma faixa vlida.

    6. Crie uma classe que modele uma conta corrente e que permita definir e consultar o numero daconta e o nome correntista, consultar o saldo e fazer depsitos e saques.

    7. Crie uma classe que modele uma bomba de combustvel e permita definir a capacidade da bomba,o preo do combustvel por litro e permita encher a bomba (sempre encher completamente) econsultar sua quantidade de combustvel. necessrio tambm que seja permitido abastecer porvalor (retornando a quantidade de combustvel abastecida), abastecer por quantidade de litros(retornando o valor a ser pago). Deve ser permitido tambm alterar o valor do preo por litro. Deveser tratada a situao de no haver combustvel suficiente na bomba para um determinadoabastecimento.

    8. Crie uma classe que modele um retngulo e permita definir a altura e a largura. A classe tambmdeve permitir definir e alterar o ponto que representa o centro do retngulo e permitir que sejamconsultados os pontos dos quatro vrtices. Um ponto deve ser modelado por outra classe, e devepermitir definir e consultar valores x e y do ponto. O objeto tambm deve informar sua rea, seupermetro e se um quadrado.

    9. Crie uma classe chamada Carnvoro que permita que objetos desta classe se alimentem dequalquer coisa (nmeros, booleanos, caracteres, strings ou qualquer outro objeto). O contedo doestmago do carnvoro deve poder ser consultado e tambm deve ser possvel digerir os alimentos. Acada digesto o alimento mais antigo deve ser eliminado.

    10. Crie a classe Carta, que possui um nome e um naipe. Crie os mtodos GET e SET para osatributos. Crie agora uma classe Baralho, que possui 52 cartas. No construtor de Baralho, inicializeas 52 cartas (juntamente com os 4 coringas, que devem se chamar coringa e o naipe coringa).

    Escreva os seguintes mtodos:

    a) embaralha( ) usando o mtodo Math.random d para trocar as cartas dentro do baralho,misturando-as (sorteie duas posies e troque-as. Repita este processo diversas vezes). b) daCarta( ) devolve uma carta, retirada do topo do baralho, se no estiver vazio, ou null. c) temCarta( ) verifica se tem carta no baralho, devolvendo true ou false. A classe Baralho, assimconstruda, ser til para programar diversos jogos de cartas, atravs de novas classes que osimplementem. d) imprimeBaralho( ) imprime as cartas para verificar como esto dispostas (se esto embaralhadaspor exemplo).

  • 11. Escreva uma classe que represente um pas. Um pas tem como atributos o seu nome, o nome dacapital, sua dimenso em Km2 e uma lista de pases com os quais ele faz fronteira. Represente aclasse 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 omesmo 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 fazerfronteira 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 aosdois 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 oCasa e Edificio tem em comum. Faa Imovel superclasse de Casa e Edificio. Note que algunsmtodos em comum no podero ser implementados por Imovel (e.g., quantasPortasEstaoAbertas etotalDePortas). 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 ouno, um limite e um conjunto de movimentaes. b) Uma movimentao que possui uma descrio, um valor e uma informao se ela umamovimentao de crdito ou dbito. c) Um banco que armazene um conjunto de contas e fornea mtodos que permitam que sejam feitoscriaes de conta, excluso de contas, saques (uma conta corrente s pode fazer saques desde que ovalor no exceda o limite de saquelimite + saldo negativo), depsitos, emisso de saldo e extrato etransferncia 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 nmeroscomplexos.

    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 partesreal e imaginria condio necessria para a criao do objeto. Um nmero complexo deve sercapaz de realizar:

    a) adio com outro nmero complexo: as partes reais so somadas de um lado e as partesimaginrias so somadas de outro; b) subtrao com outro nmero complexo: a parte real do operando direito subtrada da parte realdo operando esquerdo e a parte imaginria do operando direito subtrada da parte imaginria dooperando 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 aparte imaginria.

    As frmulas podem ser encontradas em http://en.wikipedia.org/wiki/Complex_number