// Codificado por: Beastieux
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);
}
}
Pueder ir al artículo principal:
Códigos Sencillos hechos en Java
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;
}
}
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;
}
}
Está mal el programa.
muchas gracias amigo, me ayudo fulllll…..
Gracias, esto es genial para un buen comienzo :´)
24/108 =2/9 ;;; no dal!!
sos un genio, me salvaste la vida. gracias x compartir tu código
mostrarFraccionSimplificada(8,6) que retorna??…hay que dividir el numerador y el denominador por el GCD…n.n
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;
}
}