//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);
}
}
Me gusta esto:
Me gusta Cargando...
Relacionado
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;
}
}