exercicios_aula17_22-09-15

Upload: ikaro-souza

Post on 08-Jan-2016

216 views

Category:

Documents


0 download

DESCRIPTION

exercicios_aula17_22-09-15

TRANSCRIPT

  • Universidade Federal do Rio Grande do NorteInstituto Metropole Digital

    IMD0040 - Linguagem de Programao 2Aula17 - Lista de exerccios

    Esta lista de exerccio composta por 4 questes. Sendo uma fcil, uma mdia, uma difcil e uma de desafio. As questes valem, respectivamente, 20%, 30%, 50% e 100%. O aluno poder escolher entre realizar as 3 primeiras e somar 100% ou apenas o desafio para conseguir os 100%. NO HAVER ACUMULO, portanto, se decidir fazer as 4, no ganhar mais por isso (mas ter aprendido muito mais). No se assustem com o tamanho dos textos.

    Questo Fcil (20%) - Transformar atividade difcil da aula 10 em classe abstrataFique atento: para fazer o exerccio difcil de hoje, voc precisar fazer o exerccio fcil e mdioprimeiro.

    A tarefa

    Utilizando o exerccio da lista passada, transforme as classes descritas abaixo em abstratas e insiraos mtodos novos sublinhados:

    Classe Abstrata Produto:Atributos: id (NOVO ATRIBUTO), nome, preo, marca, descrio, data de fabricao Mtodos: sets e gets de cada atributo, impresso dos atributos.Mtodos abstratos (somente a assinatura): foi vendido?

    Classe Abstrata Produto Durvel (herdando da classe produto):Atributos: material predominante, durabilidade.Mtodos: sets e gets de cada atributo, impresso dos atributos.Mtodos abstratos (somente a assinatura): eletro eletrnico?

    Classe Abstrata Produto no Durvel (herdando da classe Produto):Atributos: data de validade, gnero (alimentcio, produto de limpeza, roupa, produto de uso pessoal).Mtodos: sets e gets de cada atributo, impresso dos atributos,Mtodos abstratos (somente a assinatura): est na validade(recebe data)Obs: Os mtodos de impresso devero ser sobrescritos.

    Reaproveite o cdigo da atividade passada:

    Crie, pelo menos, mais 2 classes concretas que herdam da classe Produto Durvel (carro, livro,celular) e 2 da classe concretas Produto no Durvel (pizza, refrigerante, chocolate) e que possuematributos e mtodos relevantes para essa classe, sobrescrevendo os mtodos necessrios. Asclasses devem implementar os mtodos abstratos.

    Questo Mdia (30%) - rvore Binria de Busca (BST)Fique atento: para fazer o exerccio difcil de hoje, voc precisar fazer o exerccio fcil e mdioprimeiro.

    A tarefa

    Implemente uma classe abstrata arvore binria de busca que armazenam qualquer tipo de produto (criado na questo anterior) de acordo o id do produto.

    Dicas:Crie uma classe chamada Node:Atributos: Produto produto, Node noEsquerdo, noDireitoMtodos: sets e gets de cada atributo.

    Crie a classe abstrata BSTAtributos: Node raiz.Mtodos: insero, busca, percorrimento e impresso.

  • Questo Difcil (50%) - Carrinho de comprasFique atento: para fazer o exerccio difcil de hoje, voc precisar fazer o exerccio fcil e mdio e primeiro.

    A tarefa

    Crie uma classe chamada carrinho de compras que herda da classe abstrata BST (criada anteriormente) e insira um novo atributo inteiro para armazenar a quantidade de objetos no carrinho.

    Implementando/sobrescrevendo mtodos

    Utilizando o mtodo de percorrer da BST, implemente: Mtodo que encontra o produto de maior valor. Mtodo que imprime a soma do preo de todos os produtos.

    Sobrescrevendo o mtodo de inserir da BST, implemente: Mtodo de inserir no carrinho (atualizando a quantidade de elementos)

    Sobrescrevendo o mtodo de impresso da BST, implemente: Mtodo de imprimir o carrinho (objetos e a quantidade de elementos)

    Executando a classe

    No mtodo main, crie 20 objetos que herdam do tipo produto com id sequenciais e insira no carrinhode compras.Imprima todos os produtos, o produto de maior valor e a soma total do preo dos produtos.

    Questo Desafio (100%) - Famlia real

    O rei de um reino muito muito distante deu uma grande festa para reunir todas as geraes dos seusdescendentes: filhos e filhas, netos e netas, bisnetos e bisnetas, e assim por diante. Ele, que gostamuito de estatsticas, agora quer saber, para cada gerao, qual a porcentagem de descendentesdaquela gerao que compareceu festa e a idade mdia dos participantes.

    Objetivo

    Voc foi contratado para escrever um programa de computador que calcule as porcentagens detodas as geraes! O rei tem N descendentes, identificados com os nmeros de 1 a N. O prprio reiser identificado com o nmero 0. Ser dada apenas a informao, para cada descendente, de quem o seu pai ou sua me, na linha de descendncia que comea no rei. Alm disso, claro, ser dada alista de todos que compareceram festa.

    Entrada

    A primeira linha da entrada contm dois inteiros N e M, respectivamente, o nmero de descendentese o nmero de participantes da festa. A segunda linha apresenta o nome e a idade do rei, as linhasseguintes contm o nome e a idade dos descendentes do rei em ordem crescente (na linha 3apresenta as informaes do descendente 1, na linha 4 apresenta as informaes do descendente 2,e assim por diante). Na linha N+3, contm N nmeros, representando os pais ou mes dos N descendentes, em ordemcrescente (o primeiro nmero indica o pai ou a me do descendente de nmero 1, o segundo nmeroindica o pai ou a me do descendente de nmero 2, e assim por diante).A linha N+4, contm M nmeros, identificando todos os descendentes que compareceram festa.

    Sada

    Seu programa deve imprimir uma linha com uma lista de nmeros reais, com preciso de duas casasdecimais, indicando a porcentagem, para cada gerao, dos descendentes daquela gerao quecompareceram festa. O primeiro nmero dessa linha deve ser a porcentagem dos filhos e filhas, osegundo dos netos e netas, e assim por diante. (Restries: 1 M N 10000 ). Na segunda linhaimprimir a idade mdia dos participantes da festa com preciso de duas casas decimais,.

  • Obrigatoriedades

    Criar a classe abstrata Node. (lembre-se: um n pai pode ter muitos filhos )Criar a classe Pessoa com atributo nome e idade.Criar a classe NodePessoa estendendo a classe node com um atributo Pessoa.Criar a classe FamiiaReal sendo uma rvore genrica (um n pai pode ter muitos filhos)

    Exemplos:Entrada:9 5Joo 64Pedro 22Maria 47Jos 58Bruno 11Joana 54Lucas 44Marta 44Paulo 15Rita 217 3 0 9 0 3 5 6 73 2 8 1 9

    Sada:50.00 33.33 100.00 0.0029.60

    Entrada:6 4Joo 64Pedro 28Maria 53Jos 2Bruno 38Joana 39Lucas 265 0 1 2 2 4 1 3 6

    Sada:0.00 0.00 100.00 100.0018.66