Trabalho I – Algoritmos e Programação II Descrição: Este

Propaganda
Trabalho I – Algoritmos e Programação II
Descrição: Este trabalho, que deverá ser feito individualmente, consiste em implementar
em Java o conjunto de classes de acordo com o enunciado abaixo.
Enunciado do problema:
Estamos interessados em desenvolver um novo tipo de dados chamado Racional para uma
aplicação matemática que utiliza números racionais (que podem ser representados por uma
fração). Através da análise de requisitos da aplicação, chegou-se à modelagem UML
apresentada a seguir.
De forma resumida, cada método é descrito abaixo:
• Racional(num:int, den:int) é o construtor de números racionais que recebe os
valores para o numerador e denominador. Sabe-se que o denominador não pode ser
zero.
• Racional(numero:int) é o construtor de números racionais que recebe um valor
inteiro para ser representado como um racional. Por exemplo, o número 5 é
representado por 5/1.
• getNumerador() retorna o valor do numerador.
• getDenominador() retorna o valor do denominador.
• toString() retorna o número racional como uma string no formato
“numerador/denominador”. Por exemplo “5/2”.
• toDouble() retorna o valor em ponto flutuante referente ao número racional. Por
exemplo, o número 5/2 retorna o valor 2,5.
• somar(rac:Racional) soma um número racional a outro número racional recebido
por parâmetro e retorna o número racional resultante da soma. Este método não
deve alterar os valores sendo somados. Por exemplo, 3/2 somado a 5/2 é igual a 8/2.
• subtrair(rac:Racional) subtrai de um número racional o valor de outro número
racional recebido por parâmetro e retorna o número racional resultante da subtração.
Este método não deve alterar os valores sendo subtraídos. Por exemplo, 3/2
subtraído de 5/2 é igual a -2/2.
•
•
•
multiplicar(rac:Racional) multiplica um número racional por outro número racional
recebido por parâmetro e retorna o número racional resultante da multiplicação.
Este método não deve alterar os valores sendo multiplicados. Por exemplo, 1/3
multiplicado por 2/4 é igual a 2/12.
dividir(rac:Racional) divide um número racional por outro número racional
recebido por parâmetro e retorna o número racional resultante da divisão. Este
método não deve alterar os valores sendo divididos. Por exemplo, 1/3 dividido por
2/4 é igual a 4/6.
simplificar(rac:Racional) é um método de classe responsável pela simplificação do
numerador e denominador de um número racional, retornando um novo número
racional simplificado. Este método não deve alterar o número racional recebido
como parâmetro. Por exemplo, 10/4 é simplificado para 5/2.
Adicionalmente, deverá ser criado um pequeno programa de teste da classe, onde sejam
criados vários números racionais e o resultado de cada operação seja impresso na saída do
console (via System.out.println).
Objetivos: Consolidar o conhecimento sobre definição e implementação de classes em Java.
Incentivar a pesquisa de algoritmos para a solução de problemas.
Observação: O desenvolvimento do trabalho pode ser realizado em qualquer ambiente de
programação. Entretanto, a avaliação será realizada utilizando-se o prompt do sistema
operacional (Windows ou Linux) usando-se a máquina virtual java. Sendo assim, O
trabalho deverá ser executado com os recursos disponíveis nas máquinas dos laboratórios
da FACIN/PUCRS. Trabalhos que não puderem ser executados no ambiente do laboratório
receberão nota zero.
Documentação: Cada aluno deve ENTREGAR uma mídia contendo uma cópia dos
PROGRAMAS FONTE (.java). Todo o programa deverá estar comentado de acordo com o
padrão Javadoc.
Avaliação: os trabalhos serão avaliados de acordo com critérios a serem estabelecidos pelo
professor da disciplina, considerando o que é pedido no enunciado e o que foi realizado
com sucesso pelo aluno. A classe Racional desenvolvida será testada através de um
programa com casos de teste, por isso é fundamental que os métodos sejam implementados
da maneira como foram apresentados no diagrama da classe. Todos os trabalhos deverão
ser entregues na data marcada. Não serão aceitos trabalhos fora do prazo. Trabalhos
copiados resultarão em nota zero para todos os alunos envolvidos. Mensagens de erro
apresentadas pelo Java durante a execução do programa, mesmo que a aplicação não pare
de executar, serão consideradas como erros de execução. Programas com erros de
compilação receberão nota zero.
Download