Você está na página 1de 2

Lista 4 - Programao Aplicada de Computadores - 12/1 ca Prof.

Andra Maria Pedrosa Valli e Data de entrega: 01/05/12 Formato de entrega: Pode ser feito individualmente ou em grupo de dois alunos. Envie por email (avalli@inf.ufes.br) cada questo dentro de um diretrio com o nome a o questao1, questao2, etc e com o titulo da mensagem lista 4 - pac (inclua os nomes aqui). Envie apenas os arquivos .cpp e os .h contendo os cabealhos, assim como c o programa principal que teste o seus cdigos. o

1. Crie uma classe chamada Complexos para fazer aritmtica com nmeros e u complexos. Escreva um programa para testar a sua classe. Os nmeros comu plexos tm a forma: parteReal + parteImaginaria * i, onde i 1. Use e e variveis double para representar os dados private da classe. Fornea uma a c funo construtor que possibilita que um objeto dessa classe seja inicializado ca quando declarado. O construtor deve conter valores default no caso de nene hum inicializador ser fornecido. Fornea funoes membro public para cada c c um dos seguintes itens: (a) Adio de dois nmeros Complexos. ca u (b) Subtrao de dois nmeros Complexos. ca u (c) Imprimir nmeros do tipo Complexos na forma (a, b), onde a a parte u e real e b a parte imaginria. e a 2. Crie uma classe chamada Racional para fazer aritmtica com fraes. Escreva e co um programa para testar sua classe. Use variveis inteiras para representar os a dados private da classe - o numerador e o denominador. Fornea uma funo c ca construtor que possibilita que um objeto dessa classe seja inicializado quando declarado. O construtor deve conter valores default no caso de nenhum e inicializador ser fornecido e deve armazenar a frao em formato reduzido ca 2 (i.e. a frao 4 seria armazenada no objeto como 1 no numerador e 2 no ca denominador). Fornea funoes membro public para cada um dos seguintes c c itens, onde os resultados devem ser armazenados em forma reduzida: (a) Adio de dois nmeros Racional. ca u (b) Subtrao de dois nmeros Racional. ca u (c) Multiplicao de dois nmeros Racional. ca u (d) Diviso de dois nmeros Racional. a u (e) Imprimir nmeros do tipo Racional no formato a/b, onde a o numeru e ador e b o denominador. e (f) Imprimir nmeros do tipo Racional no formato de ponto utuante. u 3. Modique a classe Time dada na sala de aula para incluir uma funo membro ca tick que incrementa a hora armazenada em um objeto do tipo Time em um segundo. O objeto do tipo Time deve sempre permanecer em um estado

consistente. Escreva um programa que testa a funao membro tick em um c lao que imprime a hora no formato padro durante cada repetiao do lao, c a c c para ilustrar que a funao tick funciona corretamente. No deixe de testar os c a seguintes casos: (a) Incrementar para o prximo minuto. o (b) Incrementar para a prxima hora. o (c) Incrementar para o dia seguinte (i.e. 11:59:59 da noite para 12:00:00 da manh). a 4. Modique a classe dada Date (main date.cpp) para executar a vericao ca de erros sobre os valores de inicializadores fornecidos para os membros de dados month, day e year. Fornea tambm uma funao membro nextDay c e c para incrementar o dia por um. O objeto Date deve sempre permanecer em um estado consistente. Escreva um programa que testa a funo membro ca nextDay em um lao que imprime a data durante cada repetio do lao, c ca c para ilustrar que a funo nextDay funciona corretamente. No deixe de ca a testar os seguintes casos: (a) Incrementar para o prximo ms. o e (b) Incrementar para o prximo ano. o 5. Combine a classe Time modicada no item 3 e a classe Date modicada no item anterior em uma classe chamada DateAndTime. Modique a funao c tick para chamar a funao nextDay se a hora for incrementada para o dia c seguinte. Modique as funes PrintStandard and PrintMilitary para enco viar para a sa a data, alm da hora. Escreva um programa para testar a da e nova classe DateAndTime. Faa um teste espec c co, incrementando a hora para o dia seguinte. 6. Crie uma classe Retangulo. A classe tem atributos comprimento e largura, cada um com valor default igual a 1. Ela tem funes membro que calculam co o perimetro e a area do retngulo. Fornea funes set e get, tanto para o a c co comprimento e largura. As funoes set devem vericar se o comprimento c e largura so nmeros de ponto utuante maiores que 0.0 e menores que 20.0. a u 7. Crie uma classe Retangulo mais sosticada que a anterior. Esta classe armazena s as coordenadas cartesianas dos quatro cantos do retngulo. O o a construtor chama uma funo set que recebe quatro conjuntos de coordenadas ca e verica se cada um deles est no primeiro quadrante sem que nenhum valor a de coordenada x e y seja maior que 20.0. A funao set tambm verica se as c e coordenadas fornecidas de fato especicam um retngulo. As funes mema co bros calculam comprimento, largura, perimetro e area. O comprimento a maior das duas dimenses. Inclua uma funao predicado quadrado, que e o c determina se o retngulo um quadrado. a e

Você também pode gostar