Hola denuevo, por aquí traigo un avance de una aplicación en la que estoy trabajando, esto es un borrado de lo que sera apenas una mini función para hacer conversiones de unidades de masa, la idea a largo plazo es hacer una gran aplicación que nos permitirá realizar cálculos,analisis, gráficas etc. de problemas de Física de Secundaria y Universitária.
EL ALGOTIRMO: es simple está basado en utilizacion de variables de tipo float, para ahorrar espacio de momoria, y la utilizacion de la estructura en caso, o "switch case".
tomé como referencia este gráfico que nos da una idea de que es lo que se está ejecutando.(no es para nada un diagrama de flujo, solo es la referencia gráfica para realizar los cálculos)
package conversor.de.unidades.de.masa;
import javax.swing.JOptionPane;
public class ConversorDeUnidadesDeMasa {
public static void main(String[] args) {
float gramo,decigramo,centigramo,miligramo,decagramo,hectogramo,kilogramo,conversion;
int opcion_p,opcion_kg,opcion_hg,opcion_dag,opcion_g,opcion_dg,opcion_cg,opcion_mg;
opcion_p=Integer.parseInt(JOptionPane.showInputDialog(null, "Conversor de Unidades de Masa\n\n"
+"1)Kilogramo\n"
+ "2)Hectogramo\n"
+ "3)Decagramo\n"
+ "4)Gramo\n"
+ "5)Decigramo\n"
+ "6)Centigramo\n"
+ "7)Miligramo\n"
+ "8)Salir"));
switch(opcion_p) {
case 1:kilogramo=Float.parseFloat(JOptionPane.showInputDialog(null, "Digite cantidad en kg"));
opcion_kg=Integer.parseInt(JOptionPane.showInputDialog(null, "Convertir a: \n"
+ "1)Hectogramo\n"
+ "2)Decagramo\n"
+ "3)Gramo\n"
+ "4)Decigramo\n"
+ "5)Centigramo\n"
+ "6)Miligramo\n"));
switch(opcion_kg) {
case 1: conversion=kilogramo*10;
JOptionPane.showMessageDialog(null, +conversion+" hg");
break;
case 2:conversion=kilogramo*100;
JOptionPane.showMessageDialog(null, +conversion+" dag");
break;
case 3:conversion=kilogramo*1000;
JOptionPane.showMessageDialog(null, +conversion+" g");
break;
case 4:conversion=kilogramo*10000;
JOptionPane.showMessageDialog(null, +conversion+" dg");
break;
case 5:conversion=kilogramo*100000;
JOptionPane.showMessageDialog(null, +conversion+" cg");
break;
case 6:conversion=kilogramo*1000000;
JOptionPane.showMessageDialog(null, +conversion+" mg");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion Invalida");
break;
}
case 2:hectogramo=Float.parseFloat(JOptionPane.showInputDialog(null, "Digite cantidad en hg"));
opcion_hg=Integer.parseInt(JOptionPane.showInputDialog(null, "Convertir a: \n"
+ "1)Kilogramo\n"
+ "2)Decagramo\n"
+ "3)Gramo\n"
+ "4)Decigramo\n"
+ "5)Centigramo\n"
+ "6)Miligramo\n"));
switch(opcion_hg) {
case 1: conversion=hectogramo/10;
JOptionPane.showMessageDialog(null, +conversion+" kg");
break;
case 2:conversion=hectogramo*10;
JOptionPane.showMessageDialog(null, +conversion+" dag");
break;
case 3:conversion=hectogramo*100;
JOptionPane.showMessageDialog(null, +conversion+" g");
break;
case 4:conversion=hectogramo*1000;
JOptionPane.showMessageDialog(null, +conversion+" dg");
break;
case 5:conversion=hectogramo*10000;
JOptionPane.showMessageDialog(null, +conversion+" cg");
break;
case 6:conversion=hectogramo*100000;
JOptionPane.showMessageDialog(null, +conversion+" mg");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion Invalida");
break;
}
case 3:decagramo=Float.parseFloat(JOptionPane.showInputDialog(null, "Digite cantidad en dag"));
opcion_dag=Integer.parseInt(JOptionPane.showInputDialog(null, "Convertir a: \n"
+ "1)Kilogramo\n"
+ "2)Hectogramo\n"
+ "3)Gramo\n"
+ "4)Decigramo\n"
+ "5)Centigramo\n"
+ "6)Miligramo\n"));
switch(opcion_dag) {
case 1: conversion=decagramo/100;
JOptionPane.showMessageDialog(null, +conversion+" kg");
break;
case 2:conversion=decagramo/10;
JOptionPane.showMessageDialog(null, +conversion+" hg");
break;
case 3:conversion=decagramo*10;
JOptionPane.showMessageDialog(null, +conversion+" g");
break;
case 4:conversion=decagramo*100;
JOptionPane.showMessageDialog(null, +conversion+" dg");
break;
case 5:conversion=decagramo*1000;
JOptionPane.showMessageDialog(null, +conversion+" cg");
break;
case 6:conversion=decagramo*10000;
JOptionPane.showMessageDialog(null, +conversion+" mg");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion Invalida");
break;
}
case 4:gramo=Float.parseFloat(JOptionPane.showInputDialog(null, "Digite cantidad en g"));
opcion_g=Integer.parseInt(JOptionPane.showInputDialog(null, "Convertir a: \n"
+ "1)Kilogramo\n"
+ "2)Hectogramo\n"
+ "3)decagramo\n"
+ "4)Decigramo\n"
+ "5)Centigramo\n"
+ "6)Miligramo\n"));
switch(opcion_g) {
case 1: conversion=gramo/1000;
JOptionPane.showMessageDialog(null, +conversion+" kg");
break;
case 2:conversion=gramo/100;
JOptionPane.showMessageDialog(null, +conversion+" hg");
break;
case 3:conversion=gramo/10;
JOptionPane.showMessageDialog(null, +conversion+" dag");
break;
case 4:conversion=gramo*10;
JOptionPane.showMessageDialog(null, +conversion+" dg");
break;
case 5:conversion=gramo*100;
JOptionPane.showMessageDialog(null, +conversion+" cg");
break;
case 6:conversion=gramo*1000;
JOptionPane.showMessageDialog(null, +conversion+" mg");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion Invalida");
break;
}
case 5:decigramo=Float.parseFloat(JOptionPane.showInputDialog(null, "Digite cantidad en dg"));
opcion_dg=Integer.parseInt(JOptionPane.showInputDialog(null, "Convertir a: \n"
+ "1)Kilogramo\n"
+ "2)Hectogramo\n"
+ "3)decagramo\n"
+ "4)gramo\n"
+ "5)Centigramo\n"
+ "6)Miligramo\n"));
switch(opcion_dg) {
case 1: conversion=decigramo/10000;
JOptionPane.showMessageDialog(null, +conversion+" kg");
break;
case 2:conversion=decigramo/1000;
JOptionPane.showMessageDialog(null, +conversion+" hg");
break;
case 3:conversion=decigramo/100;
JOptionPane.showMessageDialog(null, +conversion+" dag");
break;
case 4:conversion=decigramo/10;
JOptionPane.showMessageDialog(null, +conversion+" g");
break;
case 5:conversion=decigramo*10;
JOptionPane.showMessageDialog(null, +conversion+" cg");
break;
case 6:conversion=decigramo*100;
JOptionPane.showMessageDialog(null, +conversion+" mg");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion Invalida");
break;
}
case 6:centigramo=Float.parseFloat(JOptionPane.showInputDialog(null, "Digite cantidad en cg"));
opcion_cg=Integer.parseInt(JOptionPane.showInputDialog(null, "Convertir a: \n"
+ "1)Kilogramo\n"
+ "2)Hectogramo\n"
+ "3)decagramo\n"
+ "4)gramo\n"
+ "5)decigramo\n"
+ "6)Miligramo\n"));
switch(opcion_cg) {
case 1: conversion=centigramo/100000;
JOptionPane.showMessageDialog(null, +conversion+" kg");
break;
case 2:conversion=centigramo/10000;
JOptionPane.showMessageDialog(null, +conversion+" hg");
break;
case 3:conversion=centigramo/1000;
JOptionPane.showMessageDialog(null, +conversion+" dag");
break;
case 4:conversion=centigramo/100;
JOptionPane.showMessageDialog(null, +conversion+" g");
break;
case 5:conversion=centigramo/10;
JOptionPane.showMessageDialog(null, +conversion+" dg");
break;
case 6:conversion=centigramo*10;
JOptionPane.showMessageDialog(null, +conversion+" mg");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion Invalida");
break;
}
case 7:miligramo=Float.parseFloat(JOptionPane.showInputDialog(null, "Digite cantidad en mg"));
opcion_mg=Integer.parseInt(JOptionPane.showInputDialog(null, "Convertir a: \n"
+ "1)Kilogramo\n"
+ "2)Hectogramo\n"
+ "3)Decagramo\n"
+ "4)Gramo\n"
+ "5)Decigramo\n"
+ "6)Centigramo\n"));
switch(opcion_mg) {
case 1: conversion=miligramo/1000000;
JOptionPane.showMessageDialog(null, +conversion+" kg");
break;
case 2:conversion=miligramo/100000;
JOptionPane.showMessageDialog(null, +conversion+" hg");
break;
case 3:conversion=miligramo/10000;
JOptionPane.showMessageDialog(null, +conversion+" dag");
break;
case 4:conversion=miligramo/1000;
JOptionPane.showMessageDialog(null, +conversion+" g");
break;
case 5:conversion=miligramo/100;
JOptionPane.showMessageDialog(null, +conversion+" dg");
break;
case 6:conversion=miligramo/10;
JOptionPane.showMessageDialog(null, +conversion+" cg");
break;
default:
JOptionPane.showMessageDialog(null, "Opcion Invalida");
break;
}
case 8:
break;
}
}
}