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. 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
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 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","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 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()+"nn");
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;
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 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));
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

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
Jesica Pérez
 
05 sentencias basicas
05 sentencias basicas05 sentencias basicas
05 sentencias basicas
Carlos
 
Ejercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesEjercicios en netbeans con condiciones
Ejercicios en netbeans con condiciones
Joshe Varillas
 
Ejercicios de estructura secuencial
Ejercicios de estructura secuencialEjercicios de estructura secuencial
Ejercicios de estructura secuencial
yulieth licona
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Kiim Kerrigan
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do While
Joshe Varillas
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
diegocastro1234
 

La actualidad más candente (19)

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
 
05 sentencias basicas
05 sentencias basicas05 sentencias basicas
05 sentencias basicas
 
Ejercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesEjercicios en netbeans con condiciones
Ejercicios en netbeans con condiciones
 
Manual de prácticas java 2015
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015
 
Ejercicios de estructura secuencial
Ejercicios de estructura secuencialEjercicios de estructura secuencial
Ejercicios de estructura secuencial
 
Universidad politécnica de tecámac
Universidad politécnica de tecámacUniversidad politécnica de tecámac
Universidad politécnica de tecámac
 
Ejercicios de consola en c++
Ejercicios de consola en c++Ejercicios de consola en c++
Ejercicios de consola en c++
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
 
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
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do While
 
Ejercicios java
Ejercicios javaEjercicios java
Ejercicios java
 
Ejercicios python
Ejercicios pythonEjercicios python
Ejercicios python
 
Ejercicio en c
Ejercicio en cEjercicio en c
Ejercicio en c
 
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)
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
Algoritmos para c#
Algoritmos para c#Algoritmos para c#
Algoritmos para c#
 

Similar a JAVAX (20)

Javadesarrollado 150406000826-conversion-gate01
Javadesarrollado 150406000826-conversion-gate01Javadesarrollado 150406000826-conversion-gate01
Javadesarrollado 150406000826-conversion-gate01
 
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
 
Tarea algoritmos
Tarea algoritmosTarea algoritmos
Tarea algoritmos
 
Practica 10
Practica 10Practica 10
Practica 10
 
12
1212
12
 
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
 

Último

plan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOS
plan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOSplan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOS
plan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOS
sharmelysullcahuaman
 
(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)
(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)
(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)
UDMAFyC SECTOR ZARAGOZA II
 
Diabetes tipo 2 expo guias ada 2024 apuntes y materal
Diabetes tipo 2 expo guias ada 2024 apuntes y materalDiabetes tipo 2 expo guias ada 2024 apuntes y materal
Diabetes tipo 2 expo guias ada 2024 apuntes y materal
f5j9m2q586
 
Clase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdf
Clase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdfClase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdf
Clase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdf
garrotamara01
 
Clase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdf
Clase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdfClase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdf
Clase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdf
garrotamara01
 

Último (20)

Cuadro comparativo de las enfermedades exantematicas 2022.docx
Cuadro comparativo de las enfermedades exantematicas 2022.docxCuadro comparativo de las enfermedades exantematicas 2022.docx
Cuadro comparativo de las enfermedades exantematicas 2022.docx
 
HIPOCALCEMIA NEONATAL EN PEDIATRIA .pptx
HIPOCALCEMIA NEONATAL EN PEDIATRIA .pptxHIPOCALCEMIA NEONATAL EN PEDIATRIA .pptx
HIPOCALCEMIA NEONATAL EN PEDIATRIA .pptx
 
Infarto agudo al miocardio magisterio completa.pptx
Infarto agudo al miocardio magisterio completa.pptxInfarto agudo al miocardio magisterio completa.pptx
Infarto agudo al miocardio magisterio completa.pptx
 
Contaminación del agua en la ciudad de Arequipa.pdf
Contaminación del agua en la ciudad de Arequipa.pdfContaminación del agua en la ciudad de Arequipa.pdf
Contaminación del agua en la ciudad de Arequipa.pdf
 
plan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOS
plan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOSplan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOS
plan de gestion DE LA UNIDAD DE CUIDADOS INTENSIVOS
 
(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)
(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)
(2024-05-06)Sesion Anticoncepción desde atencion primaria (DOC)
 
Diabetes tipo 2 expo guias ada 2024 apuntes y materal
Diabetes tipo 2 expo guias ada 2024 apuntes y materalDiabetes tipo 2 expo guias ada 2024 apuntes y materal
Diabetes tipo 2 expo guias ada 2024 apuntes y materal
 
ENFERMEDADES CEREBROVASCULARES (1).pdfseminario
ENFERMEDADES CEREBROVASCULARES (1).pdfseminarioENFERMEDADES CEREBROVASCULARES (1).pdfseminario
ENFERMEDADES CEREBROVASCULARES (1).pdfseminario
 
Benzodiazepinas en anestesiologia generalidades.pptx
Benzodiazepinas en anestesiologia generalidades.pptxBenzodiazepinas en anestesiologia generalidades.pptx
Benzodiazepinas en anestesiologia generalidades.pptx
 
Generalidades de fisiología del equilibrio-Medicina.pptx
Generalidades de fisiología del equilibrio-Medicina.pptxGeneralidades de fisiología del equilibrio-Medicina.pptx
Generalidades de fisiología del equilibrio-Medicina.pptx
 
666105651-Farmacologia-Rios-2-Editorial-Sketch-Med-2024.pdf
666105651-Farmacologia-Rios-2-Editorial-Sketch-Med-2024.pdf666105651-Farmacologia-Rios-2-Editorial-Sketch-Med-2024.pdf
666105651-Farmacologia-Rios-2-Editorial-Sketch-Med-2024.pdf
 
Clase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdf
Clase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdfClase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdf
Clase 17 Artrologia MMII 3 de 3 (Pie) 2024 (1).pdf
 
musculos cara. Miologia de cabeza y cuello
musculos cara. Miologia de cabeza y cuellomusculos cara. Miologia de cabeza y cuello
musculos cara. Miologia de cabeza y cuello
 
Distensibilidad Vascular y funciones de los sist arterial.pptx
Distensibilidad Vascular y funciones de los sist arterial.pptxDistensibilidad Vascular y funciones de los sist arterial.pptx
Distensibilidad Vascular y funciones de los sist arterial.pptx
 
317543696-CUMARINA-EXPOSICION-ORGANICA4.pptx
317543696-CUMARINA-EXPOSICION-ORGANICA4.pptx317543696-CUMARINA-EXPOSICION-ORGANICA4.pptx
317543696-CUMARINA-EXPOSICION-ORGANICA4.pptx
 
Anatomia y fisiologia del pancreas medicina
Anatomia y fisiologia del pancreas medicinaAnatomia y fisiologia del pancreas medicina
Anatomia y fisiologia del pancreas medicina
 
ANATOMÍA DE PERINÉ ..................pdf
ANATOMÍA DE PERINÉ ..................pdfANATOMÍA DE PERINÉ ..................pdf
ANATOMÍA DE PERINÉ ..................pdf
 
Clase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdf
Clase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdfClase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdf
Clase 16 Artrologia mmii 2 de 3 (Rodilla y Tobillo) 2024.pdf
 
MÚSCULOS DEL CUELLO DESCRIPCIÓN ORIGEN INSERCIÓN E INERVACION
MÚSCULOS DEL CUELLO DESCRIPCIÓN ORIGEN INSERCIÓN E INERVACIONMÚSCULOS DEL CUELLO DESCRIPCIÓN ORIGEN INSERCIÓN E INERVACION
MÚSCULOS DEL CUELLO DESCRIPCIÓN ORIGEN INSERCIÓN E INERVACION
 
NORMATIVIDAD VE DE EDA-IRA EN EL PERU.pptx
NORMATIVIDAD VE DE EDA-IRA EN EL PERU.pptxNORMATIVIDAD VE DE EDA-IRA EN EL PERU.pptx
NORMATIVIDAD VE DE EDA-IRA EN EL PERU.pptx
 

JAVAX

  • 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. 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 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 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","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 en columnas, seguida del número de 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 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; 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 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)); 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(""); } }