EJERCICIOS RESUELTOS
1. Ingrese un numero entero menor o igual a 4 cifras y muestre como se lee
SOLUCIÓN:
import java.util.Scanner;
public class escritura {
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
int n=0, con=0,n2=0, n1;
String numero,mensaje="", m1="DIEZ", m2="ONCE", m3="DOCE", m4="TRECE", m5="CATORCE", M6="QUINCE",
m7="VEINTE", m8="VEINTI";
String[] naturales={"","UNO","DOS","TRES","CUATRO","CINCO","SEIS","SIETE","OCHO","NUEVE"};
String[] diez={"","ONCE","DOCE","TRECE","CATORCE","QUINCE"};
String[] decenas={"","DIEZ","VEINTE","TREINTA","CUARENTA","CINCUENTA","SESENTA","SETENTA","OCHENTA","NOVENTA"};
String[] centenas={"","CIEN","DOSCIENTOS","TRESCIENTOS","CUATROCIENTOS","QUINIENTOS","SEISCIENTOS","SETECIENTOS","OCHOCIENTOS","NOVECIENTOS"};
do{
System.out.println("Ingrese el numero a evaluar:");
numero=teclado.next();
}while(numero.length()>4);
con=numero.length();
n1=Integer.parseInt(numero.substring(con-3,con));
n2=Integer.parseInt(numero.substring(con-2,con));
for (int i = 0; i <numero.length() ; i++) {
n=Integer.parseInt(numero.substring(i,i+1));
if(con==4){
if(n>1)
mensaje=naturales[n]+" MIL"+mensaje;
else
mensaje=" MIL"+mensaje;
}
else{
if(con==3){
if(n==1&&n2>0){
mensaje=mensaje+" CIENTO";
}
else{
if(n>1){
mensaje=mensaje+" "+centenas[n];
}else{
if(n!=0)
mensaje=mensaje+" CIEN";
else
mensaje=mensaje+"";
}
}
}
else{
if(con==2){
if(n2<10){
mensaje=mensaje+" "+naturales[n2];
break;
}
else{
if(n2>10&&n2<16){
mensaje=mensaje+" "+diez[n2%10];
break;
}
else{
if(n2>15&&n2<20){
mensaje=mensaje+" "+"DIECI";
}
if(n2>20&&n2<30){
mensaje=mensaje+" "+"VEINTI";
}
}
if(n2%10==0){
mensaje=mensaje+" "+decenas[n];
break;
}
else{
if(n2>30)
mensaje=mensaje+" "+decenas[n];
}
}
}
else{
if(n2>30)
mensaje=mensaje+" Y "+naturales[n];
else
mensaje=mensaje+naturales[n];
}
}
}
con--;
}
System.out.println("El numero se lee: "+mensaje);
}
}
2. Realice un algoritmo para convertir unidades de medida.
SOLUCIÓN:
import java.util.*;
public class Manejador2 {
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
String[][] matriz={
{"GIGA","MEGA","1000"},
{"MEGA","KILO","1000"},
{"KILO","HECT","10"},
{"HECT","DECA","10"},
{"DECA","****","10"},
{"****","DECI","10"},
{"DECI","CENT","10"},
{"CENT","MILI","10"},
{"MILI","MICR","1000"},
{"MICR","NANO","1000"},
};
String Ubase, Usalida,UE="",US = "", C1,C2, E, S;
int n, con=0;
double resultado=1, canti = 0;
System.out.println("Ingrese la cantidad a convertir:");
n=teclado.nextInt();
System.out.println("Ingrese la base: ");
Ubase=teclado.next();
System.out.println("Ingrese la salida: ");
Usalida=teclado.next();
E=Ubase.substring(0,4);
S=Usalida.substring(0,4);
if(E.equals("METR")||E.equals("GRAM")||E.equals("LITR")){
E="****";
}
if(S.equals("METR")||S.equals("GRAM")||S.equals("LITR")){
S="****";
}
C1=E; C2=S;
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[0].length; j++) {
if(matriz[i][0].equals(E)){
UE=matriz[i][0];
US=matriz[i][1];
canti=Double.parseDouble(matriz[i][2]);
con++;
break;
}
else{
break;
}
}
if(US.equals(S)){
resultado=resultado*canti;
break;
}
else{
if(con>0){
resultado=resultado*canti;
E=US;
con=0;
}
}
}
if(!US.equals(S)||UE.length()<=0){
resultado=1;
for (int i = matriz.length-1; i >=0; i--) {
for (int j = 0; j < matriz[0].length; j++) {
if(matriz[i][1].equals(C1)){
UE=matriz[i][1];
US=matriz[i][0];
canti=Double.parseDouble(matriz[i][2]);
con++;
break;
}
else{
break;
}
}
if(US.equals(C2)){
resultado=resultado/canti;
break;
}
else{
if(con>0){
resultado=resultado/canti;
C1=US;
con=0;
}
}
}
}
if(US.equals(C2))
System.out.println("\nEl resultado es: "+resultado*n+" "+Usalida);
else
System.out.println("\nNo se puede realizar la conversion");
}
}
ee
ResponderEliminar