Código Java – Simplificar Fracción


//Codificado por: sAfOrAs
import javax.swing.*;
public class SyGFraccion{
	
	void mostrarFraccionSimplificada(int numerador, int denominador)
	{
		int div=0;
		if((numerador % denominador)==0)
		{
			div=numerador/denominador;
			JOptionPane.showMessageDialog(null,""+div);
		}
		else if((denominador % numerador)==0)
		{
			div=denominador/numerador;
			JOptionPane.showMessageDialog(null,"1/"+div);
		}
		else
			JOptionPane.showMessageDialog(null,""+numerador+"/"+denominador);
		
		
	}

	void ingresaFraccion()
	{
		int numerador=0, denominador=0;
		String cadena;
		cadena=JOptionPane.showInputDialog("Ingrese Numerador : ");
		numerador=Integer.parseInt(cadena);
		cadena=JOptionPane.showInputDialog("Ingrese Denominador : ");
		denominador=Integer.parseInt(cadena);
		mostrarFraccionSimplificada(numerador,denominador);
	}
	public static void main(String[] args)
	{
		String cadena;
		int opcion=0;
		SyGFraccion fraccional = new SyGFraccion();
		do
		{
			cadena=JOptionPane.showInputDialog("0. Salir.  -----   [Otro] Continuar");
			opcion=Integer.parseInt(cadena);
			if(opcion==0)
				System.exit(0);
			else		
				fraccional.ingresaFraccion();
			
		}while(opcion!=0);		
	}
}
Anuncios

9 comentarios sobre “Código Java – Simplificar Fracción

  1. El de abajo lo copié mal :/

    package basicos;

    public class Simplifica {

    public static void main(String[] args) {
    System.out.println(simplificarNumero(“-5/-125”));
    System.out.println(simplificarNumero(“8/6”));
    System.out.println(simplificarNumero(“24/108”));
    System.out.println(simplificarNumero(“-1500/1520”));
    }

    //Este método no admite los números decimales, pero eso es muy sencillo de hacerlo.
    public static String simplificarNumero(String numero) {

    String[] split = numero.split(“/”);
    if(split!=null) {
    if(split.length==2 && !split[0].isEmpty() && !split[1].isEmpty()) {
    if(validarNumeroEntero(split[0])&&
    validarNumeroEntero(split[1])){
    int numerador = Integer.parseInt(split[0]);
    int denominador = Integer.parseInt(split[1]);

    if(denominador==0) {
    return “División por 0”;
    }else {
    for(int i=2;i<=Math.abs(Math.min(numerador,denominador));i++) {
    while(numerador%i==0 && denominador%i==0) {
    numerador /= i;
    denominador /= i;
    }
    }
    }

    return numerador+"/"+denominador+" = "+String.format("%.2f",(Double.parseDouble(""+numerador)/denominador));
    }
    }
    }
    return "Introduzca algo similar a: 155/5";
    }

    public static boolean validarNumeroEntero(String numero) {
    //int count = 0;
    if (numero != null) {
    // validamos si tiene un –
    int der = numero.indexOf('-');// busca desde la izquierda
    int iz = numero.lastIndexOf('-');// busca desde la derecha
    if (der <= 0 && iz <= 0) {
    for (int i = 0; i < numero.length(); i++) {
    if (numero.charAt(i) == '-')continue;
    if (!Character.isDigit(numero.charAt(i)))return false;
    }
    return true;
    }
    }
    return false;
    }

    }

  2. package basicos;

    public class Simplifica {

    public static void main(String[] args) {
    System.out.println(simplificarNumero(“-5/-125”));
    System.out.println(simplificarNumero(“8/6”));
    System.out.println(simplificarNumero(“24/108”));
    System.out.println(simplificarNumero(“-1500/1520”));
    }

    //Este método no admite los números decimales, pero eso es muy sencillo de hacerlo.
    public static String simplificarNumero(String numero) {

    String[] split = numero.split(“/”);
    if(split!=null) {
    if(split.length==2 && !split[0].isEmpty() && !split[1].isEmpty()) {
    if(validarNumeroEntero(split[0])&&
    validarNumeroEntero(split[1])){
    int numerador = Integer.parseInt(split[0]);
    int denominador = Integer.parseInt(split[1]);

    if(denominador==0) {
    return “División por 0”;
    }else {
    for(int i=2;i<=Math.abs(Math.min(numerador,denominador));i++) {
    while(numerador%i==0 && denominador%i==0) {
    numerador /= i;
    denominador /= i;
    }
    }
    }

    return numerador+"/"+denominador+" = "+String.format("%.2f",(Double.parseDouble(""+numerador)/denominador));
    }
    }
    }
    return "Introduzca algo similar a: 155/5";
    }

    public static boolean validarNumeroEntero(String numero) {
    //int count = 0;
    if (numero != null) {
    // validamos si tiene un –
    int der = numero.indexOf('-');// busca desde la izquierda
    int iz = numero.lastIndexOf('-');// busca desde la derecha
    if (der <= 0 && iz <= 0) {
    for (int i = 0; i < numero.length(); i++) {
    if (numero.charAt(i) == '-')continue;
    if (!Character.isDigit(numero.charAt(i)))return false;
    }
    return true;
    }
    }
    return false;
    }

    }

    public static void main(String[] args) {
    System.out.println(simplificarNumero("-5/-125"));
    System.out.println(simplificarNumero("8/6"));
    System.out.println(simplificarNumero("24/108"));
    System.out.println(simplificarNumero("-1500/1520"));
    }

    //Este método no admite los números decimales, pero eso es muy sencillo de hacerlo.
    public static String simplificarNumero(String numero) {

    String[] split = numero.split("/");
    if(split!=null) {
    if(split.length==2 && !split[0].isEmpty() && !split[1].isEmpty()) {
    if(validarNumeroEntero(split[0])&&
    validarNumeroEntero(split[1])){
    int numerador = Integer.parseInt(split[0]);
    int denominador = Integer.parseInt(split[1]);

    if(denominador==0) {
    return "División por 0";
    }else {
    for(int i=2;i<=Math.abs(Math.min(numerador,denominador));i++) {
    while(numerador%i==0 && denominador%i==0) {
    numerador /= i;
    denominador /= i;
    }
    }
    }

    return numerador+"/"+denominador+" = "+String.format("%.2f",(Double.parseDouble(""+numerador)/denominador));
    }
    }
    }
    return "Introduzca algo similar a: 155/5";
    }

    public static boolean validarNumeroEntero(String numero) {
    //int count = 0;
    if (numero != null) {
    // validamos si tiene un –
    int der = numero.indexOf('-');// busca desde la izquierda
    int iz = numero.lastIndexOf('-');// busca desde la derecha
    if (der <= 0 && iz <= 0) {
    for (int i = 0; i < numero.length(); i++) {
    if (numero.charAt(i) == '-')continue;
    if (!Character.isDigit(numero.charAt(i)))return false;
    }
    return true;
    }
    }
    return false;
    }

    }

    1. Mi solución:
      package basicos;

      public class Simplifica {

      public static void main(String[] args) {

      System.out.println(simplificarNumero(“5/2”));
      System.out.println(simplificarNumero(“8/6”));
      System.out.println(simplificarNumero(“24/108”));
      System.out.println(simplificarNumero(“1500/1520”));
      }

      //Este método no admite los números decimales, pero eso es muy sencillo de hacerlo.
      public static String simplificarNumero(String numero) {

      String[] split = numero.split(“/”);
      if(split!=null) {
      if(split.length==2) {
      if(validarNumeroEntero(split[0])&&
      validarNumeroEntero(split[1])){
      int numerador = Integer.parseInt(split[0]);
      int denominador = Integer.parseInt(split[1]);

      if(denominador==0) {
      return “División por 0”;
      }else {
      for(int i=2;i<=Math.abs(Math.min(numerador,denominador));i++) {
      while(numerador%i==0 && denominador%i==0) {
      numerador /= i;
      denominador /= i;
      }
      }
      }

      return numerador+"/"+denominador+" = "+String.format("%.2f",(Double.parseDouble(""+numerador)/denominador));
      }
      }
      }
      return "Introduzca algo similar a: 155/5";
      }

      public static boolean validarNumeroEntero(String numero) {
      //int count = 0;
      if (numero != null) {
      // validamos si tiene un –
      int der = numero.indexOf('-');// busca desde la izquierda
      int iz = numero.lastIndexOf('-');// busca desde la derecha
      if (der <= 0 && iz <= 0) {
      for (int i = 0; i < numero.length(); i++) {
      if (numero.charAt(i) == '-')continue;
      if (!Character.isDigit(numero.charAt(i)))return false;
      }
      return true;
      }
      }
      return false;
      }

      }

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s