SlideShare una empresa de Scribd logo
1 de 29
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){
if(numero==0){
System.out.println("Numero Neutro");
}
}
}
EJERCICIOS RESUELTOS
1. Ingreseunnúmeroenteroyencuentreeldígitomayor y el dígitomenor.
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 tiendase ha establecidolasiguiente oferta:por compras menores
a 50 soles se hace un descuentode 8%, pero para compras a partir de 50
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
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: 2
Billetes de 50: 1
Billetes 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;
}
}
}
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);
}
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++){
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 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){
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 menoro 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","QUINI
ENTOS","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");
}
}
EJERCICIOS RESUELTOS
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 {
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){
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);
}
}
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.
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+" %");
}
}
7. Escriba un programa que lea una frase y a continuación visualice cada
palabra de la frase encolumnas, seguidadel númerode 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()+"nn");
palabra="";
}
}
}
}
8. Escriba un programa que calcule la frecuencia de aparición de las vocales de
un texto porcionadoporel usuario. Esta solución se debe presentar en forma
de histograma, por ejmplo:
a 15 ***************
e 8 ********
SOLUCIÓN:
import java.io.BufferedReader;
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);
}
}
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;
}
}
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 codificarlos 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));
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);
}
}
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;
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{
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));
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);
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:
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("");
}
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Ejercicios con Python parte 3
Ejercicios con Python parte 3Ejercicios con Python parte 3
Ejercicios con Python parte 3
 
Ejercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesEjercicios en netbeans con condiciones
Ejercicios en netbeans con condiciones
 
Ejercicios Python Parte 2
Ejercicios Python Parte 2Ejercicios Python Parte 2
Ejercicios Python Parte 2
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Ejercidos resueltos en java para el portafolio
Ejercidos resueltos en java para el portafolioEjercidos resueltos en java para el portafolio
Ejercidos resueltos en java para el portafolio
 
Universidad politécnica de tecámac
Universidad politécnica de tecámacUniversidad politécnica de tecámac
Universidad politécnica de tecámac
 
Interpolaion c++
Interpolaion c++Interpolaion c++
Interpolaion c++
 
Ejercicios java
Ejercicios javaEjercicios java
Ejercicios java
 
Manual de prácticas java 2015
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015
 
Computo movil ejercicio clases resuelto
Computo movil ejercicio clases resueltoComputo movil ejercicio clases resuelto
Computo movil ejercicio clases resuelto
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y for
 
Apuntes scilab
Apuntes scilabApuntes scilab
Apuntes scilab
 
282722811 7-ejercicios-fase-3-c (1)
282722811 7-ejercicios-fase-3-c (1)282722811 7-ejercicios-fase-3-c (1)
282722811 7-ejercicios-fase-3-c (1)
 
Arreglos
ArreglosArreglos
Arreglos
 
Algoritmos para c#
Algoritmos para c#Algoritmos para c#
Algoritmos para c#
 
Tutorial descilab
Tutorial descilabTutorial descilab
Tutorial descilab
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Practica
PracticaPractica
Practica
 
Factura en borland c++
Factura en borland c++Factura en borland c++
Factura en borland c++
 
Ejercicio en c
Ejercicio en cEjercicio en c
Ejercicio en c
 

Similar a Javadesarrollado 150406000826-conversion-gate01 (20)

Ejercicios tema1
Ejercicios tema1Ejercicios tema1
Ejercicios tema1
 
Programa en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbujaPrograma en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbuja
 
Cecytem
CecytemCecytem
Cecytem
 
Practica 10
Practica 10Practica 10
Practica 10
 
Practica 10
Practica 10Practica 10
Practica 10
 
12
1212
12
 
Tarea algoritmos
Tarea algoritmosTarea algoritmos
Tarea algoritmos
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Dfd
DfdDfd
Dfd
 
MANUAL 6
MANUAL 6MANUAL 6
MANUAL 6
 
Diagramas de flujo
Diagramas de flujo Diagramas de flujo
Diagramas de flujo
 
Diagramas de flujo1
Diagramas de flujo1Diagramas de flujo1
Diagramas de flujo1
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Manual de DFD_3
Manual de DFD_3Manual de DFD_3
Manual de DFD_3
 
Manual de dfd
Manual de dfd Manual de dfd
Manual de dfd
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Manual de dfd
Manual de dfdManual de dfd
Manual de dfd
 
MANUAL DFD
MANUAL DFDMANUAL DFD
MANUAL DFD
 
MANUAL DE DFD
MANUAL DE DFD MANUAL DE DFD
MANUAL DE DFD
 
MANUAL DE DFD
MANUAL DE DFDMANUAL DE DFD
MANUAL DE DFD
 

Último

Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfRonaldLozano11
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)Ricardo705519
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internamengual57
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx170766
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
Sesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptxSesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptxMarcosAlvarezSalinas
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5juanjoelaytegonzales2
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfssuser202b79
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.pptjacnuevarisaralda22
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
tesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariatesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariasusafy7
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxLuisJJacinto
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 

Último (20)

Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
Sesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptxSesion 03 Formas de absorcion de agua.pptx
Sesion 03 Formas de absorcion de agua.pptx
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
tesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariatesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa maria
 
Tabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docxTabla de referentes empíricos para tesis-1.docx
Tabla de referentes empíricos para tesis-1.docx
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 

Javadesarrollado 150406000826-conversion-gate01

  • 1. 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){ if(numero==0){
  • 2. System.out.println("Numero Neutro"); } } } EJERCICIOS RESUELTOS 1. Ingreseunnúmeroenteroyencuentreeldígitomayor y el dígitomenor. 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 tiendase ha establecidolasiguiente oferta:por compras menores a 50 soles se hace un descuentode 8%, pero para compras a partir de 50 el descuento es de 10%. Se pide ingresar la cantidad y el precio del
  • 3. 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 el usuario ingresa una cantidad menor a 1500 que desea retirar, debe arrojarle la cantidad mínima de billetes de cada tipo.
  • 4. NOTA: No debe dar billetes de 10 soles, POR EJEMPLO, si se le ingresa un monto de 510, debe arrojarme: Billetes de 200: 2 Billetes de 50: 1 Billetes 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; } }
  • 6. } 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++){ equivalente+=(j%10)*Math.pow(2,i); j=(int)j/10;
  • 7. } 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 determinar el número de fila y el número de columna que le correspondería a la ubicación de su asiento.
  • 8. 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){ div=div+(numero%base)*i; numero=(int)(numero/base); i=i*10;
  • 9. } div=div+(numero*i); System.out.println("el numero en base "+base+" es: "+div); } } EJERCICIOS RESUELTOS 1. Ingrese un numero entero menoro 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","QUINI ENTOS","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));
  • 10. 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"; }
  • 11. } 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"},
  • 12. {"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; }
  • 13. } } 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 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
  • 14. 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 { public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  • 15. 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){ c2+=cadena.charAt(i); } else{
  • 16. 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); } } 5. Ingrese un texto e indique que letras no han aparecido en el texto.
  • 17. 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. SOLUCIÓN: import java.io.BufferedReader;
  • 18. 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+" %"); } } 7. Escriba un programa que lea una frase y a continuación visualice cada palabra de la frase encolumnas, seguidadel númerode letras que tiene cada palabra. SOLUCIÓN:
  • 19. 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()+"nn"); palabra=""; } } } } 8. Escriba un programa que calcule la frecuencia de aparición de las vocales de un texto porcionadoporel usuario. Esta solución se debe presentar en forma de histograma, por ejmplo: a 15 *************** e 8 ******** SOLUCIÓN: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Ejerc24 { public static void main(String[] args) throws IOException{
  • 20. 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); } } 9. Escribir un programa que cuente el número de palabras en un texto, que tengan al menos cuatro vocales diferentes. SOLUCIÓN:
  • 21. 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; } } if(palabra.charAt(j)=='o'){ c4++; if(c4>1){ c4=1; }
  • 22. } 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 codificarlos 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)); String mensaje, cod1="",cod2="", caracter; String ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String numeros="0123456789";
  • 23. 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); } }
  • 24. 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; import java.io.InputStreamReader; public class Ejer4 { public static String invertir(String cad, int tama){ String c2=""; if(tama==0){
  • 25. 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{ return base*exponente(base,exp-1); } } public static void main(String[] args) throws IOException{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  • 26. 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)); 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++){
  • 27. 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); if(v=='P'){ System.out.println("El numero es positivo"); } else{ System.out.println("El numero es negativo"); } }
  • 28. } 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: import java.util.Scanner; public class Ejer9 { public static int fibonaci(int numero){ if(numero==0||numero==1){ return 1; }
  • 29. 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(""); } }