Como faço para implementar uma classe para representar frações?

Implemente uma classe para representar frações. A sua classe deve necessariamente se chamar Fracao, de modo que seja possível criar objetos do tipo Fracao.

A classe Fracao deve ser colocada dentro de um pacote chamado trab1. A implementação de sua classe deve obedecer às seguintes regras:

Atributos:

Declare os atributos necessários para representar o numerador e o denominador de uma fração.

Construtor:

Disponibilize um ou mais construtores para criar objetos do tipo Fracao.

Métodos:

Disponibilize os seguintes métodos públicos, exatamente com os nomes definidos abaixo e seguindo as regras descritas:

somar(): recebe como parâmetro um objeto do tipo Fracao e soma duas frações (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna o resultado da soma, representado como um objeto do tipo Fracao.

subtrair(): recebe como parâmetro um objeto do tipo Fracao e subtrai duas frações (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna o resultado da subtração, representado como um objeto do tipo Fracao.

multiplicar(): recebe como parâmetro um objeto do tipo Fracao e multiplica duas frações (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna o resultado da multiplicação, representado como um objeto do tipo Fracao.

dividir(): recebe como parâmetro um objeto do tipo Fracao e divide duas frações (o objeto utilizado na chamada do método e o objeto passado como parâmetro) e retorna o resultado da divisão, representado como um objeto do tipo Fracao.

simplificar(): não recebe parâmetros; simplifica uma fração (o objeto utilizado na chamada do método) e não retorna nada. Obs: Para simplificar uma fração, você pode utilizar o algoritmo que calcula o mdc.

toString(): não recebe parâmetros e retorna uma String contendo a representação do objeto Fração utilizado na chamada do método: ?numerador/denominador?.

O resultado retornado pelos métodos somar(), subtrair(), multiplicar() e dividir() deve estar simplificado.

Caso julgue necessário, você pode definir outros métodos em sua classe.

Você precisa de dois métodos adicionais, que são o cálculo do mínimo múltiplo comum e do máximo divisor comum, que são necessários para normalizar uma fração (por exemplo, a forma normalizada da fração 2/4 é 1/2).

Por exemplo, para somar 5/6 com 5/8, você sabe que o resultado é 35/24.

O mínimo múltiplo comum de 6 e 8 é 24, e o máximo divisor comum de 29 e 24 é 1.

Não estamos aqui para fazer seus trabalho. Tente fazer e se não conseguir em algum ponto ou der algum erro coloque seu código e lhe ajudaremos.

TENHO ESSE CODIGO, MAS NAO SEI CONTINUAR…
package trab1;

public class Fracao {

private int numerador;
private int denominador;

public Fracao(int n, int d) {
	numerador = n;
	denominador = d;
}

public Fracao somar(Fracao f) {
	// complete		
}	

public Fracao multiplicar(Fracao f) {
	int numeradorResultado = numerador * f.numerador;
	int denominadorResultado = denominador * f.denominador;
	Fracao resultado = new Fracao(numeradorResultado, denominadorResultado);
	resultado.simplificar();
	return resultado;
}	

public void simplificar() {
	// complete!
}

// complete a classe

}

bem, creio que sua duvida é matemática. E não java.

Conselho, antes de colocar qualquer código utilizar a tag ‘code’
Conselho 2: http://pt.wikipedia.org/wiki/Netiqueta
digo isso pois os comentários “// complete!” estão no imperativo! Uma ordem! Algo mais indicado seria ‘falta fazer’ ou ‘não sei’

Bom, enfim, amanhã posto um código aqui pra te ajudar. :smiley:

Dica: pense mais na matemática e descreva seu passo a passo. Ex.:

somar duas frações:

1 - Se os demoninadores são diferentes calcular o mmc (ou neste caso para simplificar apenas multiplicar um pelo outro.)
2 - Multiplique o numerador pelo mesmo valor que o denominador foi multiplicado.
3 - Some os numeradores.
4 - Retorne uma nova fração com os numeradores somados com o novo demoninador calculado no passo 1.

outra dica: para verificar o resto de uma divisão utilize o operador ‘%’ uma frações só pode ser simplificada se houver algum valor que possa dividir seu numerado e denominador ao mesmo tempo e sem deixar resots. Bom, tenta avançar um pouco mais e amanhã tento postar um código mais detalhado (vai depender da demanda lá no trabalho.) :smiley: boa sorte!

[code]package trab1;

public class Fracao {

private int numerador;
private int denominador;

public Fracao(int n, int d) {
numerador = n;
denominador = d;
}

public Fracao somar(Fracao f) {
// complete
}

public Fracao multiplicar(Fracao f) {
int numeradorResultado = numerador * f.numerador;
int denominadorResultado = denominador * f.denominador;
Fracao resultado = new Fracao(numeradorResultado, denominadorResultado);
resultado.simplificar();
return resultado;
}

public void simplificar() {
// complete!
}

// complete a classe
} [/code]