Foros del Web » Programación para mayores de 30 ;) » Java »

No se porque no me salen los resultados por consola

Estas en el tema de No se porque no me salen los resultados por consola en el foro de Java en Foros del Web. Hola estoy haciendo una clase para fracciones (racionales), sumar ,restar, simplificar etc con fracciones. Tengo el código bastante adelantado ya que lo que he hecho ...
  #1 (permalink)  
Antiguo 08/11/2012, 03:40
Avatar de tofol  
Fecha de Ingreso: febrero-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta No se porque no me salen los resultados por consola

Hola estoy haciendo una clase para fracciones (racionales), sumar ,restar, simplificar etc con fracciones. Tengo el código bastante adelantado ya que lo que he hecho es adaptar uno de complejos. El caso es que tengo un método para mostrar las fracciones por pantalla pero no me muestra nada y no obtengo mensajes de error al ejecutarlo.
El de complejos sí funciona.

El código de la clase es:

Código:
package fracciones;


public class Fractions {
    private int num;
    private int denom;
    
   public Fractions() {
        this.num = 0;
        this.denom = 0;
    }
    public Fractions(int num, int denom) {
        this.num = num;
        this.denom = denom;
        
    }
    public Fractions(Fractions input) {
      this.num = input.getNum();
      this.denom = input.getDenom();
    }
    public int getNum() {
      return this.num;
    }
    public int getDenom() {
      return this.denom;
    }
     public void setNum(int num) {
      this.num = num;
    }
    
    public void setDenom(int denom) {
      this.denom = denom;
    }   
    
    public Fractions sumar(Fractions op) {
      
      Fractions suma = new Fractions();
      
      int numerador;
      int denominador;
      
      denominador = mcm(this.denom,op.getDenom());
      numerador = (denominador/this.denom)*this.num+(denominador/op.getDenom())*op.getNum();
      
      suma.setNum(numerador);
      suma.setDenom(denominador);
      
      return suma;
    }
    public Fractions restar(Fractions op) {
      
      Fractions resta = new Fractions();
      
      int numerador;
      int denominador;
      
      denominador = mcm(this.denom,op.getDenom());
      numerador = (denominador/this.denom)*this.num-(denominador/op.getDenom())*op.getNum();
      
      resta.setNum(numerador);
      resta.setDenom(denominador);
      
      return resta;
    }
    
    public Fractions producto(Fractions op) {
      
      Fractions multiplicar = new Fractions();
      
      multiplicar.setNum(this.num*op.getNum());
      multiplicar.setDenom(this.denom*op.getDenom());
     
      
      return simplificar(multiplicar);
    }
    
    public Fractions division(Fractions op) {
      
      Fractions dividir = new Fractions();
      
      dividir.setNum(this.num*op.getDenom());
      dividir.setDenom(this.denom*op.getNum());
      
      return dividir;
    }
    
    public Fractions simplificar(Fractions op) {
        Fractions frac = new Fractions();
        int a;
        
        a = mcd(this.num,this.denom);
        while(a!=1) {
          frac.setNum(this.num/a);
          frac.setDenom(this.denom/a);
        }   
        
        return frac;
    }
    public int mcd(int a, int b) {
        if(b==0) {
            return a;
        }
        else {
            return mcd(b, a % b);
        }
     }
     public  int mcm(int a, int b) {
         return (a*b)/mcd(a,b);
     }
    public String pantalla() {
        return(this.num + "/" + this.denom + "");
    }
}
Y el código del programa main es éste:

Código:
package fracciones;

public class Fracciones {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
 
        
        Fractions quebrado1;
        Fractions quebrado2;
        Fractions quebrado3;
        
        quebrado1 = new Fractions(8,6);
        quebrado2 = new Fractions(2,3);
        
        quebrado3 = quebrado1.sumar(quebrado2);
        quebrado3.pantalla();
        quebrado1.pantalla();
        System.out.println(quebrado1.getNum() + "/" + quebrado1.getDenom());
    }
}
Lo que no me funciona es el método pantalla(), no me pone error pero no me muestra por consola las fracciones.
Gracias
__________________
http://linuxmusica.com
  #2 (permalink)  
Antiguo 08/11/2012, 04:42
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: No se porque no me salen los resultados por consola

¿Por qué usas System.out.println en la última línea?

Para mostrar en consola.

¿Usas con el método pantalla un System.out.println?

No
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 08/11/2012, 05:58
Avatar de tofol  
Fecha de Ingreso: febrero-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: No se porque no me salen los resultados por consola

La clase tiene dos formas de imprimir por consola.una es haciendo println invocando los métodos get de la clase y ahí la uso para ver si funciona.
La otra es invocando el método pantalla y que es por la que pregunto.
__________________
http://linuxmusica.com
  #4 (permalink)  
Antiguo 08/11/2012, 06:08
Avatar de veruti85  
Fecha de Ingreso: octubre-2012
Ubicación: Entre Huelva y Madrid
Mensajes: 32
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: No se porque no me salen los resultados por consola

Pero el metodo pantalla solo devuelve un string....

Ese string debes pasarselo al System.out.println(...) para que te lo pinte, si no no se como quieres mostrarlo :)

Saludos
  #5 (permalink)  
Antiguo 08/11/2012, 07:01
Avatar de tofol  
Fecha de Ingreso: febrero-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: No se porque no me salen los resultados por consola

Ya lo he resuelto, el método pantalla ha de ser void y usar println, así:

Código:
public void pantalla() {
        System.out.println(this.num + "/" + this.denom + "");
    }
Ahora estoy intentando solucionar el método simplificar() para simplificar las fracciones.
__________________
http://linuxmusica.com

Etiquetas: clase, consola, programa, resultados, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:40.