lunes, 11 de noviembre de 2013

MANEJO DE VECTORES EN JAVA




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");
    }
}

1 comentario: