Clase fracción

Como podría hacer la clase fraccion(2/4 o 3/5)
public class Fraccion{
 Private int num; //numerador
 Private int dem; //denominador
public fraccion(int n, int d) throws FraccionException{
 generar error cuando d igual a cero ya que la division entre cero no es posible
public Fraccion suma(Fraccion f){
ej:
a/b+c/b=a+c/b
a/b+c/d=a*d+b*c/b*d
public Fracion resta(Fraccion f){
 ej
a/b - c/b= a-c/b
a/b - c/d =a*d-b*c/b*d
public Fraccion producto(fraccion f{
 a/b*c/d=a*c/b*d
public Fraccion division(Fraccion f){
a/b / c/d=a*d/b*c
public Fraccion potencia(int n){
 (a/b)^n=a^n/b^n  usar el metodo java.lang.Math.pow
public String toString(){
Devuelve una representación en cadena de la instancia de fracción con el formato a/b}
Defina una clase que implemente la clase fracción que lea dos fracciones por teclado, realice la suma y el producto e imprima el resultado.

2 Respuestas

Respuesta
1
No entiendo tu pregunta
Según entiendo sería una clase de tipo fracción que tenga un numerador y un denominador, e implementar los métodos de suma, resta, multiplicación y división de fracciones tomando en cuenta la fracción que tengo y restarle una o según sea el caso, de esta forma
public class Fraccion {
private int num;
private int den;
public Fraccion() {
num=0;
den=1;
}
public Fraccion(int x, int y) {
num=x;
den=y;
}
public static Fraccion sumar(Fraccion a, Fraccion b){
Fraccion c=new Fraccion();
c.num=a.num*b.den+b.num*a.den;
c.den=a.den*b.den;
return c;
}
public static Fraccion restar(Fraccion a, Fraccion b){
Fraccion c=new Fraccion();
c.num=a.num*b.den-b.num*a.den;
c.den=a.den*b.den;
return c;
}
public static Fraccion multiplicar(Fraccion a, Fraccion b){
return new Fraccion(a.num*b.num, a.den*b.den);
}
public static Fraccion inversa(Fraccion a){
return new Fraccion(a.den, a.num);
}
public static Fraccion dividir(Fraccion a, Fraccion b){
return multiplicar(a, inversa(b));
}
private int mcd(){
int u=Math.abs(num);
int v=Math.abs(den);
if(v==0){
return u;
}
int r;
while(v!=0){
r=u%v;
u=v;
v=r;
}
return u;
}
public Fraccion simplificar(){
int dividir=mcd();
num/=dividir;
den/=dividir;
return this;
}
public String toString(){
String texto=num+" / "+den;
return texto;
}
}
La clase para probarlo sería la siguiente:
public class FraccionApp1 {
public static void main(String[] args) {
Fraccion x=new Fraccion(2,3);
Fraccion y=new Fraccion(4,3);
Fraccion z=new Fraccion(1,2);
System.out.println("x--> "+x);
System.out.println("y--> "+y);
System.out.println("z--> "+z);
System.out.println("x+y= "+Fraccion.sumar(x, y));
System.out.println("x*y= "+Fraccion.multiplicar(x,y));
//primero suma x e y y luego hace el producto con z
Fraccion resultado=Fraccion.multiplicar(Fraccion.sumar(x,y),z);
System.out.println("(x+y)*z= "+resultado);
System.out.println(resultado.simplificar());
try {
//espera la pulsación de una tecla y luego RETORNO
System.in.read();
}catch (Exception e) { }
}
}
public class Fraccion{
    private int numerador;
    private int denominador;
    public Fraccion(int numerador,int denominador){
         this.numerador = numerador;
         this.denominador = denominador;
    }
     public Fraccion suma(Fraccion fraccion) throws FraccionException{
          if(denominador == fraccion.getDenominador()){
               numerador + fraccion.getNumerador() / fraccion.getDenominador();
          }else{
                numerador/denominador + fraccion.getNumerador()/fraccion.getDenominador();
          }
     }
}
Respuesta
1
Presupongo que te han pedido que hagas la clase Fracción (mejor con mayúscula, ya que es una clase), para que aprendas a programar con Java. Por eso si te doy la solución no vas a aprender... Sin embargo lo que si puedo es darte alguna pista... Lo primero, si ambos num y dem son atributos de tipo Private, necesitarás crear métodos accesores, por ejemplo:
public int getNumerador() { return this.num; }
public int getDenominador() { return this.dem; }
a partir de ahora, podrás rellenar el resto de métodos, te hago uno como ejemplo ;)
public Fracción producto(Fracción f) {
//a/b * c/d = (a * c) / (b * c)
int nuevoNum = this.getNumerador() * f.getNumerador();
int nuevoDem = this.getDenominador() * f.getDenominador();
return new Fracción( nuevoNum, nuevoDem);
}
Bueno, creo que con este método resuelto bien puedes tú rellenar el resto. Mucha suerte!
PD: Si tienes una pregunta concreta (o quieres que le eche un ojo a la clase completa cuando la tengas terminada), no dudes en responder. Si no te hace falta te pido que cierres la consulta :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas