Javadesarrollado 150406000826-conversion-gate01

35
1. Construir una aplicación en el que el usuario proporcione una cantidad entera y la aplicación indique através de un mensaje la cantidad si es positiva o negativa, par o impar: o en su defecto si es neutra. import java.util.Scanner; public class EVALUARNUMERO { public static void main(String[] args) { Scanner teclado=new Scanner(System.in); int numero; EVALUARNUMERO N=new EVALUARNUMERO(); System.out.println("Ingrese el numero: "); numero=teclado.nextInt(); System.out.println("\nEL NUMERO INGRESADO ES: "); N.NumeroImpar(numero); N.NumeroNegativo(numero); N.NumeroNeutro(numero); N.NumeroPar(numero); N.NumeroPositivo(numero); } public void NumeroPar(int numero){ if(numero%2==0){ System.out.println("Numero Par"); } } public void NumeroImpar(int numero){ if(numero%2!=0){ System.out.println("Numero Impar"); } } public void NumeroNegativo(int numero){ if(numero<0){ System.out.println("Numero Negativo"); } } public void NumeroPositivo(int numero){ if(numero>0){ System.out.println("Numero Positivo"); }

Transcript of Javadesarrollado 150406000826-conversion-gate01

Page 1: Javadesarrollado 150406000826-conversion-gate01

1. Construir una aplicación en el que el usuario proporcione una cantidad entera y la aplicación indique através de un mensaje la cantidad si es positiva o negativa, par o impar: o en su defecto si es neutra. 

import java.util.Scanner;public class EVALUARNUMERO {    public static void main(String[] args) {              Scanner teclado=new Scanner(System.in);        int numero;        EVALUARNUMERO N=new EVALUARNUMERO();

        System.out.println("Ingrese el numero: ");        numero=teclado.nextInt();               System.out.println("\nEL NUMERO INGRESADO ES: ");

        N.NumeroImpar(numero);        N.NumeroNegativo(numero);        N.NumeroNeutro(numero);        N.NumeroPar(numero);        N.NumeroPositivo(numero);    }       public void NumeroPar(int numero){        if(numero%2==0){            System.out.println("Numero Par");        }    }    public void NumeroImpar(int numero){        if(numero%2!=0){            System.out.println("Numero Impar");        }    }    public void NumeroNegativo(int numero){        if(numero<0){            System.out.println("Numero Negativo");        }    }    public void NumeroPositivo(int numero){        if(numero>0){            System.out.println("Numero Positivo");        }    }    public void NumeroNeutro(int numero){

Page 2: Javadesarrollado 150406000826-conversion-gate01

        if(numero==0){            System.out.println("Numero Neutro");        }    }

}

EJERCICIOS RESUELTOS

1.       Ingrese  un  número  entero  y  encuentre  el  dígito  mayor  y  el  dígito menor.

SOLUCIÓN:

import java.util.Scanner;public class MAYORMENOR { public static void main(String[] args) { Scanner b=new Scanner(System.in);

int n, mayor=0, menor=10, digito; System.out.println("Ingrese el numero a evaluar: "); n=b.nextInt();

while(n>0){ digito=n%10; n=n/10; if(digito>=mayor){ mayor=digito; } if(digito<menor){ menor=digito; } } System.out.println("El digito mayor es: "+mayor); System.out.println("El digito menor es: "+menor); }}

2.  En una tienda se ha establecido la siguiente oferta: por compras menores a 50 soles se hace un descuento de 8%, pero para compras a partir de 50 

Page 3: Javadesarrollado 150406000826-conversion-gate01

el  descuento  es  de  10%.  Se  pide   ingresar   la   cantidad y  el  precio  del producto que se compra y determinar cuanto se descontará y cuanto se cobrará.

SOLUCIÓN:

import java.util.Scanner;public class EJERCICIO3 { public static void main(String[] args) { Scanner consola=new Scanner(System.in);

double cantidad, precio,pago, descuento; System.out.println("ingresar cantidad: "); cantidad=consola.nextInt(); System.out.println("ingrese el precio: "); precio=consola.nextInt();

pago=cantidad*precio; if(pago<50){ descuento=pago*0.08; pago=pago-descuento; System.out.println("el descuento es: "+descuento+" , el pago a realizar es:

"+pago); } else{ descuento=pago*0.1; pago=pago-descuento; System.out.println("el descuento es: "+descuento+" , el pago a realizar

es: "+pago); } }

}

EJERCICIOS RESUELTOS

1.     Diseñe un algoritmo para un cajero automático. El cajero tiene la particularidad de dar solamente billetes de 500, 200, 100, 50, y 20. Si

Page 4: Javadesarrollado 150406000826-conversion-gate01

el usuario ingresa una cantidad menor a 1500 que desea retirar, debe arrojarle la cantidad mínima de billetes de cada tipo.NOTA: No debe dar billetes de 10 soles, POR EJEMPLO, si se le ingresa un monto de 510, debe arrojarme:Billetes de 200: 2Billetes de 50: 1Billetes de 20: 3

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class CAJERO2 {    public static void main(String[] args) throws IOException{        BufferedReader consola = new BufferedReader(new InputStreamReader(System.in));

        int monto, i, b1 = 0, b2=0, b3=0, b4=0, b5=0, b500, b200, b100, b50, b20;        do{        System.out.println("Ingrese un monto MENO O IGUAL a 1500: ");        monto=Integer.parseInt(consola.readLine());        }while((monto<=30||monto>1500)||monto%10!=0);

        while(monto>=20){        if(monto>=500&&(monto!=510&&monto!=530)){            if(monto>1000){                b1+=(int)monto/500;                monto=monto-b1*500;            }            else{                if(monto%500!=30&&monto%500!=10){                b1+=(int)monto/500;                monto=monto-b1*500;                }            }        }         if(monto>=200&&(monto%200>=10||monto%200==0)){             if(monto>410){                b2+=(int)monto/200;                monto=monto-b2*200;            }             else{                if(monto%200!=30&&monto%200!=10){                b2+=(int)monto/200;                monto=monto-b2*200;

Page 5: Javadesarrollado 150406000826-conversion-gate01

                }             }         }         if(monto>=100&&(monto%100>=10||monto%100==0)){             if(monto>110){                b3++;                monto=monto-100;            }             else{                 if(monto%100!=30&&monto%100!=10){                    b100=(int)monto/100;                    b3=b3+b100;                    monto=monto-b100*100;                 }             }         }

         if(monto>=50&&(monto%50>=10||monto%50==0)){             if(monto>100){                b4++;                monto=monto-50;            }             else{                 if(monto%50!=30&&monto%50!=10){                        b50=(int)monto/50;                        b4=b4+b50;                        monto=monto-b50*50;                 }             }         }         if(monto>=20){             b20=(int)monto/20;                        b5=b5+b20;                        monto=monto-b20*20;         }        }

        if(b1>0){            System.out.println("Billetes de 500: "+b1);        }        if(b2>0){            System.out.println("Billetes de 200: "+b2);        }        if(b3>0){            System.out.println("Billetes de 100: "+b3);        }

Page 6: Javadesarrollado 150406000826-conversion-gate01

        if(b4>0){            System.out.println("Billetes de 50: "+b4);        }        if(b5>0){            System.out.println("Billetes de 20: "+b5);        }    }}

2.       Ingrese un número BINARIO (número compuesto por ceros y unos), y muestre su equivalente. Pr ejemplo, si ingreso 101101, debe mostrarme 45 como su equivalente.

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class EnteroBinario {    public static void main(String[] args) throws IOException{        BufferedReader consola=new BufferedReader(new InputStreamReader(System.in));        int i, j, k=0, equivalente=0, numero, b=0;        boolean m = false;        String N;

        do{            System.out.println("Ingrese el numero entero binario: ");            numero=Integer.parseInt(consola.readLine());

            N=Integer.toString(numero);            for(i=0;i<N.length();i++){                if(N.charAt(i)=='0'||N.charAt(i)=='1'){                    m=true;                    b++;                }            }        }while(b<N.length());               j=numero;        while(numero>0){            numero=(int)numero/10;            k++;        }        for(i=0;i<k;i++){

Page 7: Javadesarrollado 150406000826-conversion-gate01

             equivalente+=(j%10)*Math.pow(2,i);             j=(int)j/10;        }             System.out.println("El equivalente del numero ingresado es: "+equivalente);          }}

3.     Un número se considera perfecto cuando la suma de sus divisores es igual al número, por ejemplo 28, tiene  como divisores a 1, 2, 4, 7 y 14. Luego 28 es número perfecto, pues 1+2+4+7+14=28. Hacer un algoritmo para determinar si un número ingresado por teclado es perfecto.

SOLUCIÓN:

import java.util.Scanner;public class perfecto {

    public static void main(String[] args) {        Scanner b=new Scanner(System.in);

        int n, suma=1,i=2;        System.out.println("Ingrese el numero: ");        n=b.nextInt();        while(i<n){            if(n%i==0){                suma=suma+i;            }            i++;        }        if(suma==n){            System.out.println("El numero es perfecto");        }        else{            System.out.println("el numero no es perfecto");        }    }}

4.     La tribuna de un estadio esta numerada del 1 al 500 en la parte superior horizontal que corresponde al número de asiento por columna; y del 1 al 50 en la parte izquierda vertical que corresponde al número de asiento por fila. Los boletos tienen una numeración correlativa del 1 al 25000. Para cualquier número de boleto

Page 8: Javadesarrollado 150406000826-conversion-gate01

determinar el número de fila y el número de columna que le correspondería a la ubicación de su asiento.

SOLUCIÓN:

import java.util.Scanner;public class Asientoestadio {

    public static void main(String[] args) {        Scanner teclado=new Scanner(System.in);

        int asiento, fila=0, columna=0;        System.out.println("Ingrese el numero de asiento: ");        asiento=teclado.nextInt();

        while(asiento>500){            fila++;            asiento=asiento-500;        }        fila++;        columna=asiento;        System.out.println("El asiento corresponde a la fila: "+fila+" y a la columna: "+columna);    }}

5.     Diseñe un algoritmo que convierte un número en base 10, a otro número en base menor que 10. El número  en base 10 y la base a la que se va a convertir se deben ingresar por teclado.

SOLUCIÓN:

import java.util.Scanner;public class ConvierteNumeroAbaseMenora10 {      public static void main(String[] args) {        Scanner teclado=new Scanner(System.in);        int base, numero,div=0,i=1;

        System.out.println("Ingrese el numero en base 10: ");        numero=teclado.nextInt();        do{        System.out.println("Ingrese la base menor a 10 : ");        base=teclado.nextInt();        }while(base<=1||base>=10);

        while(numero>=base){

Page 9: Javadesarrollado 150406000826-conversion-gate01

            div=div+(numero%base)*i;            numero=(int)(numero/base);            i=i*10;        }        div=div+(numero*i);        System.out.println("el numero en base "+base+" es: "+div);    }

}

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

Page 10: Javadesarrollado 150406000826-conversion-gate01

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){

Page 11: Javadesarrollado 150406000826-conversion-gate01

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"},

Page 12: Javadesarrollado 150406000826-conversion-gate01

            {"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;

Page 13: Javadesarrollado 150406000826-conversion-gate01

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

EJERCICIOS RESUELTOS

Page 14: Javadesarrollado 150406000826-conversion-gate01

1.  Leer una frase y encontrar la palabra de mayor longitud. El programa debe imprimir la palabra como el número de caracteres de la misma

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Ejerc12 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i, c=0; String cadena, palabra="", mostrar = null;

System.out.println("Ingrese la cadena: "); cadena=br.readLine(); cadena+=" ";

for(i=0;i<cadena.length();i++){ palabra=palabra+cadena.charAt(i); if(cadena.charAt(i)==' '){ if(palabra.length()-1>c){ c=palabra.length()-1; mostrar=palabra.trim(); } palabra=""; } } System.out.println("La palabra de mayor longitud es: "+mostrar); System.out.println("Su longitud es: "+c); }}

2.   Ingresar una cadena y determinar cuantas palabras se encuentran en  la cadena.  Cada palabra se separa por medio de un espacio en blanco.

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc11 {

Page 15: Javadesarrollado 150406000826-conversion-gate01

public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i, con=1; String cadena, palabra="";

System.out.println("Ingrese la cadena a evaluar: "); cadena=br.readLine(); for(i=0;i<cadena.length();i++){ if(cadena.charAt(i)==' '){ con++; } } System.out.println("La cadena contiene "+con+" palabras"); }

}

3.    Ingresar un número telefónico en formato de cadena y luego lo convierta de la siguiente manera:

            Número Telefónico: 5256284000            Nueva Cadena: (52)-5-6284000

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc15 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i; String cadena,c1="", c2="", c3=""; System.out.println("Ingrese la cadena a evaluar: "); cadena=br.readLine();

for(i=0;i<cadena.length();i++){ if(i<2){ c1=c1+cadena.charAt(i); } else{ if(i==2){

Page 16: Javadesarrollado 150406000826-conversion-gate01

c2+=cadena.charAt(i); } else{ c3+=cadena.charAt(i); } } } System.out.println("la nueva cadena es: \n"+"("+c1+")"+"-"+c2+"-"+c3); }}

4.    Hacer un programa que al recibir como datos dos cadenas de caracteres forme una tercera cadena intercalando los caracteres de las palabras de las cadenas recibidas.

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc16 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i, j, k=0; String cadena1, cadena2, cadena3="";

System.out.println("Ingrese la primera cadena: "); cadena1=br.readLine(); System.out.println("Ingrese la segudna cadena: "); cadena2=br.readLine(); for(i=0;i<cadena1.length();i++){ cadena3+=cadena1.charAt(i); for(j=k;j<cadena2.length();j++){ cadena3+=cadena2.charAt(j); j=cadena2.length(); k++; } } System.out.println("La cadena intercalada es: "+cadena3); }

Page 17: Javadesarrollado 150406000826-conversion-gate01

}

5.       Ingrese un texto e indique que letras no han aparecido en el texto.

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc20 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int ini, con=0; String texto, nueva="", mensaje="";

System.out.println("Ingrese el texto a evaluar: "); texto=br.readLine();

for(ini=0;ini<texto.length();ini++){ if(texto.charAt(ini)!=' '){ nueva=nueva+texto.charAt(ini); } } nueva=nueva.toLowerCase(); for(char caracter='a';caracter<='z';caracter++){ for(ini=0;ini<nueva.length();ini++){ if(caracter==nueva.charAt(ini)){ con++; } } if(con==0){ mensaje+=caracter+" "; } con=0; } System.out.println("\nLos caracteres que faltan son: \n"+mensaje); }}

6.  Ingrese un texto e indique el porcentaje de palabras que tiene menos de 5 

caracteres  y el porcentaje de palabras con 5 o más caracteres.

Page 18: Javadesarrollado 150406000826-conversion-gate01

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc21 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i; double porcentaje1, porcentaje2, con=0, p5=0, p6=0; String texto, palabra="";

System.out.println("Ingrese el texto a evaluar: "); texto=br.readLine(); texto=texto+" "; for(i=0;i<texto.length();i++){ palabra+=texto.charAt(i); if(texto.charAt(i)==' '){ palabra=palabra.trim(); if(palabra.length()<5){ p5++; } else{ p6++; } palabra=""; con++; } } porcentaje1=(double)((p5/con)*100); porcentaje2=(double)((p6/con)*100); System.out.println("El porcentaje de palabras con menos de 5 caracteres es:

"+porcentaje1+" %"); System.out.println("El porcentaje de palabras con 5 o mas caracteres es:

"+porcentaje2+" %"); }}

Page 19: Javadesarrollado 150406000826-conversion-gate01

7.    Escriba  un  programa que  lea  una  frase  y  a  continuación visualice  cada palabra de la frase en columnas,   seguida del número de letras que tiene cada palabra.

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc23 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i, j; String frase, palabra="", nueva=""; System.out.println("Ingrese la frase a evaluar: "); frase=br.readLine(); frase+=" ";

for(i=0;i<frase.length();i++){ palabra+=frase.charAt(i); if(frase.charAt(i)==' '){ palabra=palabra.trim(); nueva=palabra; for(j=0;j<nueva.length();j++){ System.out.println("\t"+nueva.charAt(j)); } System.out.println("\t"+nueva.length()+"\n\n"); palabra=""; } } }}

8.  Escriba un programa que calcule la frecuencia de aparición de las vocales de un texto porcionado por  el  usuario.  Esta  solución se  debe presentar  en forma de histograma, por ejmplo:

             a   15     ***************             e    8     ********

SOLUCIÓN:

import java.io.BufferedReader;

Page 20: Javadesarrollado 150406000826-conversion-gate01

import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc24 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i, c1=0, c2=0,c3=0, c4=0, c5=0; String texto, m1="", m2="", m3="", m4="", m5="";

System.out.println("Ingrese el texto a evaluar: "); texto=br.readLine(); texto=texto.toLowerCase(); for(i=0;i<texto.length();i++){ if(texto.charAt(i)=='a'){ c1++; m1+="*"; } if(texto.charAt(i)=='e'){ c2++; m2+="*"; } if(texto.charAt(i)=='i'){ c3++; m3+="*"; } if(texto.charAt(i)=='o'){ c4++; m4+="*"; } if(texto.charAt(i)=='u'){ c5++; m5+="*"; } } System.out.println(""); System.out.println("a"+" "+c1+" "+m1); System.out.println("e"+" "+c2+" "+m2); System.out.println("i"+" "+c3+" "+m3); System.out.println("o"+" "+c4+" "+m4); System.out.println("u"+" "+c5+" "+m5); }}

Page 21: Javadesarrollado 150406000826-conversion-gate01

9.   Escribir un programa que cuente el número de palabras en un texto, que tengan al menos cuatro vocales diferentes. 

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejerc25 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

int i, con=0, c1=0, c2=0, c3=0, c4=0, c5=0, vocales; String texto, palabra="";

System.out.println("Ingrese la palabra a evaluar: "); texto=br.readLine(); texto=texto.toLowerCase(); texto+=" "; for(i=0;i<texto.length();i++){ palabra+=texto.charAt(i); if(texto.charAt(i)==' '){ palabra=palabra.trim(); for(int j=0;j<palabra.length();j++){ if(palabra.charAt(j)=='a'){ c1++; if(c1>1){ c1=1; } } if(palabra.charAt(j)=='e'){ c2++; if(c2>1){ c2=1; } } if(palabra.charAt(j)=='i'){ c3++; if(c3>1){ c3=1; } }

Page 22: Javadesarrollado 150406000826-conversion-gate01

if(palabra.charAt(j)=='o'){ c4++; if(c4>1){ c4=1; } } if(palabra.charAt(j)=='u'){ c5++; if(c5>1){ c5=1; } } } palabra=""; vocales=c1+c2+c3+c4+c5; c1=0; c2=0; c3=0; c4=0; c5=0; if(vocales>=4){ con++; } } } System.out.println("Las palabras son: "+con); }}

10. Un grupo de inteligencia militar desea codificar los mensajes secretos de tal forma que no puedan ser interpretados con una lectura directa, para lo cual   han   establecido   las   siguientes   reglas:          a)   Todo   mensaje   debe   estar   sus   letras   en mayúsculas.    b) Reemplazar cada letra por la que sigue según abecedario, excepto Z que   se deberá reemplazar   con   la   letra   A.    c) reemplazar cada dígito encontrado por el siguiente numero excepto el 9 que  deberá ser reemplazado por el 0.

SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class mensajemilitar { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

Page 23: Javadesarrollado 150406000826-conversion-gate01

String mensaje, cod1="",cod2="", caracter; String ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String numeros="0123456789";

System.out.println("Ingrese el mensaje: "); mensaje=br.readLine(); System.out.println(""+mensaje); mensaje=mensaje.toUpperCase(); for (int i = 0; i < mensaje.length(); i++) { caracter=mensaje.substring(i, i+1); if(caracter.equals(" ")){ cod1=cod1+caracter; } else{ for (int j = 0; j < ABC.length(); j++) { if(caracter.equals(ABC.substring(j,j+1))){ if(caracter.equals("Z")){ cod1=cod1+"A"; break; } else{ cod1=cod1+ABC.substring(j+1,j+2); break; } } } for (int k = 0; k <numeros.length(); k++) { if(caracter.equals(numeros.substring(k,k+1))){ if(caracter.equals("9")){ cod1=cod1+"0"; break; } else{ cod1=cod1+numeros.substring(k+1,k+2); break; } } } } } System.out.println("\nMENSAJE INGRESADO: "+mensaje); System.out.println("CODIGO RESULTANTE "+cod1);

Page 24: Javadesarrollado 150406000826-conversion-gate01

}

}

1.    Escriba una función recursiva que imprima en forma invertida los dígitos de un número entero.

      SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejer1 {

    public static void invertir(int num){        System.out.print(num%10);        if(num/10!=0){             invertir(num/10);         }     }

    public static void main(String[] args) throws IOException{        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));        int n;        System.out.println("Ingrese el numero a evaluar: ");        n=Integer.parseInt(br.readLine());

        System.out.print("El numero invertido es: ");        invertir(n);        System.out.println();    }}

2.    Escriba una función recursiva que invierta una cadena de caracteres.           SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;

Page 25: Javadesarrollado 150406000826-conversion-gate01

import java.io.InputStreamReader;

public class Ejer4 {    public static String invertir(String cad, int tama){        String c2="";                if(tama==0){            c2+=cad.charAt(tama);            return c2;        }        else{            c2=cad.charAt(tama)+invertir(cad, tama-1);            return c2;        }           }

    public static void main(String[] args) throws IOException{        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));        int tamaño;        String cadena;        System.out.println("Ingrese la cadena a evaluar: ");        cadena=br.readLine();        tamaño=cadena.length()-1;

        System.out.println("La nueva cadena es: "+invertir(cadena, tamaño));           }}

3.   Diseñe una función recursiva exponente tal que dada la base y el exponente como números enteros devuelva su resultado. Validar que la base será mayor que cero y el exponente mayor o igual que cero.

      SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejer5 {    public static int exponente(int base, int exp){        if(exp==0){            return 1;        }        else{

Page 26: Javadesarrollado 150406000826-conversion-gate01

            return base*exponente(base,exp-1);        }    }

    public static void main(String[] args) throws IOException{        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        int n, b;        do{            System.out.println("Ingrese el numero: ");            n=Integer.parseInt(br.readLine());        }while(n<=0);

        do{            System.out.println("Ingrese la base: ");            b=Integer.parseInt(br.readLine());        }while(b<0);        System.out.println("El resultado es: "+exponente(n, b));    }}

4.  Programar un algoritmo recursivo que permita sumar los elementos de un vector.            SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejer6 {    public static int vector(int A[], int num){               if(num==0){           return A[num];        }        else{            return A[num]+vector(A,num-1);        }           }

    public static void main(String[] args) throws IOException{

        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

Page 27: Javadesarrollado 150406000826-conversion-gate01

        int V[], n;        System.out.println("Ingrese el tamaño: ");        n=Integer.parseInt(br.readLine());        V=new int[n];               for(int i=0;i<n;i++){            System.out.println("V ["+i+"] = ");            V[i]=Integer.parseInt(br.readLine());        }         System.out.println("La suma de los elementos es: "+vector(V,n-1));    }}

5.   Escribir una función recursiva que tenga un argumento de tipo entero y que devuelva la letra P si el número es positivo y la letra N si el número es cero o negativo.

      SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejer8 {

    public static char valor(int numero){        if(numero<=0){            return 'N';        }        else{            return 'P';        }    }

    public static void main(String[] args) throws IOException{        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        int n;        char v;        System.out.println("Igrese el numero: ");        n=Integer.parseInt(br.readLine());

        v=valor(n);

Page 28: Javadesarrollado 150406000826-conversion-gate01

        if(v=='P'){            System.out.println("El numero es positivo");        }        else{            System.out.println("El numero es negativo");        }    }}

6.  Escriba una función recursiva que sume los (n) primeros números enteros positivos.

     SOLUCIÓN:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;

public class Ejer3 {    public static int sumar(int a){        if(a>0){            return a+sumar(a-1);        }        else{            return 0;        }    }

    public static void main(String[] args) throws IOException{        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        int n;        System.out.println("INgrese la cantidad de numeros a sumar: ");        n=Integer.parseInt(br.readLine());        System.out.println("La suma es: "+sumar(n));    }}

7.    Escriba una función recursiva muestre la SERIE DE FIBONACCI, ingresando el número de términos.

     SOLUCIÓN:

Page 29: Javadesarrollado 150406000826-conversion-gate01

import java.util.Scanner;

public class Ejer9 {    public static int fibonaci(int numero){        if(numero==0||numero==1){            return 1;        }        else{            return fibonaci(numero-1)+fibonaci(numero-2);        }    }

    public static void main(String[] args) {        Scanner b=new Scanner(System.in);

        int n, i;        System.out.println("Ingrese la cantidad de terminos: ");        n=b.nextInt();        for(i=0;i<n;i++){            System.out.print(fibonaci(i)+" ");        }        System.out.println("");           }}