You are on page 1of 165

PROGRAMACION ORIENTADA A OBJETOS

JAVA

PROGRAMACION ORIENTADA A OBJETOS EN JAVA


EJERCICIOS RESUELTOS: PROGRAMACIN ORIENTADA A OBJETOS (POO) EN JAVA. 1. EJERCICIOS DE REPASO DE ALGORITMOS I..3 2. EJERCICIOS DE PROGRAMACION ORIENTADA A OBJETOS ....9 3. EJERCICIOS RESUELTOS CON LOS METODOS GET Y SET EN LA POO EN JAVA....33 4. EJERCICIOS RESUELTOS DE LA CLASE CON METODOS STATIC....44 5. EJERCICIOS RESUELTOS CON LOS METODOS Get Set Y toSTring.....47 6. EJERCICIOS RESUELTOS DE CADENA DE CARACTERES........49 7.EJERCICIOS RESUELTOS CON VECTORES....52 8. EJERCICIOS RESUELTOS CON MATRICES 68 9. EJERCICIOS RESUELTOS CON LOS METODOS DE ORDENAMIENTO DE UN VECTOR86 10. EJERCICIOS RESUELTOS CON HERENCIA......97 11. EJERCICIOS RESUELTOS CON INTERFACES....102 12. COLECCIONES EN JAVA..........108 13.COLECCIONES CON ArrayList.108 14. COLECCIONES CON HahMap ..110 15. EJERCICIOS RESUELTOS DE COLECCIONES ArrayList.111 16. FORMAS DE USAR COLECCIONES ArrayList.....118 15. EJERCICIOS RESUELTOS DE COLECCIONES HashMap.125 16. FORMAS DE USAR COLECCIONES HashMap....125 17. VECTORES CON COLECCIONES......131 18. LISTAS ENLAZADAS CON COLECCIONES........133 17. EXAMENES RESUELTOS DE LA PROGRAMACION ORIENTADA A OBJETOS..Ing Fidel..............136 18. PRIMER EXAMEN PARCIAL DE ALGORITMOS Y ESTRUTURA DE DATOS IIng Roger Sanchez.143 18. SOLUCION EXAMEN PARCIAL DE ALGORITMOS Y ESTRUTURA DE DATOS I..Ing Roger Sanchez-144 19. FIN DE ESTE MANUAL ORIGINAL..........166

EJERCICIOS DE REPASO DE ALGORITMOS I

Programa 1 disear un algoritmo que me permita leer una fecha (da, mes, ao),as como un numero de das a aadir a esta fecha, la funcin calcula la nueva fecha y muestra(considerar los meses de 30 das) Solucin
import java.util.Scanner; public class examen1 { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int dia,mes,anyo,dias; System.out.println("Dia:"); dia=leer.nextInt(); System.out.println("Mes:"); mes=leer.nextInt(); System.out.println("ao:"); anyo=leer.nextInt(); System.out.println("cuantos dias desea ingresar:"); dias=leer.nextInt(); dia+=dias;//dia=dia+dias; if(dia>30){ mes=mes+dia/30; dia%=30;//dia=dia%30; } if(mes>12){ anyo=anyo+mes/12; mes%=12;//mes=mes%12; } System.out.println("la nueva fecha es:"+dia+"/"+mes+"/"+anyo); } }

Programa 2 Se dispone una lista de temperaturas de 5 ciudades. se desea calcular las temperaturas mayor y menor y a que ciudad pertenecen. Adems se pide calcular de las temperaturas. Solucin
import java.util.Scanner; public class examen2 { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int temp,Tmayor,Tmenor,Tprom,suma=0; String ciudad,Cmayor,Cmenor; System.out.println("ciudad 1:"); ciudad=leer.next(); System.out.println("temperatura 1:"); temp=leer.nextInt(); suma+=temp; Tmayor=temp; Tmenor=temp; Cmayor=ciudad; Cmenor=ciudad; System.out.println("ciudad 2:"); ciudad=leer.next();

suma+=temp; System.out.println("temperatura 2:"); temp=leer.nextInt(); if(temp>Tmayor) { Tmayor=temp; Cmayor=ciudad; } else if(temp<Tmenor){ Tmenor=temp; Cmenor=ciudad; } System.out.println("ciudad 3:"); ciudad=leer.next(); System.out.println("temperatura 3:"); temp=leer.nextInt(); suma+=temp; if(temp>Tmayor){ Tmayor=temp; Cmayor=ciudad; } else if(temp<Tmenor){ Tmenor=temp; Cmenor=ciudad; } System.out.println("ciudad 4:"); ciudad=leer.next(); suma+=temp; System.out.println("temperatura 4:"); temp=leer.nextInt(); if(temp>Tmayor){ Tmayor=temp; Cmayor=ciudad; } else if(temp<Tmenor){ Tmenor=temp; Cmenor=ciudad; } System.out.println("ciudad 5:"); ciudad=leer.next(); suma+=temp; System.out.println("temperatura 5:"); temp=leer.nextInt(); if(temp>Tmayor){ Tmayor=temp; Cmayor=ciudad; } else if(temp<Tmenor){ Tmenor=temp; Cmenor=ciudad; } Tprom=suma/5; System.out.println("temperatura mayor:"+Tmayor+" pertenece a: "+Cmayor); System.out.println("temperatura menor:"+Tmenor+" pertenece a: "+Cmenor); System.out.println("la temperatura promedio es "+Tprom); } }

Programa 3 Disear un algoritmo que permita leer un numero de 4 cifras (validar el numero ingresado) hallar la suma de los dgitos de las posiciones par y la suma de los dgitos de las posiciones impares, y mostrar un mensaje si los resultados son iguales. Ejemplo: 9357 Suma de posiciones pares=10 Suma de posiciones impares=14 No son iguales Nota 9357 u=7, d=5, c=3, um=9; Solucin
import java.util.Scanner; public class examen4 { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int numero,u,d,c,um,spp,spi; System.out.println("Numero:"); numero=leer.nextInt(); if(numero<10000 && numero>=1000){ u=numero%10; numero=numero/10; d=numero%10; numero=numero/10; c=numero%10; numero=numero/10; um=numero%10; spp=u+c; spi=d+um; System.out.println("suma de posiciones pares :"+spp); System.out.println("suma de posiciones impares :"+spi); if(spp==spi) System.out.println("son iguales"); else System.out.println("son diferentes"); } else System.out.println("el numero debe estar entre 1000 y 9999"); } }

Programa 4 Ingresar un nmero por teclado, contar sus dgitos del nmero, hallar suma de dgitos pare e impares Solucin.
import java.util.Scanner; public class Numero { public static void main(String[] args) { int n,c=0,sp=0,si=0; Scanner sc=new Scanner(System.in); System.out.print("ingresar un numero:"); n=sc.nextInt(); while(n>0){ c++; int r=n%10; if(r%2==0){

sp=sp+c; } else{ sp=si+c; n=n/10;} } System.out.println("digitos delnumero"+c); System.out.println("suma d digitos de pares"+sp); System.out.println("suma d digitos de impares"+si); } }

Programa 5 Ingresar un nmero por teclado y decir si el nmero es primo o el nmero ingresado no es primo. Solucin.
import java.util.Scanner; public class NumeroPrimo { public static void main(String[] args) { int n,i=2,c=0; Scanner sc=new Scanner(System.in); System.out.print("ingresar un numero :"); n=sc.nextInt(); while(i>0){ if(n%2==0) c++; i--; } if(c==0) System.out.println("numero es primo"); else System.out.println("el numero no es primo"); } }

Programa 6
Implementar un programa en java, ingresar un numero por teclado y decir si el un nmero es perfecto o no es prefecto Solucin
import java.util.Scanner; public class perfecto { public static void main(String[] args) { int n,i,s; Scanner br=new Scanner(System.in); do{ System.out.print("ingresar un numero :"); n=br.nextInt(); i=1; s=0; while(i<n){ if(n%i==0) s=s+i; i++; }

if(s==n){ System.out.print("el numero es perfecto"); i=1; while(i<n){ if(n%i==0) System.out.println( i +" "); i++; } } else System.out.println("el numero no es perfecto"); }while(n!=0); } }

Programa 7 Implementar un programa en java ,ingresar un nmero y hallar la suma de divisores del nmero. solucion
import java.util.Scanner; public class Numero { public static void main(String[] args) { int n,sd=0; Scanner sc=new Scanner(System.in); System.out.print("ingrese el numero :"); n=sc.nextInt(); for(int i=1;i<=n;i++){ if(n%i==0) sd=sd+i; System.out.print(i+" "); } System.out.println(" la suma de divisores es :"+sd); } }

Programa 8 Hallar el mcd de dos nmeros Solucin


import java.util.Scanner; public class mcd { public static void main(String[] args) { int a,b,r=1; Scanner yesi=new Scanner(System.in); System.out.println("ingrese el primer numero:"); a=yesi.nextInt(); System.out.println("ingrese el segundo numero:"); b=yesi.nextInt(); while (r!=0){ r=a%b; a=b; b=r; } System.out.println("el m.c.d es :"+a); } }

Programa 9 Ingresar un nmero en base 5 y convertir a la base decimal. Solucin


import java.util.Scanner; public class cambioBase { public static void main(String[] args) { int n,b; Scanner br=new Scanner(System.in); System.out.print("ingresar base:"); b=br.nextInt(); System.out.print("ingresar numero:"); n=br.nextInt(); System.out.print(n+" es base"+ b+" a base 10 es:"+base10(n,b)); } public static int base10(int n, int b) { int nuevo=0,r,exp=0,temp=n; do{ r=temp%10; nuevo+=r*(Math.pow(b,exp++)); temp=temp/10; }while(temp>0); return (int) nuevo; } }

Programa 10 Mostrar la cantidad de nmero perfectos, entre 5 y 1000. Implementar el programa en java con funciones. Solucin
import java.util.Scanner; public class Numero { public static void main(String[] args) { int n,ls,li; Scanner br=new Scanner(System.in); System.out.print("ingresar un limite inferior:"); li=br.nextInt(); System.out.print("ingresar un limite superior:"); ls=br.nextInt(); perfecto(li,ls); } private static void perfecto(int li, int ls) { int c=0; for(int i=li;i<=ls;i++){ int suma=0; for(int j=1;j<i;j++){ if(i%j==0) suma=suma+j; } if(suma==i){ c++; System.out.println(i+" "); } }

System.out.print("cantidad numero perfecto son :"+c); } }

Programa 11 Desarrollar un programa en java decir si un nmero es capica o no es capica, implementar con funciones. solucion
import java.util.Scanner; public class Capicua { public static void main(String[] args) { int n; Scanner br=new Scanner(System.in); System.out.print("ingresar un numero:"); n=br.nextInt(); if(esCapicua(n)) System.out.print("es capicua:"); else System.out.print(" no es capicua:") ; } public static boolean esCapicua(int n) { int temp=n,nuevo=0; while(temp>0){ int r=temp%10; nuevo=nuevo*10+r; temp=temp/10; } if(nuevo==n) return true; else return false; } }

EJERCICIOS DE PROGRAMACION ORIENTADA A OBJETOS Programa 12


Implementar una clase calculadora con los atributos (numero1, numero2) y crear sus mtodos para realizar una aplicacin clase calculadora todo ser implementado en el siguiente men. Men 1. sumar 2. restar 3. multiplicar 4. dividir Elegir una opcin:

Solucin
public class calculadora { private float n1; private float n2; public calculadora(float n1, float n2) { super(); this.n1 = n1; this.n2 = n2; } public int sumarNumero(){ int suma = (int) (n1+n2); return suma; } public int restarNumero(){ int resta; resta=(int) (n1-n2); return resta; } public int multiplicarNumero(){ int m; m=(int) (n1*n2); return m; } public int dividirNumero(){ int d; d=(int) (n1/n2); return d; } }

Aplicacin del ejercicio


import java.util.*; public class AplicacionCalculadora { public static void main(String[] args) { Scanner leer =new Scanner(System.in); float n1,n2; int opc; System.out.print("ingresar el primer numero :"); n1=leer.nextFloat(); System.out.print("ingresar el segundo numero :"); n2=leer.nextFloat(); calculadora nuevo=new calculadora(n1,n2); do{

10

opc=menu(); switch(opc){ case 1: System.out.print("\tsuma:"+nuevo.sumarNumero()); break; case 2: System.out.print("\tresta:"+nuevo.restarNumero()); break; case 3: System.out.print("\tmultiplicacion:"+nuevo.multiplicarNumero()); break; case 4: System.out.print("\tdivision:"+nuevo.dividirNumero()); break; } }while(opc!=5); } private static int menu() { Scanner leer =new Scanner(System.in); int op; System.out.println(""); System.out.println("\tmenu"); System.out.println("\t1.sumar"); System.out.println("\t2.restar"); System.out.println("\t3.multiplicar"); System.out.println("\t4.dividir"); System.out.print("\telegir una opccion :"); op=leer.nextInt(); return op; } }

Programa 13
Implementar una clase capica con un atributos (numero) y crear sus mtodos para realizar una aplicacin clase capica. solucion
public class capicua { int numero; public capicua(int numero) { super(); this.numero = numero; } public void escapicua(int tmp) {//METODO DEL NUMERO CAPICUA int temp=numero; int nuevo=0; while(temp>0){ int r=temp%10; nuevo=nuevo*10+r; temp=temp/10; } if(nuevo==numero) System.out.println("numero es capicua"); else System.out.println(" numero no es capicua"); } }

11

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionCapicua { public static void main(String[] args) { int numero; Scanner leer=new Scanner(System.in); System.out.println("ingresar un numero:"); numero=leer.nextInt(); capicua t=new capicua(numero); //instanciando el contructor a un objeto t System.out.println("mostrar:"); t.escapicua(numero); // MOSTRAR NUMERO CAPICUA } }

Programa 14
Implementar un programa en java crear una clase nmero perfecto con los atributos (lmite inferior, lmite superior) y crear sus mtodos para realizar una aplicacin clase numero perfecto. y hallar la cantidad de nmeros perfectos entre 1 y 1000. Solucin
public class numeroPerfecto { private int li; private int ls; public numeroPerfecto(int li, int ls) { super(); this.li = li; this.ls = ls; } public void HallarNumeroPerfecto(){//METODO PARA HALLAR UN PERFECTO ENTRE LOS li y ls int c=0; for(int i=li;i<=ls;i++){ int suma=0; for(int j=1;j<i;j++){ if(i%j==0) suma=suma+j; } if(suma==i){ c++; System.out.println(i+" ");//muestra la de numero perfecto } } System.out.println("cantidad numero perfecto:"+c); } }

12

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionNumeroPerfecto { public static void main(String[] args) { int ls,li; Scanner br=new Scanner(System.in); System.out.print("ingresar un limite inferior:"); li=br.nextInt(); System.out.print("ingresar un limite superior:"); ls=br.nextInt(); numeroPerfecto nuevo=new numeroPerfecto(li,ls); System.out.println("cantidad numero perfectos entre "+li+" y "+ls+" son"); nuevo.HallarNumeroPerfecto(); } }

Programa 15
Implementar un programa en java crear una clase valor absoluto con un atributo (numero) y crear sus mtodos para realizar una aplicacin clase numero perfecto todo implementar en el siguiente men. MENU Leer un nmero 2. valor absoluto del nmero 3. salir Elegir una opcin:

Solucin
public class valorAbsoluto { private int numero; //CONTRUCTOR DEL VALOR ABSOLUTO public valorAbsoluto(int numero) { super(); this.numero = numero; } //METODOS DEL VALOR ABSOLUTO public int hallarValorAbsoluto(){ int V; if(numero>0) V=numero; else V=(numero*-1); return V; } }

13

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionValorAbsoluto { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int numero; int opcion; valorAbsoluto nuevo=null; do{ opcion=menu(); switch (opcion){ case 1: System.out.print("ingrese numero:"); numero=leer.nextInt(); nuevo=new valorAbsoluto(numero); break; case 2: System.out.print("su valor absoluto es: "+nuevo.hallarValorAbsoluto()); break; } }while(opcion!=4); } public static int menu(){ Scanner leer=new Scanner(System.in); int op; do{ System.out.println("\nMENU"); System.out.println("1.leer un numero :"); System.out.println("2.valor absoluto del numero"); System.out.println("3.salir"); System.out.println("elegir una opccion:"); op=leer.nextInt(); }while(op<1||op>3); return op; } }

Programa 16
Implementar un programa en java crear una clase llamada con un atributo (minuto) y crear sus mtodos de la clase llamada ,luego realizar una aplicacin clase llamada, todo ser implementado en el siguiente men. MENU 1. Leer minutos a consumir. 2. costo de una llamada 3. salir Elegir una opcin:

Solucin
public class llamada { private double M; public llamada(double m) { M = m; }

14

public double Minutosadicionales(){ double Minadi; if(M>=5) Minadi=M-5; else Minadi=0; return Minadi; } public double costo(){ double C; if(M>2) C=(2+Minutosadicionales()); else C=(M*2); return C; } }

Aplicacin del ejercicio


import java.util.Scanner; public class aplicacionLLamada { public static void main(String[] args) { Scanner leer=new Scanner(System.in); double m = 0; int opcion; llamada nuevo=new llamada(m); do{ opcion=(int)menu(); switch (opcion){ case 1: System.out.print("ingrese minutos consumidos: "); m=leer.nextDouble(); nuevo=new llamada(m); break; case 2: System.out.print("el costo de la llamada es: S/"+nuevo.costo()+" Nuevos soles"); break; } }while(opcion!=3); } public static double menu(){ Scanner leer=new Scanner(System.in); double op; do{ System.out.println("\n____MENU_____"); System.out.println("1.leer minutos a consumir llamada"); System.out.println("2.costo de una llamada"); System.out.println("3.SALIR"); System.out.println("elegir una opccion:"); op=leer.nextInt(); }while(op<1||op>3); return op; } }

15

Programa 17
Implementar un programa en java, para desarrollarlo crear una clase triangulo con los atributo (lado1, lado2, lado3) y crear sus mtodos de la clase triangulo luego realizar una aplicacin clase llamada y realizar el siguiente men. MENU 1. Leer un tringulo. 2. hallar el permetro del triangulo 3. hallar el rea del tringulo. 4. salir. Elegir una opcin:

Solucin
public class triangulo { private double lado1; private double lado2; private double lado3; public triangulo(){//contructor nativo lado1=1; lado2=1; lado3=1; } public triangulo(double lado1, double lado2, double lado3) { super(); this.lado1 = lado1; this.lado2 = lado2; this.lado3 = lado3; } public double getLado1() { return lado1; } public void setLado1(double lado1) { this.lado1 = lado1; } public double getLado2() { return lado2; } public void setLado2(double lado2) { this.lado2 = lado2; } public double getLado3() { return lado3; } public void setLado3(double lado3) { this.lado3 = lado3; } public double HallarPerimetro() { double per=lado1+lado2+lado3; return per; } public double hallarArea(){ double area,sp; sp=(lado1+lado2+lado3)/2; area =(double) Math.sqrt(sp*(sp-lado1)*(sp-lado2)*(sp-lado3)); return area; } }

16

Aplicacin del ejercicio


import java.util.*; public class AplicacionTriangulo { public static void main(String[] args) { Scanner leer=new Scanner(System.in); double lado1,lado2,lado3; triangulo nuevo=null; int opc; do { opc=menu(); switch (opc) { case 1:System.out.println("\tleer datos del triangulo:"); System.out.print("\tIngresar lado 1:"); lado1=leer.nextDouble(); System.out.print("\tIngresar lado 2:"); lado2=leer.nextDouble(); System.out.print("\tIngresar lado 3:"); lado3=leer.nextDouble(); nuevo=new triangulo(lado1,lado2,lado3); break; case 2:System.out.println("\tperimetro triangulo: "+nuevo.HallarPerimetro()); break; case 3:System.out.println("\tArea del triangulo: "+nuevo.hallarArea()); break; } } while (opc!=4); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("\tmenu"); System.out.println("\t1.leer un triangulo "); System.out.println("\t2.hallar perimetro triangulo"); System.out.println("\t3.hallar el area triangulo"); System.out.println("\t4.salir"); System.out.print("\n\telegir una opccion:"); op=leer.nextInt(); return op; } }

Programa 18
Desarrollar el siguiente programa en java, crear una clase triangulo rectngulo Con los siguientes atributo (ladoAB, ladoBC) crear los mtodos para calcular la hipotenusa del tringulo rectngulo conociendo las longitudes de sus catetos y Hallar el permetro del tringulo rectngulo. Desarrollar el siguiente men en una aplicacin Para probar los mtodos de un tringulo rectngulo. Men 1. leer lados triangulo rectngulo 2. hallar hipotenusa triangulo rectngulo 3. hallar el permetro del tringulo rectngulo 4. salir. Elegir una opcin:

17

Solucin
public class trectangulo { private double ladoAB; private double ladoBC; public trectangulo(double ladoAB, double ladoBC) { this.ladoAB = ladoAB; this.ladoBC = ladoBC; } public int hallarHipotenusa(){// HALLAR HIPOTENUSA DEL RECTANGULO int hipotenusa; hipotenusa=(int)Math.sqrt(ladoAB*ladoBC+ladoBC*ladoBC); return hipotenusa; } public int perimetroRectangulo(){ int p; p=(int) (ladoAB+ladoBC+hallarHipotenusa()); return p; } }

Aplicacin del ejercicio


import java.util.*; public class Aplicaciontrectangulo { public static void main(String[] args) { Scanner leer=new Scanner (System.in); double ladoAB ,ladoBC; int opc; trectangulo nuevo=null; do{ opc=menu(); switch (opc){ case 1: System.out.print("ingrese el ladoBC :");; ladoAB=leer.nextInt(); System.out.print("ingrese el ladoAC :"); ladoBC=leer.nextInt(); nuevo=new trectangulo(ladoAB,ladoBC); break; case 2: System.out.print("La Hipotenusa de triangulo rectangulo : "+nuevo.hallarHipotenusa()); break; case 3: System.out.print("El Perimetro del triangulo rectangulo: "+nuevo.perimetroRectangulo()); break; } }while(opc!=4); } public static int menu(){ Scanner leer=new Scanner (System.in); int opcion ; do{ System.out.println("\nMENU"); System.out.println("1.leer lados triangulo rectangulo "); System.out.println("2.hallar hipotenusa triangulo rectangulo");

18

System.out.println("3.hallar el perimetro del triangulo rectangulo "); System.out.println("4.SALIR"); System.out.println("elegir una opccion :"); opcion=leer.nextInt(); }while(opcion<1||opcion>4); return opcion; } }

Programa 19
Implementar un programa en java, para crear una clase circulo con un atributo (radio) y crear los mtodos para hallar el rea circulo y el permetro circulo, luego Realizar una aplicacin en la clase crculo para probar sus mtodos. Solution
public class circulo { private double radio; //constructor public circulo(double radio){ this.radio=radio; } //metodos public double hallarArea(){ double area; area=Math.PI*radio*radio; return area; } public double hallarPerim(){ double p; p=2*Math.PI*radio;; return p; } }

Aplicacin del ejercicio

import java.util.Scanner; public class AplicacionCirculo { public static void main(String[] args) { Scanner leer=new Scanner(System.in); double radio; System.out.print("Ingrese el radio: "); radio=leer.nextDouble(); circulo nuevo=new circulo(radio); System.out.print("Area: "+nuevo.hallarArea()); System.out.print("\nPerimetro: "+nuevo.hallarPerim()); } }

19

Programa 20
Disear en java crear una clase fecha con los atributos (da, mes, ao, das), crear un mtodo para mostrar fecha :(da+"/"+mes+"/"+ao) y luego crear un mtodo nueva fecha con un parmetro das, y el nmero de das a aadir a esta fecha y considerar los meses de 30 das y mostrar la nueva fecha y realizar una aplicacin en java para probar sus mtodos. Solucin
public class fecha { private int dia; private int mes; private int ao; private int dias; public fecha(int dia,int mes,int ao){ this.dia=dia; this.mes=mes; this.ao=ao; } public void mostrarfecha(){ System.out.println(dia+"/"+mes+"/"+ao); } public void nuevafecha(int dias){ dia+=+dias; if(dia>30){ mes+=dia/30; dia%=30; } if(mes>12){ ao+=mes/12; mes%=12; } System.out.println("Nueva Fecha: "+dia+"/"+mes+"/"+ao); } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionFecha { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int dia,mes,ao,dias; System.out.print("Ingrese dia: "); dia=leer.nextInt(); System.out.print("Ingrese mes: "); mes=leer.nextInt(); System.out.print("Ingrese ao: "); ao=leer.nextInt(); System.out.print("Ingrese el numero de dias a aumentar: "); dias=leer.nextInt(); fecha z=new fecha(dia,mes,ao); z.mostrarfecha(); z.nuevafecha(dias); }

20

Programa 21
Implementar una clase nmero complejo y crear sus mtodos: . Mostrar los nmeros complejos . Sumar . Restar . Multiplicar . Dividir Y desarrollar una aplicacin para probar sus metodos.

Solucin
public class Numero { //NUMERO COMPLEJO private double real; private double imaginaria; public Numero(){ //1+i real=1; imaginaria=1; } public Numero(double real, double imaginaria){ this.real=real; this.imaginaria=imaginaria; } public void mostrar(){ System.out.println(real + "+" + imaginaria+ "i"); } public void sumar(double r,double i){ double sumaReal,sumaImag; sumaReal=real+r; sumaImag=imaginaria+i; System.out.println("Suma: "+sumaReal+"+"+sumaImag+"i"); } public Numero sumar(Numero b){ Numero resultado=new Numero(); resultado. real=real +b.real; resultado.imaginaria=imaginaria+b.imaginaria; return resultado; } public Numero restar(Numero b){ Numero resultado=new Numero(); resultado. real=real -b.real; resultado.imaginaria=imaginaria-b.imaginaria; return resultado; } public Numero multiplicar(Numero b){ Numero resultado=new Numero(); resultado.real=(real *b.real)-(imaginaria*b.imaginaria); //real=ac-bd resultado.imaginaria=(real*b.imaginaria)+(imaginaria*b.real); //imaginaria=ad+bc return resultado; } public Numero dividir(Numero b){ Numero resultado=new Numero();

21

resultado. real=real /b.real; resultado.imaginaria=imaginaria/b.imaginaria; return resultado; } }

Aplicacin del ejercicio


public class AplicacionNumero { public static void main(String[] args) { Numero A=new Numero(2,5); Numero B=new Numero(3,4); System.out.print("A: "); A.mostrar(); System.out.print("B: "); B.mostrar(); System.out.println("-------------------"); System.out.print("Suma: "); A.sumar(B).mostrar(); System.out.print("Resta: "); A.restar(B).mostrar(); System.out.print("Multiplicacin: "); A.multiplicar(B).mostrar(); System.out.print("Divisin: "); A.dividir(B).mostrar(); } }

//a+bi //c+di

Programa 22
Implementar en java el siguiente ejercicio, crear una clase crculo con un atributo (radio) y crear sus mtodos calcular rea del crculo y calcular el permetro del crculo. Luego crear otra clase rectngulo con los atributos (largo, alto) y crear un mtodo para calcular el rea del rectngulo Luego realizar una clase aplicacin para probar sus mtodos. Solucin
Parte 1 public class circulo { private int radio; public circulo(int radio) { super(); this.radio = radio; } float calculaAreaCirculo(){ return (float) (Math.PI*Math.pow(radio,2)); } public float calcularPerimetroCirculo(){ return (float) (2*(Math.PI)*radio); } } Parte 2 public class rectangulo { private float largo; private float alto;

22

public rectangulo(float largo, float alto) { super(); this.largo = largo; this.alto = alto; } float calculaAreaRectangulo(){ return largo*alto; } } Parte 3

Aplicacin del ejercicio.


import java.util.Scanner; public class Aplicacion { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int radio; int largo; int alto; System.out.println("ingresar radio del circulo:"); radio=leer.nextInt(); circulo c1= new circulo(radio); System.out.println("ingresar largo del rectangulo:"); largo=leer.nextInt(); System.out.println("ingresar alto de rectangulo:"); alto=leer.nextInt(); rectangulo r1 = new rectangulo(largo,alto); System.out.println("el area del circulo: "+c1.calculaAreaCirculo()); System.out.println("el perimetro del circulo: "+c1.calcularPerimetroCirculo()); System.out.println("el area de rectangulo: "+r1.calculaAreaRectangulo()); } }

Programa 23
Desarrollar en java el siguiente ejercicio, crear una clase cubo con un atributo (lado) y crear sus mtodos calcular el volumen del cubo y el rea total del total del cubo luego crear una aplicacin para probar sus mtodos de la clase cubo. solucin
public class cubo { private int lado; public cubo(int lado) { super(); this.lado = lado; } public float calcularVolumen() { return (float)Math.pow(lado, 3); } public float calcularAreaTotal(){ return lado*lado*6; } }

23

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionCubo { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int lado; System.out.println("ingresar lado del cubo:"); lado=leer.nextInt(); cubo nuevo =new cubo(lado); System.out.println("volumen: "+ nuevo.calcularVolumen()); System.out.println("Area Total: "+ nuevo.calcularAreaTotal()); } }

Programa 24
Implementar un programa en java crear una clase rectngulo ,primeras coordenadas con los atributos( x, x1 ,x2, x3 ) y segunda coordenadas con los atributos( y ,y1 ,y2 ,y3) respectivamente . Crear los mtodos para hallar el rea del rectngulo y el Permetro del rectngulo y un mtodo para decir si es rectngulo o es cuadrado. Luego implementar una aplicacin de la clase rectngulo en el siguiente men, para probar sus mtodos de la clase rectngulo. Men 1.-leer un Rectngulo con las coordenadas respectivamente 2.-hallar rea del rectngulo 3.-hallar el permetro del rectngulo 4.-Es rectngulo o es cuadrado 5.-SALIR Elija opcin: Solucin
public class rectangulo { private float x,x1,x2,x3; private float y,y1,y2,y3; public rectangulo(float x, float x1, float x2, float x3, float y, float y1,float y2, float y3) { super(); this.x = x; this.x1 = x1; this.x2 = x2; this.x3 = x3; this.y = y; this.y1 = y1; this.y2 = y2; this.y3 = y3; esrectangulo(); } public float getX() { return x; } public void setX(float x) { this.x = x; } public float getY() { return y; }

24

public void setY(float y) { this.y = y; } public float ladoAB(){ float AB; AB=(float) Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)); return AB; } public float ladoBC(){ float BC; BC=(float) Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); return BC; } public float ladoCD(){ float CD; CD=(float) Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)); return CD; } public float ladoAD(){ float AD; AD=(float) Math.sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3)); return AD; } public int ladoAC(){ int AC; AC=(int)Math.sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2)); return AC; } public int ladoBD(){ int BD; BD=(int)Math.sqrt((x3-x)*(x-x3)+(y-y3)*(y-y3)); return BD; } public void esrectangulo() { float float float float float float AB=ladoAB(); BC=ladoBC(); CD=ladoCD(); AD=ladoAD(); AC=ladoAC(); BD=ladoBD();

if(AD==CD&& AD==BC&& AC==BD&&AB!=0&&BC!=0&&CD!=0&&AD!=0) if(AD!=AB) System.out.print("es rectangulo"); else System.out.print("no es rectangulo ,es un cuadrado"); else System.out.print("cordenadas no forman un rectangulo"); } public float longitud(){ float lon; float AB=(float) Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)); float BC=(float) Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); float CD=(float) Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)); float AD=(float) Math.sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));

25

lon=(AB+BC+CD+AD); return lon; } public float perimetro(){ float per; per=(ladoAB()+ladoBC()+ladoCD()+ladoAD()); return per; } public float Area() { float Ar=ladoAB()*ladoBC(); return Ar; } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionRectangulo { public static void main(String[] args) { Scanner leer=new Scanner(System.in); float X,X1,X2,X3,Y,Y1,Y2,Y3; rectangulo fig1 = null; int opc; do {opc=menu(); switch (opc) { case 1: System.out.println("Creamos en RECTANGULO: "); System.out.println(" Ingrese cordenadas: "); System.out.println(); System.out.println("x: "); X=leer.nextFloat(); System.out.println("y: "); Y=leer.nextFloat(); System.out.println("x1: "); X1=leer.nextFloat(); System.out.println("y1: "); Y1=leer.nextFloat(); System.out.println("x2: "); X2=leer.nextFloat(); System.out.println("y2: "); Y2=leer.nextFloat(); System.out.println("x3: "); X3=leer.nextFloat(); System.out.println("y3: "); Y3=leer.nextFloat(); fig1= new rectangulo(X,X1, X2, X3, Y, Y1, Y2, Y3); break; case 2: System.out.println("el area del rectangulo: "+fig1.Area()); break; case 3: System.out.println("el perimetro del rectangulo: "+fig1.perimetro()); break; case 4: fig1.esrectangulo(); break; } } while (opc!=5);}

26

private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(" menu"); System.out.println("1.-leer un Rectangulo con dos cordenadas en sus vertices"); System.out.println("2.-hallar Area del rectangulo: "); System.out.println("3.-hallar el perimetro del rectangulo: "); System.out.println("4.-Es rectangulo o es cuadrado: "); System.out.println("5.-SALIR"); System.out.println("\n\t Elija OPCION: "); op=leer.nextInt(); return op; } }

Programa 25
Desarrollar el siguiente ejercicio en java, crear una clase cuenta con un atributo (saldo) y crear un constructor nativo saldo=100 y crear los mtodos para calcular: -ver el monto inicial de cuenta -reintegro o giro de la cuenta. -ingreso de cuenta. -consultar saldo con un getSaldo Luego realizar una aplicacin de la clase cuenta con dos instancias de clase cuenta para probar sus mtodos. Solucin
public class Cuenta { private double saldo; public Cuenta()//contructor nativo { saldo=100; } public Cuenta(double monto) { saldo=monto; } public void reintegro(double monto ) { saldo=saldo-monto; } public void ingreso(double monto) { saldo=saldo+monto; } public double getSaldo() { return saldo; } public void setSaldo(double saldo) { this.saldo = saldo; } }

27

Aplicacin del ejercicio


public class aplicacionCuenta { public static void main(String[] args) { double aux = 0; Cuenta a = new Cuenta();//instancia de la clase cuenta Cuenta b = new Cuenta(10.5); aux = a.getSaldo(); System.out.println("El aux = b.getSaldo(); System.out.println("El a.ingreso(2.3); b.reintegro(8); System.out.println("El System.out.println("El } } saldo de a es: " + aux); saldo de b es: " + b.getSaldo()); saldo de a es: " + a.getSaldo()); saldo de b es: " + b.getSaldo());

Programa 26
crear una clase Practica sabiendo que tiene 4 nmeros, implementar Crear un mtodo para hallar el menor nmero, el mayor nmero, el promedio y la multiplicacin de los 4 nmeros .Luego en la aplicacin de la clase prctica leer los 4 nmeros por teclado y probar sus mtodos respectivamente. Solucin
public class Practica { float n1,n2, n3, n4; public float numeroMenor(){ float menor =n1; if (menor>n2) menor=n2; if (menor>n3) menor=n3; if (menor>n4) menor=n4; return menor; } public float numeroMayor(){ float may =n1; if (may<n2) may=n2; if (may<n3) may=n3; if (may<n4) may=n4; return may; } public float calcularPromedio(){ float prom; prom=(float)(n1+n2+n3+n4)/4; return prom; } public int SumaNumero(){ int suma=0; suma=(int) (n1+n2+n3+n4); return suma ; }

28

public int MultiplicarNumero(){ int m; m = (int) (n1*n2*n3*n4); return m; } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionPractica { public static void main(String[] args) { Practica nuevo =new Practica(); Scanner leer =new Scanner(System.in); System.out.println("Ingresar numero 1:"); nuevo.n1=leer.nextFloat(); System.out.println("Ingresar numero2: "); nuevo.n2=leer.nextFloat(); System.out.println("Ingresar numero 3: "); nuevo.n3=leer.nextFloat(); System.out.println("Ingresar numero 4: "); nuevo.n4=leer.nextFloat(); System.out.println("Numero menor: "+nuevo.numeroMenor()); System.out.println("Numero mayor: "+nuevo.numeroMayor()); System.out.println("promedio: "+nuevo.calcularPromedio()); System.out.println("suma de numeros: "+nuevo.SumaNumero()); System.out.println("multiplicar numero: "+nuevo.MultiplicarNumero()); } }

Programa 27
Implementar un programa en java debemos , crear una una clase Banco con los atributos (saldo , transacciones) y crear un los siguientes mtodos : depositar dinero , girar dinero ,consultar saldo y obtener el nmero de transacciones del banco Implementar un men en la aplicacin de Banco para probar sus mtodos. Men 1. depositar dinero 2. girar dinero o retirar dinero 3. consultar saldo 4. obtener el nmero de transacciones 5. salir Elegir una opcin: Solucin.
public class Banco { private double saldo; private double transacciones; public Banco() { saldo = 0; transacciones = 0; } public void depositar( double monto ) { saldo = saldo + monto;

29

transacciones++; } public void girar(double monto ) { if (saldo-monto< 0){ System.out.println("No tiene saldo suficiente"); return; } saldo = saldo - monto; transacciones++; } public double saldoActual() { return saldo; } public double obtenerTransacciones() { return transacciones; } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionBanco { public static void main(String[] args) { Scanner leer=new Scanner(System.in); Banco cuenta= new Banco(); int opc; do{ opc=menu(); switch(opc){ case 1:System.out.println("Ingrese la Cantidad a depositar :"); cuenta.depositar(leer.nextDouble()); break; case 2:System.out.println("Ingrese la Cantidad a girar :"); cuenta.girar(leer.nextDouble()); break; case 3:System.out.println("Saldo :" + cuenta.saldoActual()); break; case 4:System.out.println("Trans.:" + cuenta.obtenerTransacciones()); break; } }while(opc!=5); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.depositar dinero"); System.out.println("2.girar dinero o retirar dinero"); System.out.println("3.consultar saldo"); System.out.println("4.obtener el nmero de transacciones"); System.out.println("5.salir"); System.out.println("elegir una opccion:"); op=leer.nextInt(); return op; } }

30

Programa 28
Implementar un programa en java debemos , crear una una clase Cuenta Bancaria con los atributos (inters , saldo) y crear un los siguientes mtodos : ingresar dinero , girar dinero , consultar saldo , establecer inters y abonar inters. Implementar un men en la aplicacin de la clase Cuenta Bancaria para probar sus mtodos. Men 1. ingresar dinero 2. retirar dinero 3. establecer inters o asignar crdito 4. Abonar inters 5. salir Elegir una opcin: Solucin
public class CuentaBancaria { private double interes; private double saldo; public CuentaBancaria() { saldo=0; interes=0; } public void ingresarDeposito(double monto){ saldo=saldo+monto; } public void retirarDinero(double monto){ if (saldo-monto< 0){ System.out.println("No tiene saldo suficiente"); return; } saldo=saldo-monto; } public double SaldoActual(){ return saldo; } public void EstablecerInteres(double inte){ if (inte<0){ System.out.println("El tipo de interes no puede ser negativo"); return; } interes=inte; } public void AbonarInteres(){ saldo = saldo + (saldo*interes/100); } }

Aplicacin del ejercicio


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

31

CuentaBancaria cuenta1 = new CuentaBancaria(); int opc; do{ opc=menu(); switch(opc){ case 1:System.out.println("Ingrese dinero : "); cuenta1.ingresarDeposito(leer.nextDouble()); //ESTO SE CUMPLE SOLO PARA ESTE CASO break; case 2:System.out.println("retirar dinero: "); cuenta1.retirarDinero(leer.nextDouble());//ESTO SE CUMPLE SOLO PARA ESTE CASO break; case 3:System.out.println("consultar saldo: "+cuenta1.SaldoActual()); break; case 4:cuenta1.EstablecerInteres(5); break; case 5:cuenta1.AbonarInteres(); break; } }while(opc!=6); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("1.ingresar dinero"); System.out.println("2.retirar dinero"); System.out.println("3.consultar saldo"); System.out.println("4.aisgnar credito o establecer interes"); System.out.println("5.abonar interes"); System.out.println("6.salir"); System.out.println("elegir una opccion :"); op=leer.nextInt(); return op; } }

Programa 29
Implementar un programa en java debemos, crear una una clase libro con los atributos (ttulo, precio, cantidad) y con dos atributos estticos (total, total de libros) Crear un los siguientes mtodos: total a comprar libros y total de libros Realizar una aplicacin de la clase libro para probar sus mtodos. Solution
public class libro { static float total=0; static int totallibro=0; private String titulo; private float precio; private int cantidad; public libro(String titulo, float precio, int cantidad) { super(); this.titulo = titulo; this.precio = precio; this.cantidad = cantidad; }

32

public float totalcomprarLibros(){ total=total+precio*cantidad; return total; } public int totaDelibro(){ return totallibro=totallibro+cantidad; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public float getPrecio() { return precio; } public void setPrecio(float precio) { this.precio = precio; } public int getCantidad() { return cantidad; } public void setCantidad(int cantidad) { this.cantidad = cantidad; } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionLibro { public static void main(String[] args) { Scanner leer = new Scanner(System.in); String titulo; float precio; int cantidad; libro nuevo=null; System.out.println("Ingresar datos del primer libro"); System.out.print("Ingresar el Titulo: "); titulo=leer.next(); System.out.print("Ingresar precio: "); precio=leer.nextFloat(); System.out.print("Ingrese cantidad de libros a comprar: "); cantidad=leer.nextInt(); nuevo=new libro(titulo,precio,cantidad); // System.out.println("total a comprar libros:"+nuevo.totalcomprarLibros()); System.out.println("total de libros:"+nuevo.totaDelibro()); // } }

33

EJERCICIOS RESUELTOS CON LOS METODOS GET Y SET CON LA POO EN JAVA

Programa 30
Implementar el siguiente programa en java, luego crear una clase fecha con los atributos (da, mes , ao) y no tiene constructor ,mostrar los mtodos Get y Set de la clase fecha .Realizar una aplicacin de la clase fecha para probar los datos actualizados de la fecha y mostrar la fecha ingresada por teclado. Solucin
public class fecha { private int d; private int m; private int a; public int getD(){ return d; } public void setD (int d){ this.d=d; } public int getM(){ return m; } public void setM (int m){ this.m=m; } public int getA(){ return a; } public void setA (int a){ this.a=a; } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionFecha { public static void main(String[] args) { fecha nuevo=new fecha(); Scanner sc=new Scanner(System.in); System.out.println("Actualizar los datos de una fecha ingresada "); System.out.print("dia: "); nuevo.setD(sc.nextInt()); System.out.print("mes: "); nuevo.setM(sc.nextInt()); System.out.print("ao: "); nuevo.setA(sc.nextInt()); System.out.println("fecha: "+nuevo.getD()+"/"+nuevo.getM()+"/"+nuevo.getA()); } }

34

Programa 31
Implementar el siguiente programa en java, se tiene en una ferretera una clase articulo con los atributos (cdigo, descripcin, cantidad, precio de costo, precio de venta) Luego crear el constructor de la clase artculo y los mtodos Get y Set. Realizar una aplicacin de la clase artculo para leer los datos del artculo y mostrar los datos del artculo y luego encontrar la cantidad de artculos a comprar. Y el stock restante de los artculos.

Solucin
public class articulo { private int codigo; private String descripcion; private int cantidad; private int pCosto; private float pVenta; public articulo(){ } public articulo(int codi,String desc,int cant,int pCos,float pVen){ this.codigo=codi; this.descripcion=desc; this.cantidad=cant; this.pCosto=pCos; this.pVenta=pVen; } public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public int getCantidad() { return cantidad; } public void setCantidad(int cantidad) { this.cantidad = cantidad; } public int getpCosto() { return pCosto; } public void setpCosto(int pCosto) { this.pCosto = pCosto; } public float getpVenta() { return pVenta; } public void setpVenta(float pVenta) { this.pVenta = pVenta; } }

35

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionArticulo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int codigo; String descripcion; int cantidad; int pCosto; float pVenta; //declaracion del objeto (art) articulo nuevo=null; //lectura de datos del articulo a guardar System.out.print("codigo: "); codigo=sc.nextInt(); System.out.print("descripcion: "); descripcion = sc.next(); System.out.print("cantidad: "); cantidad=sc.nextInt(); System.out.print("pCosto "); pCosto=sc.nextInt(); System.out.print("pVenta: "); pVenta=sc.nextInt(); //instanciar el objeto(art)y utilizar el constructor creado nuevo=new articulo(codigo, descripcion, cantidad, pCosto, pVenta); //mostramos los campos del o0bjeto creado System.out.println("\n\n\t ***DATOS DEL OBJETO***"); System.out.println("codigo: " + nuevo.getCodigo()); System.out.println("descripcion: " + nuevo.getDescripcion()); System.out.println("cantidad: " + nuevo.getCantidad()); System.out.println("precio de costo: " + nuevo.getpCosto()); System.out.println("pVenta: " + nuevo.getpVenta()); System.out.print("cantidad de articulos a comprar:"); int c; //variable para guardar la cantidad de articulos para comprar c=sc.nextInt(); if(c<=nuevo.getCantidad()){ System.out.println("articulos vendidos:"); nuevo.setCantidad(nuevo.getCantidad()-c); System.out.println("\t\t\tStock restante:"+ nuevo.getCantidad()); }else{ System.out.println("\t\t\t stock insuficiente"); } } }

36

Programa 32
Implementar el siguiente programa en java, se tiene en una tienda a una clase Empleado con los atributos (nombre, sueldo, edad) .Luego crear el constructor de la clase Empleado y los mtodos Get y Set de la clase Empleado. Realizar una aplicacin de la clase Empleado para leer los datos del Empleado y mostrar los datos del Empleado y actualizar los datos del Empleado. Solucin
public class Empleado { private String nombre; private double sueldo; private int edad; public Empleado(){ } public Empleado(String nombre, double sueldo, int edad) { this.nombre = nombre; this.sueldo = sueldo; this.edad = edad; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public double getSueldo() { return sueldo; } public void setSueldo(double sueldo) { this.sueldo = sueldo; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionEmpleado { public static void main(String[] args) { Scanner leer= new Scanner(System.in); String nombre; double sueldo; int edad; System.out.println("nombre: "); nombre=leer.next(); System.out.println("sueldo: "); sueldo=leer.nextDouble(); System.out.println("edad: "); edad=leer.nextInt(); Empleado secretaria1=new Empleado(nombre,sueldo,edad); System.out.println("\t\t\n*****DATOS DE LA SECRETARIA****"); System.out.println("nombre: "+ secretaria1.getNombre());

37

System.out.println("sueldo: "+ secretaria1.getSueldo()); System.out.println("edad : "+ secretaria1.getEdad()); //Actualizar valores System.out.print("nombre: "); secretaria1.setNombre(leer.next()); System.out.print("sueldo: "); secretaria1.setSueldo(leer.nextDouble()); System.out.print("edad: "); secretaria1.setEdad(leer.nextInt()); System.out.println("\t\t\n\n*****DATOS DE LA SECRETARIA****"); System.out.println("nombre: "+ secretaria1.getNombre()); System.out.println("sueldo: "+ secretaria1.getSueldo()); System.out.println("edad : "+ secretaria1.getEdad()); } }

Programa 33
Implementar una clase alumnos en java, con un atributo (nombre) y las 4 notas respectivamente y desarrollar un mtodo para hallar el promedio de las notas y el otro mtodo de alumno si est aprobado o desaprobado. Crear una aplicacin en el siguiente men para probar sus mtodos. Men 1. leer alumno y notas 2. Mostrar promedio y estado de alumno (aprobado o desaprobado) 3. mostrar notas del alumno 4. Modificar las 4 notas 5. salir Elija una opcin: Solucin
public class alumnos { private String nombre; private float nota1; private float nota2; private float nota3; private float nota4; public alumnos(String nombre, float nota1, float nota2, float nota3, float nota4) { this.nombre = nombre; this.nota1 = nota1; this.nota2 = nota2; this.nota3 = nota3; this.nota4 = nota4; } public String getNombre() { return nombre; } public void setNombre(String nombre) {

38

this.nombre = nombre; } public float getNota1() { return nota1; } public void setNota1(float nota1) { this.nota1 = nota1; } public float getNota2() { return nota2; } public void setNota2(float nota2) { this.nota2 = nota2; } public float getNota3() { return nota3; } public void setNota3(float nota3) { this.nota3 = nota3; } public float getNota4() { return nota4; } public void setNota4(float nota4) { this.nota4 = nota4; } //MTODOS DE INSTANCIA public int promedio(){ int prom; prom=(int)(nota1+nota2+nota3+nota4)/4; return prom; } public String estado(){ if(promedio()>=11) return "APROBADO"; else return "DESAPROBADO"; } }

Aplicacin del ejercicio

import java.util.Scanner; public class aplicacionAlumnos { public static void main(String[] args) { Scanner leer= new Scanner(System.in); String nombre; float nota1, nota2, nota3, nota4,nuevaNota; int opc, notaModificar;

39

alumnos nuevo=null;// DECLARACIN DEL OBJETO 'nuevo'=sirve para actualizar valores. do{//inicia el bucle total opc=menu(); switch(opc){ case 1: System.out.println("CREAR ALUMNO"); System.out.print("Nombre del alumno: "); nombre=leer.next(); System.out.print("Nota 1: "); nota1=leer.nextInt(); System.out.print("Nota 2: "); nota2=leer.nextInt(); System.out.print("Nota 3: "); nota3=leer.nextInt(); System.out.print("Nota 4: "); nota4=leer.nextInt(); nuevo=new alumnos(nombre, nota1, nota2, nota3, nota4); break; case 2: System.out.println("VER PROMEDIO Y ESTADO"); System.out.println("PROMEDIO: "+nuevo.promedio()); System.out.println("ESTADO: "+nuevo.estado()); System.out.println("---------------------"); break; case 3: System.out.println("VER NOTAS"); System.out.println("ALUMNO: "+nuevo.getNombre()); System.out.println("NOTAS: "+nuevo.getNota1()+", "+ nuevo.getNota2()+", "+nuevo.getNota3()+", "+nuevo.getNota4()); break; case 4: System.out.println("modificar notas"); do{ System.out.print("Nota a Modifiar [1-4]: "); notaModificar=leer.nextInt(); }while(notaModificar<1 || notaModificar>4); System.out.print("Nueva Nota: "); nuevaNota= leer.nextFloat(); switch(notaModificar){ case 1: nuevo.setNota1(nuevaNota); break; case 2: nuevo.setNota2(nuevaNota); break; case 3: nuevo.setNota3(nuevaNota); break; case 4: nuevo.setNota4(nuevaNota); break; } }//termina el bucle total }while(opc!=5); } private static int menu() {

40

int op; Scanner leer=new Scanner(System.in); System.out.println("MENU"); System.out.println("1. leer alumno y notas"); System.out.println("2. hallar el promedio y estadio del alumno"); System.out.println("3. System.out.println("4. System.out.println("5. System.out.print("\n\t op=leer.nextInt(); return op; } } mostrar notas del alumno"); modificar las 4 notas del alumno"); salir"); ELIJA UNA OPCIN: ");

Programa 34
Se tiene una lista de alumnos y se desea hallar el promedio de cada uno, sabiendo que todos tienen 4 notas. Implementar el siguiente men en la aplicacin de alumnos 1.-registrar alumnos y notas; 2.-mostar alumnos aprobados; 3.-mostar alumnos desaprobados 4.-mejor(es) alumno 5.-peor(es) alumnos 6.-ordenar por apellido 7.-ordenar por promedio 8-buscar notas de un alumno nota: crear una clase alumnos con los siguientes atributos (nombre, apellido, nota [], promedio) Solucin
public class Alumnos { private String nombre; private String apellido; private int nota1; private int nota2; private int nota3; private int nota4; private double promedio; public Alumnos(String nombre, String apellido, int nota1, int nota2,int nota3, int nota4,double promedio) { this.nombre = nombre; this.apellido = apellido; this.nota1 = nota1; this.nota2 = nota2; this.nota3 = nota3; this.nota4 = nota4; this.promedio = promedio; } public void mostrarAlumno(){ System.out.println(this.apellido+","+this.nombre+"-->"+this.promedio);}

41

public void hallarPromedio(){ this.promedio=(nota1+nota2+nota3+nota4)/4; } public double getPromedio(){ return promedio; } public String getApellido(){ return apellido; } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionAlumnos { public static void main(String[] args) { Scanner leer=new Scanner(System.in); Alumnos[] lista=new Alumnos[10]; int opcion,n=0; do{ opcion=menu(); switch(opcion){ case 1: System.out.println("Cantidad de alumnos: "); n=leer.nextInt(); registro(lista,n); break; case 2: for(int i=0;i<n;i++) if(lista[i].getPromedio()>10) lista[i].mostrarAlumno(); break; case 3:for(int i=0;i<n;i++) if(lista[i].getPromedio()<=10) lista[i].mostrarAlumno(); break; case 4:double mayor=PromMayor(lista,n); for(int i=0;i<n;i++){ if(lista[i].getPromedio()==mayor) lista[i].mostrarAlumno(); } break; case 5:double menor=PromMenor(lista,n); for(int i=0;i<n;i++){ if(lista[i].getPromedio()==menor) lista[i].mostrarAlumno(); } break; case 6:ordenarApellido(lista,n); for(int i=0;i<n;i++) lista[i].mostrarAlumno(); break; case 7:ordenarPromedio(lista,n); for(int i=0;i<n;i++) lista[i].mostrarAlumno(); break; case 8: String busca;

42

System.out.print("apellido"); busca=leer.next(); buscarApellido(lista,n,busca); break; case 9: System.out.print("salir"); break; } }while(opcion!=9); System.out.println("Fin del programa!!"); } private static void buscarApellido(Alumnos[] lista, int n, String busca) { boolean encontrado=false; for(int i=0;i<n;i++){ if(lista[i].getApellido().equals(busca)){ lista[i].mostrarAlumno(); encontrado=true; break; } } if(encontrado==false){ System.out.print("no se encuentra el alumno"); } } private static void ordenarApellido(Alumnos[] lista, int n) { for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(lista[i].getApellido().compareTo(lista[j].getApellido())>0){ Alumnos tmp=lista[i]; lista[i]=lista[j]; lista[j]=tmp; } } private static void ordenarPromedio(Alumnos[] lista, int n) {//ORENAR POR PROMEDIOCOMPARAR PROMEDIO for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(lista[i].getPromedio()<lista[j].getPromedio()){ Alumnos tmp=lista[i]; lista[i]=lista[j]; lista[j]=tmp; } } private static double PromMenor(Alumnos[] lista, int n) { double men= lista[0].getPromedio(); for(int i=1;i<n;i++) if(men>lista[i].getPromedio()) men= lista[i].getPromedio(); return men; } private static double PromMayor(Alumnos[] lista, int n) { double may=lista[0].getPromedio(); for(int i=1;i<n;i++) if(may<lista[i].getPromedio()) may=lista[i].getPromedio(); return may;}

43

private static void registro(Alumnos[] lista, int n) { Scanner leer=new Scanner(System.in); String nombre,apellido; int nota1,nota2,nota3,nota4; double promedio = 0; for(int i=0;i<n;i++){ System.out.println("Nombre: "); nombre=leer.next(); System.out.println("Apellido: "); apellido=leer.next(); System.out.println("Nota1: "); nota1=leer.nextInt(); System.out.println("Nota2: "); nota2=leer.nextInt(); System.out.println("Nota3: "); nota3=leer.nextInt(); System.out.println("Nota4: "); nota4=leer.nextInt(); lista[i]=new Alumnos(nombre,apellido,nota1,nota2,nota3,nota4,promedio); lista[i].hallarPromedio(); } } private static int menu() { Scanner leer=new Scanner(System.in); int opc; System.out.println("1. Registrar las notas. "); System.out.println("2. Mostrar alumnos aprobados."); System.out.println("3. Mostrar alumnos desaprobados."); System.out.println("4. Mejor(es)alumnos."); System.out.println("5. Peor(es)alumnos."); System.out.println("6. Ordenar apellido."); System.out.println("7. Ordenar promedio(Descendentemente)."); System.out.println("8. Buscar notas de un alumno."); System.out.println("9.Salir."); System.out.println("Escoja una opcin: "); opc=leer.nextInt(); return opc; } }

44

EJERCICIOS RESUELTOS DE LA CLASE CON METODOS STATIC Programa 35


Desarrollar el siguiente programa en java, Lea tres nmeros que representan el da, mes y el ao y diga si forman fecha correcta .Considerar aos bisiestos. Solucin
import java.util.Scanner; public class Fecha { public static void main(String[] args) { int d; int m; int a; Scanner sc = new Scanner(System.in); System.out.print("Dia : "); d=sc.nextInt(); System.out.print("Mes : "); m=sc.nextInt(); System.out.print("Anio : "); a=sc.nextInt(); if (fechaCorrecta(d,m,a)){ System.out.print("Fecha Correcta"); System.out.print(d+"/"+m+"/"+a); } else{ System.out.print("fecha Incorrecta"); } } private static boolean fechaCorrecta(int d, int m, int a) { int maxDia=0; switch(m){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: maxDia=31; break; case 4: case 6: case 9: case 11: maxDia=30; break; case 2: if((a%4==0 && (a%100!=0))||(a%400==0)){ maxDia=29; } else{ maxDia=28; } break; }

45

if(d>0 && d<=maxDia && m<13 && m>0 && a>0){ return true; } else{ return false; } } }

Programa 36
Implementar el siguiente programa en java, crear una clase fecha con atributos (da, mes, ao) y crea un mtodo para hallar la fecha correcta, considere los aos bisiestos Realizar una aplicacin de la clase fecha que lea los tres nmeros que representan da, mes y ao y probar sus mtodos respectivamente, si la fecha es correcta o incorrecta. Solucion
public class fecha { private int d; private int m; private int a; public fecha(){ } public fecha(int d, int m, int a) { super(); this.d = d; this.m = m; this.a = a; } public int getD() { return d; } public void setD(int d) { this.d = d; } public int getM() { return m; } public void setM(int m) { this.m = m; } public int getA() { return a; } public void setA(int a) { this.a = a; } public boolean fechaCorrecta() { int maxDia = 0; switch(m){ case 1: case 3: case 5: case 7: case 8: case 10: case 12:

46

case case case case case

maxDia=31; break; 4: 6: 9: 11: maxDia=30; break; 2: if((a%4==0 && (a%100!=0))||(a%400==0)){ maxDia=29; } else{ maxDia=28; } break;

} if(d>0 && d<=maxDia && m<13 && m>0 && a>0){ return true; }else{ return false; } } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionFecha { public static void main(String[] args) { Scanner leer = new Scanner(System.in); int d; int m; int a; System.out.print("Dia : "); d=leer.nextInt(); System.out.print("Mes : "); m=leer.nextInt(); System.out.print("Anio : "); a=leer.nextInt(); fecha nuevo = new fecha(d,m,a); if (nuevo.fechaCorrecta()){ System.out.print("Fecha Correcta"); System.out.print(d+"/"+m+"/"+a); } else{ System.out.print("fecha Incorrecta"); } } }

47

EJERCICIOS RESUELTOS CON LOS METODOS GET SET Y TOSTRING Programa 37


Implementar el siguiente programa en java, crear una clase Mascota con los siguientes atributos (nombre, edad, peso) y crea un mtodo To String para mostrar sus atributos Realizar una aplicacin de la clase Mascota para probar el mtodo To String Solucin
public class Mascota { private String nombre; private int edad; private float peso; public Mascota(String nombre, int edad, float peso) { super(); this.nombre = nombre; this.edad = edad; this.peso = peso; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } public float getPeso() { return peso; } public void setPeso(float peso) { this.peso = peso; } public String toString() { return "Mascota [edad=" + edad+" aos" + ", nombre=" + nombre + ", peso=" + peso +" Kg" + "]"; } }

Aplicacin del ejercicio


public class AplicacionMascota { public static void main(String[] args) { String s1 = "Hola"; String s2 = "Hello"; String s3 = "Hola"; System.out.println((s1==s3)?"Iguales":"Diferentes"); System.out.println((s1.equals(s2))?"Iguales":"Diferentes"); Mascota nuevo = new Mascota("Vick", 5, 18.8F); System.out.println("Nombre: "+nuevo.getNombre()); System.out.println("Edad "+nuevo.getEdad()); System.out.println("Peso "+nuevo.getPeso()); System.out.println(nuevo.toString()); }}

48

Programa 8
Implementar el siguiente programa en java, crear una clase Alumno con los siguientes atributos (curso, nivel Acadmico) y crea un mtodo To String para mostrar sus atributos Realizar una aplicacin de la clase Alumno para probar el mtodo To String. Solucin
public class Alumno { private String curso; private String nivelAcadmico; public Alumno(String curso, String nivelAcadmico) { super(); this.curso = curso; this.nivelAcadmico = nivelAcadmico; } public String getCurso() { return curso; } public void setCurso(String curso) { this.curso = curso; } public String getNivelAcadmico() { return nivelAcadmico; } public void setNivelAcadmico(String nivelAcadmico) { this.nivelAcadmico = nivelAcadmico; } public String toString() { return "Alumno [curso=" + curso + ", nivelAcadmico=" + nivelAcadmico+ "]"; } }

Aplicacin del ejercicio


public class AplicacionAlumno { public static void main(String[] args) { Alumno nuevo = new Alumno("matematica", "Muy bueno"); System.out.println("Curso: "+nuevo.getCurso()); System.out.println("Nivel Acadmico: "+nuevo.getNivelAcadmico()); System.out.println(nuevo.toString()); } }

49

EJERCICIOS RESUELTOS DE CADENA DE CARACTERES Programa 39


Implementar el siguiente programa en java, crear una clase en el main Ingresa una frase y mostrar la frase y luego convertir la frase a maysculas y minsculas; cambiar las letras en la frase, mostrar la frase desde la posicin 12 y hallar la longitud de la frase.

Frase ingresada: universidad nacional de Cajamarca


Solucin
import java.util.*; public class Practicando { public static void main(String[] args) { Scanner leer=new Scanner(System.in); String frase=null; System.out.print("Ingrese una frase:"); frase=leer.nextLine(); System.out.println("\nmostrar la frase :"+frase); System.out.println("\n la frase convertida a mayusculas:"+frase.toUpperCase()); //cadena CONVERTIR A MAYUSCULAS System.out.println("\n la frase convertida a minusculas:"+frase.toLowerCase()); System.out.println("\n cambiando letras en las frase : "+frase.replace('a' ,'i'));//cambiar letra en una cadena System.out.println("\n mostrar la frase desde la posicion 12 :"+frase.substring(12)); System.out.print("\nla longitud de la frase es:" +frase.length()); } }

Programa 40
Ingresar una frase y mostrar la frase, contar palabras de la frase y decir cuantas Vocales tiene en total la frase todo implementar con funciones desde el main Solucin
import java.util.Scanner; public class cantidadVocalFrase { public static void main(String[] args) { Scanner leer=new Scanner(System.in); String frase; System.out.println("ingrese una frase: "); frase=leer.nextLine(); mostrar(frase); contarPalabras(frase); contarVocal(frase); } private static void mostrar(String frase) { System.out.println("\tmostrar la frase ingresada : "+frase); } private static void contarPalabras(String frase) { int cp=0; for(int i=0;i<frase.length();i++){ if(frase.charAt(i)==' ') cp++;

50

} System.out.println("la frase tiene: "+(cp+1)+" palabras"); } private static void contarVocal(String frase) { int cv=0; for (int i=0;i<frase.length();i++){ if(frase.charAt(i)=='a' || frase.charAt(i)=='e' || frase.charAt(i)=='i' || frase.charAt(i)=='o' || frase.charAt(i)=='u') cv++; } System.out.println("la frase tiene: "+cv+" vocales en total"); } }

Programa 41
Implementar el siguiente programa en java, desarrollar el siguiente men. Men 1. Leer frase 2. Contar palabras 3. Contar vocales de la frase 4. mostrar frase en columna 5. cantidad de veces que se repite la letra a 6. salir Elegir una opccion: Solucin
import java.util.Scanner; public class menu1 { public static void main(String[] args) { Scanner leer=new Scanner(System.in); String frase=null; int opc; do{ opc=menu(); switch(opc){ case 1:System.out.print("\tIngresar una frase : "); frase=leer.nextLine(); mostrar(frase); break; case 2:contarpalabras(frase); break; case 3:contarvocal(frase); break; case 4:System.out.println("mostrar la frase en columna cada palabra"); mostrarcolumna(frase); break; case 5:System.out.println("\ncuantas veces se repite la letra a"); repetirletra(frase); break; case 6:System.out.println("la frase en mayusculas"); mayuscula(frase); break;

51

} }while(opc!=7); } private static void mostrar(String frase) { System.out.println("\tmostrar la frase ingresada : "+frase); } private static void contarpalabras(String frase) { int cp=0; for(int i=0;i<frase.length();i++){ if(frase.charAt(i)==' ') cp++; } System.out.println("\tla frase tiene: "+(cp+1)+" palabras"); } private static void contarvocal(String frase) { int cv=0; for (int i=0;i<frase.length();i++){ if(frase.charAt(i)=='a' || frase.charAt(i)=='e' || frase.charAt(i)=='i' || frase.charAt(i)=='o' || frase.charAt(i)=='u') cv++; } System.out.println("la frase tiene: "+cv+" vocales en total"); } private static void mostrarcolumna(String frase) { for (int i =0;i<frase.length();i++) { System.out.println("\t "+frase.charAt(i)); } } private static void repetirletra(String frase) { int com=0; for (int i =0;i<frase.length();i++){ if(frase.charAt(i)=='a' || frase.charAt(i)=='A') com++; } System.out.println("la letra se repite "+com+" veces"); } private static void mayuscula(String frase) { for (int i =0;i<frase.length();i++){ } System.out.println("\t "+frase.toUpperCase()); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("\t1. Leer frase "); System.out.println("\t2. Contar palabras frase "); System.out.println("\t3. Contar vocales frase "); System.out.println("\t4. mostrar frase en columna "); System.out.println("\t5. cantidad de veces que se repite letra a "); System.out.println("\t6. convertir frase a mayusculas "); System.out.println("\t7. salir"); System.out.print("\t5.elegir una opccion:"); op=leer.nextInt(); return op; } }

52

EJERCICIOS RESUELTOS CON VECTORES Programa 42


Implementar el siguiente programa en java, desarrollar el siguiente men.

1. leer vector. 2. mostrar vector. 3. mostrar vector pares. 4. mostrar vectores impares. 5. mostrar vectores positivos. 6. mostrar vectores negativos. 7. ordenar vectores ascendentemente. 8. ordenar vectores descendentemente. 9. invertir un vector. 10. salir. Elegir una opcin: Solucin
import java.util.Scanner; public class menuV { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []v=null; int opc,n=0; do{ opc=menu(); switch(opc){ case 1:System.out.println("ingresar la cantidad de vectores: "); n=leer.nextInt(); v=new int[n]; leer(v); break; case 2: mostrar(v); break; case 3:System.out.println("vectores pares"); mostrarpar(v); break; case 4:System.out.println("vectores impares"); mostrarimpar(v); break; case 5:System.out.println("vectores positivos"); positivos(v,n); break; case 6:System.out.println("vectores negativos"); negativos(v,n); break; case 7:System.out.println("ordenar ascendentemente"); ordenaAscendentemente(v,n); mostrar(v); break; case 8:System.out.println("ordena descendentemente"); ordenaDescendentemente(v,n); mostrar(v); break;

53

case 9:System.out.println("invertir vector"); invertir(v,n); break; case 10:int buscar; System.out.print("elemento a buscar: "); buscar=leer.nextInt(); busquedaSecuencial(v, buscar); break; } }while(opc!=11); } private static void leer(int[] v) { Scanner leer=new Scanner(System.in); for(int i=0;i<v.length;i++){ System.out.print("\tv["+(i+1)+"]="); v[i]=leer.nextInt(); } } private static void mostrar(int[] v) { for (int i = 0; i <v.length; i++) { System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void mostrarpar(int[] v) { for(int i=0;i<v.length;i++) if(v[i]%2==0){ System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void mostrarimpar(int[] v) { for(int i=0;i<v.length;i++) if(v[i]%2!=0){ System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void positivos(int[] v,int n) { for(int i=0;i<n;i++) if(v[i]>0){ System.out.println("\t"+v[i]); } } private static void negativos(int[] v,int n) { for(int i=0;i<n;i++) if(v[i]<0){ System.out.println("\t"+v[i]); } } private static void ordenaAscendentemente(int[] v,int n ) { int aux; for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(v[i]>v[j]){ aux=v[i]; v[i]=v[j]; v[j]=aux; } } private static void ordenaDescendentemente(int[] v, int n) { int aux; for(int i=0;i<n-1;i++)

54

for(int j=i+1;j<n;j++) if(v[i]<v[j]){ aux=v[i]; v[i]=v[j]; v[j]=aux; } } private static void invertir(int[] v, int n) { for(int i=(n-1);i>=0;i--){//invertir un vector System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void busquedaSecuencial(int[] v, int buscar) { for (int i = 0; i < v.length; i++) { if(v[i]==buscar){ System.out.println("Encontrado en la posicion:"+ (i+1)); } } System.out.println(""); } private static int menu() { Scanner leer=new Scanner(System.in); int op1; System.out.println("MENU"); System.out.println("1.leer numero"); System.out.println("2.mostrar numeros"); System.out.println("3.mostrar numeros pares"); System.out.println("4.mostrar numeros impares"); System.out.println("5.mostrar numeros positivos"); System.out.println("6. mostrar numeros negativos"); System.out.println("7.ordenar numeros ascendentemente"); System.out.println("8. mostrar numeros descendentemente"); System.out.println("9.invertir numero ingresado"); System.out.println("10.Buscar un vector"); System.out.println("11.salir"); System.out.print("elegir una opccion :"); op1=leer.nextInt(); return op1; } }

Programa 43
Implementar el siguiente programa java que muestre el siguiente men. Men 1. Leer vector 2. Mostrar vector 3. Mostrar suma de vectores 4. Hallar promedio de vectores 5. Hallar mayor vector 6. Hallar menor vector 7. Hallar suma de vectores pares 8. Hallar suma de vectores impares 9. Hallar moda del vector 10. salir Elegir una opccion:

55

Solucin
import java.util.Scanner; public class MenuVectores { public static void main(String[] args) { Scanner br=new Scanner(System.in); int []v=null; int opc,n=0; do{ opc=menu(); switch(opc){ case 1:System.out.print("ingresar cantidad de elementos de vector: "); n=br.nextInt(); v=new int[n]; leer(v); break; case 2: System.out.println("mostrar los datos de un vector"); mostrar(v); break; case 3: System.out.println("suma de vectores:"+sumavector(v)); break; case 4:System.out.println("promedio del vector:"+promediovector(v)); break; case 5:mayorvector(v); break; case 6: menorvector(v); break; case 7: System.out.println("suma de vectores pares :"+sumavectorPar(v)); break; case 8: System.out.println("suma de vectores impares:"+sumavectorImpar(v)); break; case 9: System.out.println("la moda del vector es:"+modavector(v,n)); break; } }while(opc!=10); } private static void leer(int[] v) { Scanner leer=new Scanner(System.in); for (int i = 0; i < v.length; i++) { System.out.print("\nv["+(i+1)+"]="); v[i]=leer.nextInt(); } } private static void mostrar(int[] v) { for (int i = 0; i < v.length; i++) { System.out.println("\nv["+(i+1)+"]="+v[i]); } System.out.println("mostrar"); } private static int sumavector(int[] v) { int sum=0; for (int i = 0; i < v.length; i++) {

56

sum+=v[i]; } return sum; } private static float promediovector(int[] v) { float prom; prom=(float) sumavector(v)/v.length; return prom; } private static void mayorvector(int[] v) { int may=v[0],psc=0; for(int i=0;i<v.length;i++) if(may<v[i]){ psc=i; may=v[i]; } System.out.println(" mayor vector es:"+may); System.out.println(" la posicion del mayor vector es:"+(psc+1)); } private static void menorvector(int[] v) { int men=v[0],psc=0; for(int i=0;i<v.length;i++) if(men>v[i]){ psc=i; men=v[i]; } System.out.println(" menor vector es:"+men); System.out.println("la posicion del menor vector es:"+(psc+1)); } private static int sumavectorPar(int[] v) { int suma=0; for(int i=0;i<v.length;i++) if(v[i]%2==0){ suma=suma+v[i]; } return suma; } private static int sumavectorImpar(int[] v) { int suma=0; for(int i=0;i<v.length;i++) if(v[i]%2!=0){ suma=suma+v[i]; } return suma; } private static int modavector(int[] v,int n) { int contador=0,aux=0,moda=0; for (int i = 0; i <n-1; i++) { for (int j =i+1; j <n; j++) { if (v[i]==v[j]) { contador++; if (contador>aux) { aux=contador; moda=v[i]; } } } contador=0; } return moda;}

57

private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.leer vector"); System.out.println("2.mostrar vector"); System.out.println("3.suma de vectores"); System.out.println("4.promedio de vectores"); System.out.println("5.mayor vector"); System.out.println("6.menor vector"); System.out.println("7.suma de vectores pares"); System.out.println("8.suma de vectores impares"); System.out.println("9.moda del vector :"); System.out.println("10.salir :"); System.out.println("elegir una opccion:"); op=leer.nextInt(); return op; } }

Programa 44
Se tiene un arreglo de nombres de alumnos ,tres arreglos para sus calificaciones y un arreglo para sus promedios; mostrar al primer y ltimo puestos de acuerdo a su promedio, al puesto(s)promedio y mostrar alumno y calificacin ms alta por cada arreglo de calificaciones. Nombre calif1 calif2 calif3 promedio Karla 15 18 10 14.3333 Bety 20 20 16 18.6666 . . . . . . . . . . . . . . . Ronal 14 16 20 16.666 Solucion
import java.util.Scanner; public class examen { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int n; System.out.print("ingresar la cantidad de alumnos:"); n=leer.nextInt(); String alumno[] = new String[n]; float calif1[] = new float[n]; float calif2[] = new float[n]; float calif3[] = new float [n]; float[] p = new float[n]; //p=promedio de calificacion leer(alumno); System.out.println(" "); mostrar(alumno); System.out.println(" "); System.out.println("leer primera calificacion"); leer(calif1); mostrar(calif1); System.out.println(""); System.out.println("leer segunda calificacion"); leer(calif2);

58

mostrar(calif2); System.out.println(" "); System.out.println("leer tercera calificacion"); leer(calif3); System.out.println(" "); mostrar(calif3); System.out.println(" "); promedioAlumno(calif1,calif2,calif3,p); System.out.println(" "); System.out.println("Informacion Final alumnos"); System.out.println("Alumno\tCalif1\tCalif2\tCalif3\tProm"); for ( int i= 0; i < alumno.length; i++ ){ System.out.println(""); System.out.println(" "+alumno[i]+"\t "+calif1[i]+"\t "+calif2[i]+"\t "+calif3[i]+"\t "+p[i]); } System.out.println(" "); System.out.println("El mayor promedio es: "+p[mejorAlumno(p)]+" del alumno "+alumno[mejorAlumno(p)]); System.out.println(" "); System.out.println("El menor promedio es: "+p[peorAlumno(p)]+" del alumno "+alumno[peorAlumno(p)]); System.out.println(" "); System.out.println("La mayor calificacion1 es: "+calif1[mejorAlumno(calif1)]); System.out.println(" "); System.out.println("La mayor calificacion2 es: "+calif2[mejorAlumno(calif2)]); System.out.println(" "); System.out.println("La mayor calificacion3 es: "+calif3[mejorAlumno(calif3)]); } private static void leer(String[] alumno) { Scanner leer = new Scanner(System.in); System.out.println("\nleer "+alumno.length+" alumno:"); for (int i=0;i<alumno.length;i++){ alumno[i]=leer.next(); } } private static void mostrar(String[] alumno) { System.out.print("mostrar "+alumno.length+" alumno:"); for ( int i= 0;i<alumno.length;i++ ){ System.out.print("\n"+alumno[i]); } System.out.println(""); } private static void leer(float[] calif1) { Scanner leer = new Scanner(System.in); for (int i=0;i<calif1.length;i++) calif1[i]=leer.nextInt(); } private static void mostrar(float[] calif1) { System.out.println("Calificaciones registradas:"); for ( int i= 0;i<calif1.length;i++ ){ System.out.print(" "+calif1[i]); } }

59

private static int mejorAlumno(float[] p) { int mayPromedio=0; float may=p[0]; for(int i=0;i<p.length;i++){ if(may<p[i]){ may=p[i]; mayPromedio=i; } } return mayPromedio; } private static int peorAlumno(float[] p) {//peor alumno se halla con la menor nota int menPromedio=0; float men=p[0]; for(int i=0;i<p.length;i++){ if(men>p[i]){ men=p[i]; menPromedio=i; } } return menPromedio; } private static void promedioAlumno(float[] calif1,float[] calif2,float[] calif3,float[] p) { for ( int i= 0;i<p.length;i++ ){ p[i]=(float) ((calif1[i]+calif2[i]+calif3[i])/3); } } }

Programa 45
Implementar el siguiente programa en java, realizar el siguiente men. Men 1. conjunto A 2.conjunto B 3. Union 4.Interseccion. 5.Diferencia de conjuntos :A-B y B-A 6. salir. Elegir una opccion: Solucin

60

import java.util.Scanner; public class Conjunto { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []a=null; int []b=null; int []y= new int[200]; int []t=new int[200]; int []e=new int[200]; int n=0,m=0,opc; do{ opc=menu(); switch(opc){ case 1:System.out.print("\tingrese la cantidad elementos:"); n=leer.nextInt(); a=new int[n]; leer1(a); break; case 2:System.out.print("\tingrese la cantidad de elementos:"); m=leer.nextInt(); b=new int[m]; leer2(b); break; case 3:System.out.print("\tLA UNION DE CONJUNTOS: "); //por teoria union de conjuntos es : //La interseccin de conjuntos ,conjunto A-B ,conjunto B-A System.out.print(""); inter(a,b,e);//interseccion de conjuntos difere(a,b,t,m); //la diferencia de conjuntos A-B difere1(a,b,y,m);//la diferencia de conjuntos B-A break; case 4:System.out.print("\tLA INTRESECCION DE A y B son : "); System.out.print(""); inter(a,b,e); break; case 5: System.out.println("\tLA DIFERENCIA A - B :"); System.out.print(""); difere(a,b,t,m); System.out.println(""); System.out.println("\tLA DIFERENCIA B- A :"); System.out.print(""); difere1(a,b,y,m); break; case 6:System.out.println("salir"); break; } }while(opc!=6); } private static void leer1(int[] a) { Scanner leer=new Scanner(System.in); System.out.println("\t\t\tConjunto 1"); for(int i=0;i<a.length;i++){ System.out.print("\t\tv["+(i+1)+"]="); a[i]=leer.nextInt(); }}

61

private static void leer2(int[] b) { Scanner leer=new Scanner(System.in); System.out.println("\t\t\tConjunto 2"); for(int i=0;i<b.length;i++){ System.out.print("\t\tv["+(i+1)+"]="); b[i]=leer.nextInt(); } } private static void inter(int[] a, int[] b, int[] e) { int l=0; for(int i=0;i<a.length;i++){ for (int j=0;j<b.length;j++){ if(a[i]==b[j]){ e[l]=a[i]; l++; } } } for(int i=0;i<l;i++){ System.out.print(" "+e[i]); } } private static void difere(int[] a, int[] b, int[] t,int m){//conjunto int d; d=0; for(int i=0;i<a.length;i++){ for (int j=0;j<b.length;j++){ if (b[j]==a[i]){ d++; j=m; } else d=0; } if(d==0){ System.out.print(" "+a[i]); t[i]=a[i]; } } } private static void difere1(int[] a, int[] b, int[] y,int m){ //conjunto B-A int d; d=0; for(int i=0;i<a.length;i++){ for (int j=0;j<b.length;j++){ if (b[i]==a[j]){ d++; j=m; } else d=0;} if(d==0) { System.out.print(" "+b[i]); y[i]=b[i]; } } }

A-B

62

private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(""); System.out.println("\tmenu"); System.out.println("\t1.conjunto A "); System.out.println("\t2.conjunto B"); System.out.println("\t3.union"); System.out.println("\t4.interseccion"); System.out.println("\t5.diferencia"); System.out.println("\t6.salir"); System.out.print("\telegir una opccion :"); op=leer.nextInt(); return op; } }

Programa 46
Implementar un programa en java, utilizar vectores. Men 1. leer el vector A 2. Mostrar el vector A 3. Mostrar la suma de extremos del vector A 4. Mostrar el vector B= (suma de extremos del vector A)/2 5. salir Elegir una opccion: Solucin

import java.util.Scanner; public class vectorSumaExtremo { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []v=null; int opc; int n=0; double []suma=new double[100]; float []b=new float[50]; do{ opc=menu(); switch(opc){ case 1:System.out.println("ingresar la cantidad de vectores: "); n=leer.nextInt(); v=new int[n]; System.out.println("\tleer el vector A"); leer(v); break; case 2:System.out.println("\tMostrar el vector A"); mostrar(v); break; case 3:System.out.println("\tsuma de extremos del vector A"); SumaVectorExtremo(v,n,suma); break;

63

case 4:System.out.println("\t(Suma de extremos del vector A)/2"); mitadsumaextreno(suma,n,b); break; } }while(opc!=5); } private static void leer(int[] v) { Scanner leer=new Scanner(System.in); for(int i=0;i<v.length;i++){ System.out.print("\tA["+(i)+"]="); v[i]=leer.nextInt(); } } private static void mostrar(int[] v) { for (int i = 0; i <v.length; i++) { System.out.println("\tA["+(i)+"]="+v[i]); } } private static void SumaVectorExtremo(int[] v, int n,double[] suma) { int a; a=n/2; for (int i=0;i<a;i++){ suma[i]=v[i]+v[n-(1+i)]; System.out.println("\tA["+(i)+"]="+suma[i]); if (n%2!=0){ suma[a]= v[a]; System.out.println("\tA["+(a)+"]="+suma[a]); } } } private static void mitadsumaextreno(double[] suma,int n,float[] b) { int a; a=n/2; for(int i=0;i<a;i++){ b[i]= (float) (suma[i]/2) ; System.out.println("\tB["+(i)+"]="+b[i]); if(n%2!=0){ b[a]= (float) (suma[a]/2); System.out.println("\tB["+(a)+"]="+b[a]); } } } private static int menu() { Scanner leer=new Scanner(System.in); int op1; System.out.println("MENU"); System.out.println("1.leer el vector A"); System.out.println("2.Mostrar el vector A"); System.out.println("3.Mostrar la suma de extremos del vector A "); System.out.println("4.Mostrar el vector B=(suma de extremos del vector A)/2"); System.out.println("5.salir"); System.out.print("elegir una opccion :"); op1=leer.nextInt(); return op1; } }

64

Programa 47
Implementar un programa en java, utilizar vectores, no muestra el vector sobrante vea su diferencia con el anterior ejercicio. Men 1. leer el vector A 2. Mostrar el vector A 3. Mostrar la suma de extremos del vector A 4. Mostrar el vector B= (suma de extremos del vector A)/2 5. salir Elegir una opccion: Solucin
import java.util.Scanner; public class vectorSumaExtremo { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []v=null; int opc; int n=0; double []suma=new double[100]; float []b=new float[50]; do{ opc=menu(); switch(opc){ case 1:System.out.println("ingresar la cantidad de vectores: "); n=leer.nextInt(); v=new int[n]; System.out.println("\tleer el vector A"); leer(v); break; case 2:System.out.println("\tMostrar el vector A"); mostrar(v); break; case 3:System.out.println("\tsuma de extremos del vector A"); SumaVectorExtremo(v,n,suma); break; case 4:System.out.println("\t(Suma de extremos del vector A)/2"); mitadsumaextreno(suma,n,b); break; } }while(opc!=5); } private static void leer(int[] v) { Scanner leer=new Scanner(System.in); for(int i=0;i<v.length;i++){ System.out.print("\tA["+(i)+"]="); v[i]=leer.nextInt(); } } private static void mostrar(int[] v) { for (int i = 0; i <v.length; i++) { System.out.println("\tA["+(i)+"]="+v[i]); } }

65

private static void SumaVectorExtremo(int[] v, int n,double[] suma) { int a; a=n/2; for (int i=0;i<a;i++){ suma[i]=v[i]+v[n-(1+i)]; System.out.println("\tA["+(i)+"]="+suma[i]); } } private static void mitadsumaextreno(double[] suma,int n,float[] b) { int a; a=n/2; for(int i=0;i<a;i++){ b[i]= (float) (suma[i]/2) ; System.out.println("\tB["+(i)+"]="+b[i]); } } private static int menu() { Scanner leer=new Scanner(System.in); int op1; System.out.println("MENU"); System.out.println("1.leer el vector A"); System.out.println("2.Mostrar el vector A"); System.out.println("3.Mostrar la suma de extremos del vector A "); System.out.println("4.Mostrar el vector B=(suma de extremos del vector A)/2"); System.out.println("5.salir"); System.out.print("elegir una opccion :"); op1=leer.nextInt(); return op1; } }

Programa 48
Implementar el siguiente men en java. Men 1. leer vector A 2. leer vector B 3. sumar vector los vectores A + B 4. multiplicar los vectores A * B 5. mostrar vectores pares de la suma de vectores. 6. mostrar vectores impares de la suma de vectores. 7. .hallar el promedio de la suma de vectores; promedio=suma[i]/cantidad de nmeros vector A. 8 .salir. Elegir una opccion: Solucin

66

import java.util.*; public class operacionvector { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []a=null; int []b=null; double []suma=new double[100]; float []multiplicar=new float[100]; double []promedio=new double[100]; int n=0,m=0,opc; do{ opc=menu(); switch(opc){ case 1: System.out.println("ingresar cantidad numeros del vector A :"); n=leer.nextInt(); a=new int[n]; leer(a); System.out.println("mostrar vector A"); mostrar(a); break; case 2: System.out.println("ingresar cantidad numeros del vector B :"); m=leer.nextInt(); b=new int[m]; leer(b); System.out.println("mostrar vector B"); mostrar(b); break; case 3:System.out.println("sumar vector A+B"); sumarvector(a,b,suma,n); break; case 4:System.out.println("multiplicar vector A*B"); mul(a,b,multiplicar,n); break; case 5:System.out.println("mostrar pares del vector suma"); paresvectorSuma(suma,n); break; case 6:System.out.println("mostrar imapres del vector suma"); imparesvectorSuma(suma,n); break; case 7:promediovectorSuma(suma,promedio,n); break; } }while(opc!=8); } private static void promediovectorSuma(double[] suma, double[] promedio,int n) { for(int i=0;i<n;i++){ promedio[i]=(float) suma[i]/n; System.out.println("\tpromedio["+i+"]="+promedio[i]); } } private static void imparesvectorSuma(double[] suma,int n) { for(int i=0;i<n;i++) if(suma[i]%2!=0){

67

System.out.println("\tv["+(i+1)+"]="+suma[i]); } } private static void paresvectorSuma(double[] suma,int n) { for(int i=0;i<n;i++) if(suma[i]%2==0){ System.out.println("\tv["+(i+1)+"]="+suma[i]); } } private static void mul(int[] a, int[] b, float[] multiplicar, int n) { for(int i=0;i<n;i++){ multiplicar[i]=a[i]*b[i]; System.out.println("\tm["+i+"]="+multiplicar[i]); } } private static void sumarvector(int[] a, int[] b, double[] suma,int n) { for(int i=0;i<n;i++){ suma[i]=a[i]+b[i]; System.out.println("\tvectorSuma["+i+"]="+suma[i]); } } private static void mostrar(int[] a) { for(int i=0;i<a.length;i++){ System.out.println("\tA["+i+"]="+a[i]); } } private static void leer(int[] a) { Scanner leer=new Scanner(System.in); for(int i=0;i<a.length;i++){ System.out.print("\tA["+i+"]="); a[i]=leer.nextInt(); } } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.leer el vector A"); System.out.println("2.leer el vector B"); System.out.println("3.sumar vector los vectores A + B"); System.out.println("4.multiplicar los vectores A * B"); System.out.println("5.mostrar vectores pares de la suma de vectores."); System.out.println("6.mostrar vectores impares de la suma de vectores."); System.out.println("7.hallar el promedio de la suma de vectores : promedio=suma[i]/cantidad de numeros vector A"); System.out.println("8.salir"); System.out.print("elegir una opccion :"); op=leer.nextInt(); return op; } }

68

EJERCICIOS RESUELTOS CON MATRICES Programa 49


Implementar el siguiente men en java. Men 1. leer una matriz 2. mostrar la matriz 3. mostrar la matriz transpuesta 4. mostrar la submatriz 5. salir Elegir una opcin: Solucin
import java.util.*; public class Matriz2 { public static void main(String[] args) { Scanner leer = new Scanner(System.in); int [][]m1= new int[100][100]; int f=0, c=0,opc; do{ opc=menu(); switch(opc){ case 1: System.out.print("Ingrese filas: "); f= leer.nextInt(); System.out.print("Ingese columnas: "); c=leer.nextInt(); System.out.println("\tleer matriz1 "); leerMatriz(m1,f,c); break; case 2: System.out.println("\tmostrar matriz1 "); mostrarMatriz(m1,f,c); break; case 3:System.out.println("\tmostrar matriz1 transpuesta"); MatrizTranspuesta(m1,f,c); break; case 4:System.out.println("\tmostrar la submatriz de matriz1"); mostrarSubmatriz(m1,f,c); break; } }while(opc!=5); } private static int menu() { Scanner leer = new Scanner(System.in); int op; System.out.println(); System.out.println("MENU"); System.out.println("1.leer una matriz "); System.out.println("2.mostrar la matriz "); System.out.println("3.mostrar la matriz transpuesta"); System.out.println("4.mostrar la submatriz "); System.out.println("5.salir"); System.out.print("elegir una opcion:"); op=leer.nextInt();

69

return op; } private static void leerMatriz(int[][] m1, int f, int c) { Scanner leer = new Scanner(System.in); for(int i=0; i<f;i++){ for(int j=0; j<c;j++){ System.out.print("\tm1["+(i+1)+"]["+(i+1)+"]:"); m1[i][j]=leer.nextInt(); } } } private static void mostrarMatriz(int[][] m1, int f, int c) { for(int i=0; i<f;i++){ for(int j=0; j<c;j++){ System.out.print(+m1[i][j]+"\t"); } System.out.println(""); } } private static void MatrizTranspuesta(int[][] m1,int f, int c) { for(int i=0; i<c;i++){ for(int j=0; j<f;j++){ System.out.print("\t"+m1[j][i]); } System.out.println(""); } } private static void mostrarSubmatriz(int[][] m1, int f, int c) { for(int i=0; i<f-1;i++){ for(int j=0; j<c-1;j++){ System.out.print("\t"+m1[i][j]); } System.out.println(""); } } }

Programa 50
Desarrollar el siguiente programa en java ,leer una matriz y mostrar la matriz, encontrar el mayor nmero de la matriz y el menor nmero de la matriz ; encontrar los nmeros pares e impares de la matriz , ordenar fila de la matriz descendentemente y ordena columna de la matriz descendentemente todo implementar con funciones desde el main. solucion
import java.util.Scanner; public class Matriz1 { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int [][]m1=new int[100][100]; int f,c; System.out.println("ingresar las columnas:"); c=leer.nextInt(); System.out.println("ingresar las filas:"); f=leer.nextInt(); leer(m1,f,c); //nota si fuera matriz cuadrada es: f,c=ord ; leer(m1,ord); ord=ingresar la matriz cuadrada. System.out.println("Matriz :");

70

mostrar(m1,f,c); System.out.println("mayor numero de la matriz :" +mayorMatriz(m1,f,c)); System.out.println("menor numero de la matriz :" +menorMatriz(m1,f,c)); System.out.println("numeros pares de la matriz"); par(m1,f,c); System.out.println("numeros impares de la matriz"); impar(m1,f,c); System.out.println("ordena fila de matriz descendentemente"); ordenaFila(m1,f,c); System.out.println("Matriz 1:"); mostrar(m1,f,c); System.out.println("ordena columna de matriz descendentemente"); ordenaColumna(m1,f,c); System.out.println("Matriz 1:"); mostrar(m1,f,c); } private static void leer(int[][] m1,int f,int c) { Scanner leer = new Scanner(System.in); for(int i = 0; i <f; i++) { for (int j = 0; j <c; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m1[i][j]=leer.nextInt(); } } } private static void mostrar(int[][] m1,int f,int c) { for(int i = 0; i <f; i++) { for (int j = 0; j <c; j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(" "); } } private static int mayorMatriz(int[][] m1, int f, int c) { int may=m1[0][0]; for(int i=0;i<f;i++) for(int j=0;j<c;j++) if(may<m1[i][j]){ may=m1[i][j]; } return may; } private static int menorMatriz(int[][] m1, int f, int c) { int men=m1[0][0]; for(int i=0;i<f;i++) for(int j=0;j<c;j++) if(men>m1[i][j]){ men=m1[i][j]; } return men; } private static void par(int[][] m1, int f, int c) { for(int i=0;i<f;i++){ for(int j=0;j<c;j++){ if(m1[i][j]%2==0){ System.out.println("\t"+m1[i][j]); } }

71

} } private static void impar(int[][] m1, int f, int c) { for(int i=0;i<f;i++){ for(int j=0;j<c;j++){ if(m1[i][j]%2!=0){ System.out.println("\t"+m1[i][j]); } } } } private static void ordenaFila(int[][] m1,int f,int c) { int aux; for (int i = 0; i<m1.length; i++) for (int j = 0; j <m1.length-1; j++) //metodo de burbuja for(int k=j+1;k<m1.length;k++) //metodo de burbuja if(m1[i][j]<m1[i][k]){// < ordena descendentemente aux=m1[i][j]; m1[i][j]=m1[i][k]; m1[i][k]=aux; } } private static void ordenaColumna(int[][] m1,int f,int c) { int aux; for (int i = 0; i<m1.length; i++) for (int j = 0; j <m1.length-1; j++) //metodo de burbuja for(int k=j+1;k<m1.length;k++) //metodo de burbuja if(m1[j][i]<m1[k][i]){// < ordena descendentemente aux=m1[j][i]; m1[j][i]=m1[k][i]; m1[k][i]=aux; } } }

Programa 51
Realizar el siguiente men en java. Para una matriz cuadrada. Men 1. leer la primera matriz 2. leer la segunda matriz 3. mostrar la suma de dos matrices cuadradas 4. multiplicar dos matrices cuadradas 5. salir Elegir una opcin: Solucion
import java.util.Scanner; public class MatrizCuadrada { public static void main(String[] args) { Scanner br = new Scanner(System.in); int [][]m1=null; int [][]m2=null; int [][]suma=null; int [][]multiplica=null; int opc,ord=0; do{

72

opc=menu(); switch(opc){ case 1: System.out.print("ingresar una matriz de orden cuadrada:"); ord=br.nextInt(); m1=new int [ord][ord];; m2=new int [ord][ord];; suma= new int [ord][ord]; multiplica=new int[ord][ord]; System.out.println("\tleer matriz 1"); leer1(m1,ord); System.out.println("\tmostrar la matris 1"); mostrar1(m1,ord); break; case 2:System.out.println("\tleer matriz 2"); leer2(m2,ord); System.out.println("\tmostrar la matris 2"); mostrar2(m2,ord); break; case 3:System.out.print("\tla suma de dos matrices son"); sumaM(m1,m2,suma); System.out.println("\t"); mostrarsuma(suma); break; case 4: System.out.println("multiplicar la matriz cuadrada"); matrizMultiplica(m1,m2,ord,multiplica); mostrarMultiplicacion(multiplica); break; } }while(opc!=5); } public static void leer1(int[][] m1, int ord) { Scanner br = new Scanner(System.in); for(int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m1[i][j]=br.nextInt(); } } } public static void leer2(int[][] m2, int ord) { Scanner br = new Scanner(System.in); for(int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m2[i][j]=br.nextInt(); } } } private static void mostrar1(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print(m1[i][j]+"\t"); }

73

System.out.println(); } } private static void mostrar2(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(); } } public static void sumaM(int[][] m1, int[][] m2, int[][] suma) { for(int i=0;i<suma.length;i++){ for(int j=0;j<suma[i].length;j++){ suma[i][j]=m1[i][j]+m2[i][j]; } } } private static void mostrarsuma(int[][] suma) { for (int i = 0; i <suma.length; i++) { for (int j = 0; j <suma[i].length; j++) { System.out.print(suma[i][j]+"\t "); } System.out.println(" "); } } private static void matrizMultiplica(int[][] m1, int[][] m2, int ord,int[][] multiplica) { for (int i = 0; i <multiplica.length; i++) { for (int j = 0; j <multiplica[i].length; j++) { multiplica[i][j]=0; for(int k=0;k<ord;k++){ multiplica[i][j]=multiplica[i][j]+(m1[i][k]*m2[k][j]); } } } } private static void mostrarMultiplicacion(int[][] multiplica) { for (int i = 0; i <multiplica.length; i++) { for (int j = 0; j <multiplica[i].length; j++) { System.out.print(multiplica[i][j]+"\t "); } System.out.println(" "); } } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.leer la primera matriz "); System.out.println("2.leer la segunda matris "); System.out.println("3.mostrar la suma de dos matrices "); System.out.println("4.multiplicar dos matrices cuardradas"); System.out.println("5.salir"); System.out.println("elegir una opccion : "); op=leer.nextInt(); return op; } }

74

Programa 52
Implenetar el siguiente men para las matrices de orden cuadrada. Men 1. leer la primera matriz. 2. leer la segunda matriz. 3. mostrar las suma de dos matrices. 4. mostrar la diagonal principal de la primera matriz 5. mostrar la diagonal principal de la segunda matriz. 6. mostrar la diagonal principal de la suma de dos matrices. 7. salir. Elegir una opcin: Solucin.
import java.util.Scanner; public class OperacioneMatrizCuarada { public static void main(String[] args) { Scanner br = new Scanner(System.in); int [][]m1=null; int [][]m2=null; int [][]suma=null; int []filas=null; int []cols=null; int opc,ord=0; do{ opc=menu(); switch(opc){ case 1: System.out.print("ingresar una matriz de orden cuadrada:"); ord=br.nextInt(); m1=new int [ord][ord];; m2=new int [ord][ord];; suma= new int [ord][ord]; filas= new int [ord]; cols= new int [ord]; System.out.println("\tleer matriz 1"); leer1(m1,ord); System.out.println("\tmostrar la matris 1"); mostrar1(m1,ord); break; case 2:System.out.println("\tleer matriz 2"); leer2(m2,ord); System.out.println("\tmostrar la matris 2"); mostrar2(m2,ord); break; case 3:System.out.print("\tla suma de dos matrices son"); sumaM(m1,m2,suma); System.out.println("\t"); mostrarsuma(suma); break; case 4: System.out.println("matriz 1"); sumard(m1,m2,ord,cols,filas); break; case 5: System.out.println("matriz 2");

75

sumard1(m1,m2,ord,cols,filas); break; case 6:System.out.println("mostrar "); dprincipal(suma); break; } }while(opc!=7); } public static void leer1(int[][] m1, int ord) { Scanner br = new Scanner(System.in); for(int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m1[i][j]=br.nextInt(); } } } public static void leer2(int[][] m2, int ord) { Scanner br = new Scanner(System.in); for(int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m2[i][j]=br.nextInt(); } } } private static void mostrar1(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(); } } private static void mostrar2(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(); } } public static void sumaM(int[][] m1, int[][] m2, int[][] suma) { for(int i=0;i<suma.length;i++){ for(int j=0;j<suma[i].length;j++){ suma[i][j]=m1[i][j]+m2[i][j]; } } } private static void mostrarsuma(int[][] suma) { for (int i = 0; i <suma.length; i++) { for (int j = 0; j <suma[i].length; j++) { System.out.print(suma[i][j]+"\t "); } System.out.println(" "); } }

76

public static void sumard(int[][] m1, int[][] m2, int ord, int[] cols,int[] filas) { int dp=0; for(int i=0;i<ord;i++) for(int j=0;j<ord;j++){ filas[i]=filas[i]+m1[i][j]; cols[j]=cols[j]+m1[i][j]; if(i==j) dp=dp+m1[i][j]; } System.out.println("\t mostrar diagonal principal de la primera matriz :"+dp); } public static void sumard1(int[][] m1, int[][] m2, int ord, int[] cols,int[] filas) { int dp=0; for(int i=0;i<ord;i++) for(int j=0;j<ord;j++){ filas[i]=filas[i]+m2[i][j]; cols[j]=cols[j]+m2[i][j]; if(i==j) dp=dp+m2[i][j]; } System.out.println("\t mostrar diagonal principal de la segunda matriz :"+dp); } private static void dprincipal(int[][] suma) { int sumaDiagonal=0; System.out.println(); for (int i = 0; i < suma.length; i++) { for (int j = 0; j < suma[i].length; j++) { if (i==j) { sumaDiagonal+=suma[i][j]; } } } System.out.println("diagonal principal de suma de dos matrices: "+sumaDiagonal); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.leer la primera matriz "); System.out.println("2.leer la segunda matris "); System.out.println("3.mostrar la suma de dos matrices "); System.out.println("4.mostrar diagonal principal de la primera matriz "); System.out.println("5.mostrar diagonal principal de la segunda matriz "); System.out.println("6.mostrar la diaghonal principal de la suma de dos matrices"); System.out.println("7.salir"); System.out.println("elegir una opccion : "); op=leer.nextInt(); return op; } }

77

Programa 53
Implementar un programa en java que permita generar la siguiente matriz. Ingresar las columnas: 5 Ingresar las filas: 4 Mostrar la matriz:

1 2 3 4 Solucin

5 6 7 8

9 10 11 12

13 14 15 16

17 18 19 20

import java.util.Scanner; public class GeneraMatrizOrdenada { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int [][]matriz=new int[100][100]; int f,c; System.out.println("ingresar las columnas:"); c=leer.nextInt(); System.out.println("ingresar las filas:"); f=leer.nextInt(); leer(matriz,f,c); } private static void leer(int[][] matriz, int f, int c) { int aux=0; //int[][] m1=new int[100][100]; for(int i=0;i<f;i++){//inicia llaves int j = 0; if (j==0){ for(int k=0;k<c;k++){ aux++; matriz[k][i]=aux; } } else{ for(int k=0;k>=0;k--){ matriz[k][i]=aux; aux++;} j=0; aux--; } }//termina llaves System.out.println("mostrar la matrzi:\n "); for(int i=0;i<c;i++){ System.out.print("\n"); for(int e=0;e<f;e++){ System.out.print(" \t "+matriz[i][e]); } } } }

78

Programa 54
Implementar el siguiente men en java, desarrollar el siguiente men para una matriz de orden cuadrada. Implementa con funciones el siguiente men desde el main . Men 1. leer una matriz 2. Mostrar la matriz 3. Mostrar nmeros pares de una matriz 4. Mostrar nmeros impares de una matriz 5. Mostrar diagonal principal de la matriz 6. Mostrar diagonal secundaria de la matriz 7. Mostrar los nmeros mayores de las filas de una matriz 8. Mostrar los nmeros mayores de las columnas de una matriz 9. ordenar filas matrices 10. ordena columnas matrices 11. salir. Elegir una opcin: Solucin
import java.util.Scanner; public class SumaMatriz { public static void main(String[] args) { Scanner br = new Scanner(System.in); int [][]m1=null; int []filas=null; int []cols=null; int []mayf=new int[200]; int []mayc=new int[200]; int opc,ord=0; do{ opc=menu(); switch(opc){ case 1: System.out.print("ingresar una matriz de orden cuadrada:"); ord=br.nextInt(); m1=new int [ord][ord];; filas= new int [ord]; cols= new int [ord]; System.out.println("\tleer matriz 1"); leer1(m1,ord); break; case 2:System.out.println("\tmostrar la matris 1"); mostrar1(m1,ord); break; case 3:System.out.println("los numeros pares de una matriz son:"); par(m1,ord); break; case 4: System.out.println("los numeros impares de una matriz son:"); impar(m1,ord); break; case 5:System.out.println("matriz 1"); dpMatriz(m1,ord,cols,filas); break; case 6:dsMatriz(m1,ord,cols,filas);

79

break; case 7:mayFila(m1,ord,mayf); System.out.println("\t el mayor de filas"); for(int k=0;k<ord;k++) System.out.println("\t"+mayf[k]); break; case 8:mayCols(m1,ord,mayc); System.out.println("\t el mayor de columnas"); for(int k=0;k<ord;k++) //i:no representa filas ni columnas , System.out.println("\t"+mayc[k]); break; case 9:System.out.println("\t ordena filas de la matriz descendentemente"); ordenaFila(m1,ord); mostrar1(m1,ord); break; case 10:System.out.println("\t ordena columnas de la matriz descendentemente"); ordenaCols(m1,ord); mostrar1(m1,ord); break; } }while(opc!=11); } private static void ordenaCols(int[][] m1, int ord) { int aux; for (int i = 0; i<ord; i++) for (int j = 0; j <ord-1; j++) //metodo de burbuja for(int k=j+1;k<ord;k++) //metodo de burbuja if(m1[j][i]<m1[k][i]){// < ordena descendentemente aux=m1[j][i]; m1[j][i]=m1[k][i]; m1[k][i]=aux; } } private static void ordenaFila(int[][] m1, int ord) { int aux; for (int i = 0; i<ord; i++) for (int j = 0; j <ord-1; j++) //metodo de burbuja for(int k=j+1;k<ord;k++) //metodo de burbuja if(m1[i][j]<m1[i][k]){// < ordena descendentemente aux=m1[i][j]; m1[i][j]=m1[i][k]; m1[i][k]=aux; } } private static void mayCols(int[][] m1, int ord, int[] mayc) { for(int k=0;k<ord;k++) //k:es variable de este bucle mayc[k]=m1[0][k]; for(int i=1;i<ord;i++)//i:representa las filas for(int j=0;j<ord;j++){//j:reprenta las columnas if(mayc[j]<m1[i][j]) mayc[j]=m1[i][j]; }} private static void mayFila(int[][] m1, int ord, int[] mayf) { for(int k=0;k<ord;k++) //k:es variable de este bucle

80

mayf[k]=m1[k][0]; for(int i=0;i<ord;i++) for(int j=1;j<ord;j++){ if(mayf[i]<m1[i][j]) mayf[i]=m1[i][j]; } } private static void dsMatriz(int[][] m1, int ord, int[] cols, int[] filas){ int ds=0; for(int i=0;i<ord;i++) //i:son las filas , j:son las columnas for(int j=0;j<ord;j++){ filas[i]=filas[i]+m1[i][j]; cols[j]=cols[j]+m1[i][j]; if(i+j==ord-1) ds=ds+m1[i][j]; } System.out.println("\t diagonal secundaria de la matriz es :"+ds); } private static void impar(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { if(m1[i][j]%2!=0) System.out.println("\t"+m1[i][j]); } } } private static void par(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { if(m1[i][j]%2==0) System.out.println("\t"+m1[i][j]); } } } public static void leer1(int[][] m1, int ord) { Scanner br = new Scanner(System.in); for(int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m1[i][j]=br.nextInt(); } } } private static void mostrar1(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(); } } public static void dpMatriz(int[][] m1, int ord, int[] cols,int[] filas) { int dp=0; for(int i=0;i<ord;i++) for(int j=0;j<ord;j++){

81

filas[i]=filas[i]+m1[i][j]; cols[j]=cols[j]+m1[i][j]; if(i==j) dp=dp+m1[i][j]; } System.out.println("\t ladiagonal principal de la matriz es :"+dp); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.leer una matriz "); System.out.println("2.mostrar la matriz"); System.out.println("3.numeros pares de una matriz "); System.out.println("4.numeros impares de una matriz"); System.out.println("5.diagonal principal de la matriz"); System.out.println("6.diagonal secundaria de la matriz"); System.out.println("7.mostrar los numeros mayores de las filas de una matriz"); System.out.println("8.mostrar los numeros mayores de las columnas de una matriz"); System.out.println("9.ordenar filas matriz"); System.out.println("10.ordena columnas matriz"); System.out.println("11.salir"); System.out.print("elegir una opccion :"); op=leer.nextInt(); return op; } }

Programa 55
Desarrollar el siguiente men en java implementar con funciones el men desde main. Men 1. leer una matriz 2. mayor suma de filas 3. menor suma de filas 4. mayor suma de columnas 5. menor suma de columnas 6. salir Elegir una opcin: Solucin
*/ import java.util.Scanner; public class Examen { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int [][]m1=new int[100][100]; int f=0,c=0,opc; int []sumaFila=new int[100]; int []sumaColumna=new int[100]; do{ opc=menu(); switch(opc){ case 1: System.out.println("ingreese el numero de filas :"); f=leer.nextInt(); System.out.println("ingreese el numero de columnas :");

82

c=leer.nextInt(); System.out.println("leer la matriz 1:"); leer(m1,f,c); mostrar(m1,f,c); break; case 2: sumaFilaMatriz(m1,f,c,sumaFila);//maysf=la mayor suma de filas System.out.println("\nel mayor de suma de filas"); maySf(sumaFila,f,c);//mostrar el mayor de suma de filas break; case 3: System.out.println("\nel menor de suma de filas"); menSf(sumaFila,f,c);//mostrar el menor de suma de filas break; case 4: sumaColumnaMatriz(m1,f,c,sumaColumna);//maysf=la mayor suma de columna System.out.println("\nel mayor de suma de columnas"); maySc(sumaColumna,f,c);//mostrar el mayor de suma de columnas break; case 5: System.out.println("\nel menor de suma de columnas"); menSc(sumaColumna,f,c);//mostrar el menor de suma de columnas break; } }while(opc!=6); } private static void leer(int[][] m1, int f, int c) { Scanner leer=new Scanner(System.in); for(int i=0;i<f;i++){ for(int j=0;j<c;j++){ System.out.print("v["+(i+1)+"]["+(j+1)+"]="); m1[i][j]=leer.nextInt(); } } } private static void mostrar(int[][] m1, int f, int c) { for(int i=0;i<f;i++){ for(int j=0;j<c;j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(""); } } private static void sumaFilaMatriz(int[][] m1, int f, int c, int[] sumaFila) { for(int i=0;i<f;i++) { int suma=0; for(int j=0;j<c;j++){ suma=suma +m1[i][j]; } sumaFila[i]=suma; } } private static void maySf(int[] sumaFila, int f,int c) { int mayor,contador=0; mayor=sumaFila[0]; for(int i=0;i<f;i++){ for(int j=0;j<c;j++){ if(mayor<sumaFila[i]){ mayor=sumaFila[i];

83

contador=i; } } } System.out.println(" el mayor suma de las filas es : " +mayor+" y esta en la posicion " +(contador+1)); } private static void menSf(int[] sumaFila, int f, int c) { int menor,contador=0; menor=sumaFila[0]; for(int i=0;i<f;i++){ for(int j=0;j<c;j++){ if(menor>sumaFila[i]){ menor=sumaFila[i]; contador=i; } } } System.out.println(" el menor suma de las filas es : " +menor+" y esta en la posicion " +(contador+1)); } private static void sumaColumnaMatriz(int[][] m1, int f, int c,int[] sumaColumna) { for(int j=0;j<c;j++) { int suma=0; for(int i=0;i<f;i++){ suma=suma +m1[i][j]; } sumaColumna[j]=suma; } } private static void maySc(int[] sumaColumna, int f, int c) { int mayor,contador=0; mayor=sumaColumna[0]; for(int i=0;i<f;i++){ for(int j=0;j<c;j++){ if(mayor<sumaColumna[j]){ mayor=sumaColumna[j]; contador=j; } } } System.out.println(" el mayor suma de las columnas es : " +mayor+" y esta en la posicion " +(contador+1)); } private static void menSc(int[] sumaColumna, int f, int c) { int menor,contador=0; menor=sumaColumna[0]; for(int i=0;i<f;i++){ for(int j=0;j<c;j++){ if(menor>sumaColumna[j]){ menor=sumaColumna[j]; contador=j; } } } System.out.println(" el menor suma de las columnas es : " +menor+" y esta en la posicion " +(contador+1)); }

84

private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.leer una matriz"); System.out.println("2.mayor suma de filas"); System.out.println("3.menor suma de filas"); System.out.println("4.mayor suma de columnas"); System.out.println("5.menor suma de columnas"); System.out.println("6.salir"); System.out.println("elegir una opccion :"); op=leer.nextInt(); return op; } }

Programa 56
Desarrollar el siguiente men en java implementar con funciones el men desde main. Men 1. leer una matriz 2. mostrar la matriz 3. Intercambiar la primera columna y ltima columna de una matriz 4. Intercambiar la primera fila y ltima fila de una matriz 5. salir Elegir una opcin: Solucin.
import java.util.Scanner; public class matrizA { public static void main(String[] args) { Scanner leer = new Scanner(System.in); int m1[][]= new int[10][10]; int f=0,c=0,opc; do{ opc=menu(); switch(opc){ case 1: System.out.print("Ingrese filas: ");//FILAS f=leer.nextInt(); System.out.print("Ingese columnas: ");//COLUMNAS c=leer.nextInt(); leerMatriz(m1,f,c); break; case 2:System.out.println("\tmostrar la matriz "); mostrarMatriz(m1,f,c); break; case 3:System.out.println("intercambia primera columna y ultima columna"); IntercambiarColumnas(m1,f,c); mostrarMatriz(m1,f,c); break; case 4:System.out.println("intercambia primera fila y ultima fila"); IntercambiarFilas(m1,f,c); mostrarMatriz(m1,f,c); break;

85

} }while(opc!=5); System.out.print("fin del programa");} private static void leerMatriz(int[][] m1, int f, int c) { Scanner leer = new Scanner(System.in); for(int i=0; i<f;i++){ for(int j=0; j<c;j++){ System.out.print("\tm1["+(i+1)+"]["+(i+1)+"]:"); m1[i][j]=leer.nextInt(); } } } private static void mostrarMatriz(int[][] m1, int f, int c) { for(int i=0; i<f;i++){ for(int j=0; j<c;j++){ System.out.print("\t"+m1[i][j]); } System.out.println(); } } private static void IntercambiarColumnas(int[][] m1, int f, int c) { int []variabletemp=new int[1]; variabletemp[0]=0; for(int i=0;i<f;i++){ variabletemp[0]=m1[i][0]; m1[i][0]=m1[i][c-1]; m1[i][c-1]=variabletemp[0]; } } private static void IntercambiarFilas(int[][] m1, int f, int c) { int []variabletemp=new int[1]; variabletemp[0]=0; for(int j=0;j<c;j++){ variabletemp[0]=m1[0][j]; m1[0][j]=m1[f-1][j]; m1[f-1][j]=variabletemp[0]; } } private static int menu() { Scanner leer = new Scanner(System.in); int op; System.out.println("MENU"); System.out.println("1.leer una matriz "); System.out.println("2.mostrar la matriz"); System.out.println("3.intercambiar primera y ultima columna"); System.out.println("4.intercambiar primera y ultima fila"); System.out.println("5.salir"); System.out.print("elegir una opcion:"); op=leer.nextInt(); return op; } }

86

EJERCICIOS RESUELTOS CON LOS METODOS DE ORDENAMIENTO DE UN VECTOR Programa 57


Los mtodos de ordenamiento de un vector .Leer un vector, mostrar el vector, buscar el vector de manera secuencial con recursividad, Buscar el vector de manera binaria, Ordenar el vector con la Burbuja, Ordena el vector con el mtodo de seleccin, Ordena el vector con el mtodo de insercin, Ordena el vector con el mtodo de Shell, Ordena el vector con el mtodo de QuierSort .Todo implementar con funciones desde en main. Solucin
import java.util.Scanner; public class MetodosOrdamientos { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []v=null; int n; System.out.println("\ningresar la cantidad de vectores: "); n=leer.nextInt(); v=new int[n]; leer(v); System.out.println("\nmostrar vector"); mostrar(v); //BUSQUEDA SECUENCIAL DE MANERA RECURSIVA int indice; int clave; //clave=buscar System.out.print(" vector a buscar:"); clave=leer.nextInt(); indice=buscarVector(v,n,clave); if(indice==-1) System.out.println("el vector no se ecuentra en la lista"); else System.out.println("el vector si se encuentra en la lista"); //FIN DE LA BUSQUEDA SECUENCIAL System.out.println("\tbusqueda binaria"); //BUSQUEDA BINARIA System.out.print("\n\tElemento a buscar: "); int buscar=leer.nextInt(); busquedaBinaria(v,buscar); //LOS METODOS DE ORDENACION System.out.println("ordenar vector con la burbuja"); System.out.println(""); Burbuja(v,n); mostrar(v); System.out.println("ordenar vector con el metodo de seleccion"); System.out.println(""); Seleccion(v,n); mostrar(v); System.out.println("ordenar vector con el metodo de Inserccion"); System.out.println(""); Insercion(v,n); mostrar(v);

87

System.out.println("ordenar vector con el metodo de shell"); System.out.println(""); Shell(v,n); mostrar(v); System.out.println("ordenar vector con el metodo de QuierSort Descendentemente"); System.out.println(""); QuierSort(v,0,n-1); mostrar(v); } private static void leer(int[] v) {//LEER UN VECTOR Scanner leer=new Scanner(System.in); for(int i=0;i<v.length;i++){ System.out.print("\tv["+(i+1)+"]="); v[i]=leer.nextInt(); } } private static void mostrar(int[] v) {//MOSTRAR EL VECTOR for (int i = 0; i <v.length; i++) { System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static int buscarVector(int[] v, int n, int clave) {//BUSCAR EL VECTOR DE MANEROA SECUENCIAL CON RECURSIVIDAD for(int i=0;i<n;i++) if(v[i]==clave) return 1; return -1; } private static void busquedaBinaria(int[] v, int buscar) { int inicio=0; int fin=v.length-1; int centro=(inicio+fin)/2; while(inicio<=fin && v[centro]!=buscar){ if(buscar<v[centro]){ fin=centro-1; } else{ inicio=centro+1; } centro=(inicio+fin)/2; } if(v[centro]==buscar){ System.out.println("\nElemento encontrado en la posicion: "+(centro+1)+"\n"); } else{ System.out.println("\nElemento no encontrado\n"); } } private static void Burbuja(int[] v, int n) {//ORDENAR EL VECTOR CON LA BURBUJA for (int i = 0; i <n-1; i++) for (int j = i+1; j <n; j++) if (v[i]>v[j]) { int aux =v[i];

88

v[i]=v[j]; v[j]=aux; } } private static void Seleccion(int[] v, int n) {//ORDENAR EL VECTOR POR METODO DE SELECCION int indiceMenor; for (int i = 0; i < n-1; i++) { indiceMenor=i; for (int j = i+1; j < n; j++) if (v[j]<v[indiceMenor]) indiceMenor=j; if (i!=indiceMenor) { int aux=v[i]; v[i]=v[indiceMenor]; v[indiceMenor]=aux; } } } private static void Insercion(int[] v, int n) {//ORDENAR EL VECTOR POR METODO DE INSERCCION int aux,j; for (int i = 1; i <n; i++) { // indices aux=v[i]; j=i; while(j>0 && aux <v[j-1]){ v[j]=v[j-1]; j--; } v[j]=aux; } } private static void Shell(int[] v, int n) {//ORDENAR EL VECTOR POR METODO DE SHELL int intervalo ,i,j,k;// indices intervalo=n/2; while(intervalo >0){ for (i = intervalo ; i < n; i++) { j=i- intervalo; while(j>=0){ k=j + intervalo; if(v[j]<v[k]) j=-1; else{ int aux =v[j]; v[j]=v[k]; v[k]=aux; j=j -intervalo; } } } intervalo=intervalo/2; } } private static void QuierSort(int[] v, int primer, int ultimo) {//ORDENAR EL VECTOR POR METODO DE QUIERSORT int central, pivote,i,j; central =(primer+ ultimo)/2; pivote =v [central]; i=primer;

89

j=ultimo; do{ while(v[i]>pivote)i++; while (v[j]<pivote)j--; if(i<=j){ int aux =v[i]; v[i]=v[j]; v[j]=aux; i++; j--; } }while(i<=j); if(i<ultimo) QuierSort(v,i,ultimo); if(j>primer) QuierSort(v,j,primer); } }

Programa 58
Implementar el siguiente men java Men 1. Leer el vector 2. Mostrar el vector 3. ordenar vector por QuierSort descendentemente 4. ordenar vector por QuierSort ascendentemente. 5. Salir Elegir una opcin: Solucin
import java.util.Scanner; public class menu { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []v=null; int n = 0,opc; do{ opc=menu(); switch(opc){ case 1: System.out.print("\tIngresa la cantidad de vectores: "); n=leer.nextInt(); v=new int[n]; leer(v); break; case 2: System.out.println("\tmostrar vector"); mostrar(v); break; case 3: System.out.println("\tOrdenar vector por QuierSort descendentemente"); QuierSort1(v,0,n-1); mostrar(v); break; case 4:System.out.println("\tordenar vector por QuierSort ascendentemente"); QuierSort2(v,0,n-1); mostrar(v);

90

break; } }while(opc!=5); } private static void leer(int[] v) { Scanner leer=new Scanner(System.in); for (int i = 0; i <v.length; i++) { System.out.print("\tv["+(i+1)+"]="); v[i]=leer.nextInt(); } } private static void mostrar(int[] v) { for (int i = 0; i <v.length; i++) { System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void QuierSort1(int[] v, int primer, int ultimo) { int central, pivote,i,j; central =(primer+ ultimo)/2; pivote =v[central]; i=primer; j=ultimo; do{ while(v[i]>pivote)i++;//Ordenar vector por QuierSort descendentemente while (v[j]<pivote)j--;//Ordenar vector por QuierSort descendentemente if(i<=j){ int aux =v[i]; v[i]=v[j]; v[j]=aux; i++; j--; } }while(i<=j); if(i<ultimo) QuierSort1(v,i,ultimo); if(j>primer) QuierSort1(v,j,primer); } private static void QuierSort2(int[] v, int primer, int ultimo) { int central, pivote,i,j; central =(primer+ ultimo)/2; pivote =v[central]; i=primer; j=ultimo; do{ while(v[i]<pivote)i++;//Ordenar vector por QuierSort ascendenmente while (v[j]>pivote)j--;//Ordenar vector por QuierSort ascendentemente if(i<=j){ int aux =v[i]; v[i]=v[j]; v[j]=aux; i++; j--; } }while(i<=j); if(i<ultimo)

91

QuierSort2(v,i,ultimo); if(j>primer) QuierSort2(v,j,primer); } private static int menu(){ Scanner leer=new Scanner(System.in); int op; System.out.println("\tmenu"); System.out.println("\t1.Leer el vector"); System.out.println("\t2.Mostrar el vector"); System.out.println("\t3.ordenar vector por QuierSort descendentemente"); System.out.println("\t4.ordenar vector por QuierSort descendentemente"); System.out.println("\t5.salir"); System.out.print("\telegir una opccion :"); op=leer.nextInt(); return op; } }

Programa 59
Implementar las siguientes funciones en java desde el main. -Leer un vector y mostrar el vector. -Mostrar vectores pares e impares con funciones -Ordenar vector pares por quiersort descendentemente -Ordenar vector impar por quiersort descendentemente Solucin
import java.util.*; public class Ordenar { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int n; System.out.print("\tIngresa la cantidad de vectores: "); n=leer.nextInt(); int []v=new int[n]; leer(v); System.out.println("\tmostrar vector"); mostrar(v); System.out.println("\tmostrar vector pares"); MostrarPar(v); System.out.println("\tmostrar vector Impar"); MostrarImpar(v); System.out.println("\tordenar vector pares por quiersort descendentemente"); QuierSort1(v,0,n-1); MostrarPar(v); System.out.println("\tordenar vector impares por quiersort descendentemente"); QuierSort2(v,0,n-1); MostrarImpar(v); } private static void leer(int[] v) { Scanner leer=new Scanner(System.in); for (int i = 0; i <v.length; i++) { System.out.print("\tv["+(i+1)+"]="); v[i]=leer.nextInt();

92

} } private static void mostrar(int[] v) { for (int i = 0; i <v.length; i++) { System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void MostrarPar(int[] v) { for(int i=0;i<v.length;i++) if(v[i]%2==0){ System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void MostrarImpar(int[] v) { for(int i=0;i<v.length;i++) if(v[i]%2!=0){ System.out.println("\tv["+(i+1)+"]="+v[i]); } } private static void QuierSort1(int[] v, int primer, int ultimo) {//ORDENAR PARES DESCENDENTEMENTE int central, pivote,i,j; central =(primer+ ultimo)/2; pivote =v[central]; i=primer; j=ultimo; do{ while(v[i]>pivote)i++; while (v[j]<pivote)j--; if(i<=j){ int aux =v[i]; v[i]=v[j]; v[j]=aux; i++; j--; } }while(i<=j); if(i<ultimo) QuierSort1(v,i,ultimo); if(j>primer) QuierSort1(v,j,primer); } private static void QuierSort2(int[] v, int primer, int ultimo) {//ORDENA IMPARES DESCENDENTEMENTE int central, pivote,i,j; central =(primer+ ultimo)/2; pivote =v[central]; i=primer; j=ultimo; do{ while(v[i]>pivote)i++; while (v[j]<pivote)j--; if(i<=j){ int aux =v[i]; v[i]=v[j]; v[j]=aux; i++; j--; } }while(i<=j);

93

if(i<ultimo) QuierSort2(v,i,ultimo); if(j>primer) QuierSort2(v,j,primer); } }

Programa 60
Se tiene una clase alumnos con los atributos (apellido, nombre, promedio), Se pide implementar una aplicacin que permita: Men 1. registrar alumnos y promedio 2. mostrar lista de alumnos 3. ordenar ascendentemente por apellido (insercin); 4. ordenar descendentemente por promedio (quicksort) 5. buscar la nota de un alumno (bsqueda secuencial) 6. buscar al mejor alumno (bsqueda binaria recursiva) 7. salir Elija una opcin: solucion
public class Alumno { private String apellido; private String nombre; private int promedio; public Alumno(String apellido, String nombre, int promedio) { this.apellido = apellido; this.nombre = nombre; this.promedio = promedio; } public String getApellido() { return apellido; } public void setApellido(String apellido) { this.apellido = apellido; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public int getPromedio() { return promedio; } public void setPromedio(int promedio) { this.promedio = promedio; } public void mostrar(){ System.out.println(this.apellido+" ,"+this.nombre+"----->"+this.promedio); } }

94

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionAlumno { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int opccion,n=0; Alumno[] lista=new Alumno[10]; do{ opccion=menu(); switch(opccion){ case 1: System.out.print("ingresar la cantidad de alumnos :"); n=leer.nextInt(); registrar(lista,n); break; case 2: for(int i=0;i<n;i++) lista[i].mostrar(); break; case 3: ordenarApellido(lista,n); for(int i=0;i<n;i++) lista[i].mostrar(); break; case 4: ordenarpromedio(lista,0,n-1);//quicsork(por criterio,va ser ordenado en forma for(int i=0;i<n;i++) lista[i].mostrar(); break; case 5://BUSQUEDA DE MANERA SECUENCIAL int indice; String clave; System.out.print("Apellido"); clave=leer.next(); indice=buscarPromedio(lista,n,clave); if(indice==-1) System.out.println("no se encontro"); else lista[indice].mostrar(); break; case 6: int clave1=mayor(lista,n); int indice1=buscaMejor(lista,0,n1,clave1);//busqueda binaria; lista[indice1].mostrar(); break; } }while(opccion!=7); } private static int buscaMejor(Alumno[] lista, int inferior, int superior, int mayor) {//busqueda binaria creada con objetos int central,elementocentral; central=(inferior+superior)/2; elementocentral=lista[central].getPromedio();

95

if(mayor==elementocentral) return central; else if(mayor>elementocentral) return buscaMejor(lista,central+1,superior,mayor); else return buscaMejor(lista,inferior,central-1,mayor); } private static int mayor(Alumno[] lista, int n) { int mayor=lista[0].getPromedio(); for(int i=0;i<n;i++) if(mayor<lista[i].getPromedio()) mayor=lista[i].getPromedio(); return mayor; } private static int buscarPromedio(Alumno[] lista, int n, String clave) {//busqueda secuencial for(int i=0;i<n;i++) if(clave.equals(lista[i].getApellido())) return 1; return -1; } private static void ordenarpromedio(Alumno[] lista, int primer, int ultimo) {//pivote sirve para comparar comparar los elemtos int pivote,i,j,central; central=(primer+ultimo)/2; pivote=lista[central].getPromedio(); i=primer; j=ultimo; do{ while(lista[i].getPromedio()>pivote) i++; while(lista[i].getPromedio()<pivote) j--; if(i<=j){ Alumno aux=lista[i]; lista[i]=lista[j]; lista[j]=aux; i++; j--; } }while(i<=j); if(i<ultimo) ordenarpromedio(lista,i,ultimo) ; if(j>primer) ordenarpromedio(lista,j,primer); } private static void ordenarApellido(Alumno[] lista, int n) {//EL PRIMER ELEMENTO ESTA OEDENADO String aux; Alumno tmp; int j; for(int i=1;i<n;i++){//OBJETO ORDENADO EMPIEZA EN 1 aux=lista[i].getApellido(); tmp=lista[i]; j=i; while(j>0 && aux.compareTo(lista[j1].getApellido())>0){//SI AUX ESTA ANTES J>0 NO MUEVO EL ELEMENTO lista [j]=lista[j-1]; j--; } lista[j]=tmp;

96

} } private static void registrar(Alumno[] lista, int n) { Scanner leer=new Scanner(System.in); String apellido,nombre; int promedio; for(int i=0;i<n;i++){ System.out.println("\talumno"+(i+1)); System.out.println("Apellido:"); apellido=leer.next(); System.out.println("Nombre:"); nombre=leer.next(); System.out.println("Promedio:"); promedio=leer.nextInt(); lista[i]=new Alumno(apellido,nombre,promedio); } } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("1.registrar alumnos"); System.out.println("2.mostrar alumnos"); System.out.println("3.ordenar por apellido"); System.out.println("4.ordenar por promedio"); System.out.println("5.buscar promedio de un alumno"); System.out.println("6.buscar el mejor alumno");//se encuentra el mayor promedio System.out.println("7.salir"); System.out.print("elegir una opccion :"); op=leer.nextInt(); return op; } }

EJERCICIOS RESUELTOS CON HERENCIA

Programa 61
Desarrollar el siguiente programa en java, crear una clase Alumno con atributos (nombre, apellido) y crear una clase Alumno de Derecho y Alumno de Educacin hereda de una Clase Alumno. Calcular el promedio de los alumnos de las facultades de derecho y de educacin sabiendo que: a) Los alumnos de Derecho tienen 3 notas, pero para hallar el promedio se duplica la nota mayor y se consideran 4 notas. b) Los alumnos de educacin tienen 5 notas, pero para hallar el promedio se elimina la nota menor y se consideran 4 notas. Implementar una aplicacin que permita leer alumnos de Derecho y alumnos de Educacin Y mostrar los promedios de los alumnos de derecho y educacin. Solucin Creamos la clase Alumno Creamos la clase Alumno de derecho tiene una herencia de la clase Alumno Creamos la clase Alumno de educacin tiene una herencia de la clase Alumno

97

Primer paso:
public class Alumno { private String nombre; private String apellido; public Alumno(String nombre,String apellido){ this.nombre=nombre; this.apellido=apellido; } public void mostrar(){ System.out.println("Nombre "+this.nombre); System.out.println("Apellido "+this.apellido); } }

Segundo Paso
public class AlumnoDerecho extends Alumno { private double nota1; private double nota2; private double nota3; public AlumnoDerecho(String nombre, String apellido,double nota1, double nota2,double nota3) { super(nombre, apellido);//Con super llamamos a los atributos de //la clase padre this.nota1=nota1; this.nota2=nota2; this.nota3=nota3; } public double promedio(){ return(nota1+nota2+nota3+notaMayor())/4; } private double notaMayor() { double mayor=nota1; if(mayor<nota2); mayor=nota2; if(mayor<nota3); mayor=nota3; return mayor; } }

Tercer paso
public class AlumnoEducacion extends Alumno{ private double notas[];//se utilza este vector para ya no declarar //nota1 ,nota2, nota3 ,nota4,nota5 public AlumnoEducacion(String nombre, String apellido, double[] notas) { super(nombre, apellido); this.notas = notas; } public double promedio(){ return(sumar()-notaMenor())/4; }

98

private double notaMenor() { double menor=notas[0]; for(int i=1;i<5;i++) if (menor>notas[i]) menor=notas[i]; return menor; } private double sumar() { double suma=0; for(int i=0;i<5;i++) suma+=notas[i]; return suma; } }

Cuarto paso

Aplicacin del ejercicio

import java.util.Scanner; public class AplicacionEjercicio { public static void main(String[] args) { Scanner leer =new Scanner (System.in); String nombre,apellido; double nota1,nota2,nota3; double []notas=new double[5]; System.out.println("ALUMNO DE DERECHO"); System.out.println("Nombre: "); nombre=leer.next(); System.out.println("Apellido: "); apellido=leer.next(); System.out.println("Nota1: "); nota1=leer.nextDouble(); System.out.println("Nota2: "); nota2=leer.nextDouble(); System.out.println("Nota3: "); nota3=leer.nextDouble(); AlumnoDerecho nuevo=new AlumnoDerecho(nombre, apellido,nota1,nota2, nota3); nuevo.mostrar(); System.out.println("Promedio= "+nuevo.promedio()); System.out.println("ALUMNO DE EDUCACION"); System.out.println("NOMBRE: "); nombre=leer.next(); System.out.println("APELLIDO: "); apellido=leer.next(); for(int i=0;i<5;i++){ System.out.println("Nota "+(i+1)+": "); notas[i]=leer.nextDouble(); } AlumnoEducacion nuevo1=new AlumnoEducacion(nombre,apellido,notas); nuevo1.mostrar(); System.out.println("Promedio= "+nuevo1.promedio()); } }

99

Programa 62
Implementa una clase Padre y crea sus mtodos, La clase Hijo tiene una Herencia de La clase Padre y crear sus mtodos. Realizar una aplicacin para probar sus mtodos. Solution
Parte 1 public class ClasePadre { public boolean valor1 = true; public ClasePadre(int param){ System.out.println("Valor parametro: "+param); } public void imprimir(){ System.out.println("Imprime Metodo del Padre"); } } Parte 2 public class ClaseHijo extends ClasePadre{ public boolean valor1 = false; public ClaseHijo(int param){ super(param+2); System.out.println("Param Hijo: "+param); } public void imprimir1(){ System.out.println(super.valor1); } public void imprimir(){ super.imprimir(); System.out.println("Imprime Metodo del Hijo"); } }

Aplicacin del ejercicio


import java.util.*; public class Aplicacion { public static void main(String[] args) { /* hijo = new ClaseHijo(); hijo.imprimir();*/ int ingre; Scanner leer=new Scanner(System.in); System.out.println("Ingrese un valor: "); ingre=Integer.parseInt(leer.next()); ClaseHijo hija = new ClaseHijo(ingre); hija.imprimir(); } }

100

Programa 63
Implementa una clase Figura Geomtrica con dos atributos (x, y) y mostrar sus atributos, La clase Cuadrado con un atributo (lado) y tiene una Herencia de La clase Figura Geomtrica y crear su constructor y los mtodos Get y Set .Realizar una aplicacin en java para probar sus mtodos. Solucin Paso 1
public class FiguraGeometrica { private double x; private double y; public FiguraGeometrica(double x,double y){ this.x=x; this.y=y; } public FiguraGeometrica(){ this.x=0; this.y=0; } public void Posicion(){ System.out.println("el valor X: "+x); System.out.println("el valor Y: "+y); } }

Paso 2
public class Cuadrado extends FiguraGeometrica{ private double lado; public Cuadrado(double lado){ super(); this.lado=lado; } public Cuadrado(double x,double y,double lado){ super(x,y); this.lado=lado; } public double getLado() { return lado; } public void setLado(double lado) { this.lado = lado; } }

Aplicacin del Ejercicio


public class Aplicacion { public static void main(String[] args) { Cuadrado c=new Cuadrado(10); Cuadrado c2=new Cuadrado(1,2,10); FiguraGeometrica c4=new Cuadrado(5); c.Posicion(); c2.Posicion(); c4.Posicion(); System.out.println("Lado c: "+c.getLado());

101

c.setLado(5); System.out.println("Lado c: "+c.getLado()); } }

EJERCICIOS RESUELTOS CON INTERFACES Programa 64


Implementa una en java el siguiente programa crear una interface IVolar con los mtodos acelerar, volar y aterrizar; crear una clase avin que tiene una interfaz IVolar

Solucin Parte 1
public interface IVolar { public void acelerar(); public void volar(); public void aterrizar(); }

Parte 2
public class Avion implements IVolar public void acelerar() { } public void volar() { } {

public void aterrizar() { } public void habilitarAireCondicionado(){ } }

Programa 65
Implementa en java el siguiente programa Crear una clase Triangulo que tiene una interfaz Figura. La clase triangulo cuenta con los siguientes atributos (lado1, lado2, lado 3) y crear los mtodos para calcular el permetro del tringulo y el rea del tringulo. Crear una interface Figura con y mostrar los mtodos que fueron creados. Crear una clase Tringulo Equiltero que tiene una herencia de la clase Triangulo. Luego crear una aplicacin para calcular el rea y el permetro del tringulo equiltero. Solucin

Parte 1
public class Triangulo implements Figura{ private double lado1; private double lado2; private double lado3; public Triangulo(double lado1, double lado2, double lado3) {

102

this.lado1 = lado1; this.lado2 = lado2; this.lado3 = lado3; } public double perimetro() { return lado1+lado2+lado3; }

public double area() { double sp,area; sp=perimetro()/2; area=Math.sqrt(sp*(sp-lado1)*(sp-lado2)*(sp-lado3)); return area; } }

Parte 2
public interface Figura { //METODOS ABSTRACTOS public double area(); public double perimetro(); }

Parte 3
public class Equilatero extends Triangulo { public Equilatero(double lado1, double lado2, double lado3) { super(lado1, lado2, lado3); } }

Aplicacin del ejercicio


public class AplicacionEjercicio { public static void main(String[] args) { Triangulo t=new Triangulo(3,4,5); Equilatero e=new Equilatero(10,10,10); System.out.println("rea del tringulo t: "+t.area()); System.out.println("Permetro del tringulo t: "+t.perimetro()); System.out.println("rea del tringulo equilatero: "+e.area()); System.out.println("Permetro del tringulo equilatero: "+e.perimetro()); } }

Programa 66
Implementa en java el siguiente programa: La clase Crculo tiene un atributo (radio) que tiene una interfaz Figura y crear un mtodo para calcular el rea del crculo. Luego crear una clase Cuadrado con un atributo (lado) que tiene una interfaz Figura y crear un mtodo para calcular el rea del Cuadrado. Crear una interface Figura con los mtodos rea del crculo y rea del cuadrado. Realice una aplicacin del ejercicio para leer el radio del crculo y lado del cuadrado por teclado y prueba sus mtodos respectivamente.

103

Solucin: Parte 1
public class Circulo implements Figura{ private float radio; //Generamos su constructor: public Circulo(float radio) { super(); this.radio = radio; } public float area() { return (float) (Math.PI*radio*radio); } }

Parte 2
public class Cuadrado implements Figura{ //escribimos implements Figura, sale de la interface Figura //vemos que cuadrado nos da error y los aadimos la primera opcion private float lado; //Generamos su constructor: public Cuadrado(float lado) { super(); this.lado = lado; } public float area() { return lado*lado; } }

Parte 3
//Interface public interface Figura { public float area(); }

Aplicacin del ejercicio


import java.util.Scanner; public class PruevaFigura { public static void main(String[] args) { int radio; int lado; Scanner leer= new Scanner(System.in); System.out.println("\tAREA DE FIGURAS GEOMETRICAS"); System.out.print("Lado del cuadrado: "); lado=leer.nextInt(); System.out.print("Radio del circulo: "); radio=leer.nextInt(); Cuadrado cuadradito = new Cuadrado(lado); //tambien es valido asi:Figura cuadradito = new Cuadrado(lado); Circulo circulito = new Circulo(radio); //tambien es valido asi:Figura circulito = new Circulo(radio); System.out.println(); System.out.println("Area del cuadrado es: "+cuadradito.area()); System.out.println("Area del circulo es: "+circulito.area()); } }

104

Programa 67
Implementa en java el siguiente programa: Crear una clase Empleado abtracta que tiene una herencia de la interface Por Pagar con atributos (primer nombre , apellido paterno , numero de seguro social ) y crear un mtodo To String para mostrar sus atributos correspondientemente. Crear una clase Empleado Asalariado con un atributo (Salario Semanal) ,que tiene una herencia de Empleado y crear un mtodo ToString para mostrar sus atributos correspondientes. Crear una clase Factura que tiene una herencia Por Pagar ,cuenta con los siguientes atributos (numero de pieza ,descripccion de la pieza ,cantidad , precio por articulo) y crear un mtodo ToString para mostrar sus atributos correspondientes. y crear otro mtodo para obtener el monto de pago . Crear una interface Por Pagar y leer un mtodo obtener el monto de Pago. Luego crear una aplicacin para leer los atributos por teclado de la clase Factura que tiene una herencia por pagar y obtener el monto total de un articulo comprado por una tienda comercial. Solucion del Ejercicio
Primer paso: public abstract class Empleado implements PorPagar{ private String primerNombre; private String apellidoPaterno; private String numeroSeguroSocial; public Empleado(String primerNombre, String apellidoPaterno, String numeroSeguroSocial) { super(); this.primerNombre = primerNombre; this.apellidoPaterno = apellidoPaterno; this.numeroSeguroSocial = numeroSeguroSocial; } public String getPrimerNombre() { return primerNombre; } public void setPrimerNombre(String primerNombre) { this.primerNombre = primerNombre; } public String getApellidoPaterno() { return apellidoPaterno; } public void setApellidoPaterno(String apellidoPaterno) { this.apellidoPaterno = apellidoPaterno; } public String getNumeroSeguroSocial() { return numeroSeguroSocial; } public void setNumeroSeguroSocial(String numeroSeguroSocial) { this.numeroSeguroSocial = numeroSeguroSocial; } public String toString() { return String.format("&s %s\nNumero de seguro social: %s", getPrimerNombre(),getApellidoPaterno(),getNumeroSeguroSocial()); }}

105

Segundo paso public class EmpleadoAsalariado extends Empleado { private double salarioSemanal; public EmpleadoAsalariado(String primerNombre, String apellidoPaterno, String numeroSeguroSocial, double salarioSemanal) { super(primerNombre, apellidoPaterno, numeroSeguroSocial); this.salarioSemanal=salarioSemanal; } public double getSalarioSemanal() { return salarioSemanal; } public void setSalarioSemanal(double salarioSemanal) { this.salarioSemanal = salarioSemanal; } public double obtenerMontoPago() { return getSalarioSemanal(); } public String toString() { return String.format("Empleado asalariado: &s \n%s: s%,.2f", super.toString(), "Salario semanal", getSalarioSemanal()); } } Tercer paso public class Factura implements PorPagar { private String codigoArticulo; private String nombreArticulo; private int cantidad; private double precioPorArticulo; public Factura(String codigoArticulo, String nombreArticulo, int cantidad, double precioPorArticulo) { super(); this.codigoArticulo = codigoArticulo; this.nombreArticulo = nombreArticulo; this.cantidad = cantidad; this.precioPorArticulo = precioPorArticulo; } public String getCodigoArticulo() { return codigoArticulo; } public void setCodigoArticulo(String codigoArticulo) { this.codigoArticulo = codigoArticulo; } public String getNombreArticulo() { return nombreArticulo; } public void setNombreArticulo(String nombreArticulo) { this.nombreArticulo = nombreArticulo; } public int getCantidad() { return cantidad; }

106

public void setCantidad(int cantidad) { this.cantidad = cantidad; } public double getPrecioPorArticulo() { return precioPorArticulo; } public void setPrecioPorArticulo(double precioPorArticulo) { this.precioPorArticulo = precioPorArticulo; } public String toString() { return String.format("%s: \n%s: %s (%s) \n%s: %d \n%s: s%, .2f","factura", "Numero de pieza", getCodigoArticulo(), getNombreArticulo(),"Cantidad", getCantidad(),"Precio por articulo",getPrecioPorArticulo());} public double obtenerMontoPago(){ double monto; monto=getCantidad()*getPrecioPorArticulo(); return monto; } } Cuarto paso: public interface PorPagar { double obtenerMontoPago(); } Quinto paso

Aplicacin del ejercicio


import java.util.Scanner; public class Aplicacion1 { public static void main(String[] args) { Scanner leer= new Scanner(System.in); System.out.print("ingresar la cantidad int n=leer.nextInt(); PorPagar[] lista=new PorPagar[100]; String codigoArticulo; String nombreArticulo; int cantidad; double precioPorArticulo; for(int i=0;i<lista.length;i++){

de articulos: ");

System.out.print("codigo del articulo: "); codigoArticulo=leer.next(); System.out.print("nombre del articulo: "); nombreArticulo=leer.next(); System.out.print("cantidad de articulo: "); cantidad=leer.nextInt(); System.out.print("precio del Articulo: "); precioPorArticulo=leer.nextInt(); System.out.println("monto de pago de un Articulo: "+cantidad*precioPorArticulo); } } }

107

COLECCIONES EN JAVA
Todas las colecciones se encuentran en el paquete java.util.* Java.util.Collection es la raiz de la jerarqua de las colecciones .Existirn especializaciones que permitan elementos duplicados o no, que permitan ordenar los elementos o no, etc. Esta clase contiene la definicin de todos los mtodos genricos que deben implementar las colecciones.

COLECCIONES ArrayList

Formas de leer esta coleccin. a)ArrayList<String> paises = new ArrayList<String>();


b)LinkedList<Integer> paises=new LinkedList<Integer>();//aade numeros c)LinkedList<String> paises =new LinkedList<String>();//aade paises d)HashSet<String> paises = new HashSet<String>(); e)LinkedHashSet<String> paises =new LinkedHashSet<String>(); f)TreeSet<String> paises =new TreeSet<String>(); Mtodos de Operaciones Bsicas
size(): cuenta la cantidad de elementos. add(t) : Aade un elemento t. Lo que siempre se utiliza get(N) : Devuelve el elemento almacenado a la posicin N en el ArrayList ,N tiene que ser un entero entre 0 y size()-1. contains(t) : Pregunta si el elemento t ya est dentro de la coleccin. Existe la lista t. void set (ndex, obj) : Sustituye el elemento en la posicin ndex por el objeto remove(index) : Elimina el elemento a la posicin ndex (ndex entre 0 y size()-1). Devuelve el objeto eliminado remove(t): elimina la lista t indexOf("t") :devuelve la primera ubicacin de t lastIndexOf("t"): devuelve la ltima ubicacin de t subList(4, 10)): devolver una lista del 4 hasta el 10.

108

Ejemplo

import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class PruebaHashMap { public static void main(String[] args) { ArrayList<String> ciudades = new ArrayList<String>(); ciudades.add("Madrid"); ciudades.add("Barcelona"); ciudades.add("Malaga"); ciudades.add("Vigo"); ciudades.add(1,"Sevilla"); ciudades.add("Madrid"); //mostrar la coleccion Iterator<String> it = ciudades.iterator(); while(it.hasNext()) System.out.println("Ciudad: "+it.next());
/*

Es otra forma de mostrar esta coleccion { System.out.print(it.next()+"\t"); }

for (Iterator<String> it = ciudades.iterator(); it.hasNext();)

*/ System.out.println("\nInvertir lista de ciudades"); for (ListIterator<String> it2 = ciudades.listIterator(ciudades.size());it2.hasPrevious();) { System.out.print(it2.previous()+"\t"); } } }

COLECCIONES HashMap

Formas de leer esta coleccin.


a)HashMap< String, Integer > alumno=new HashMap< String, Integer >(); //muestra aleatoriamente b) LinkedHashMap< String, Integer > alumno =new LinkedHashMap< String, Integer>(); // (ordena por INSERCCION) c) TreeMap< String, Integer > alumno=new TreeMap< String, Integer >();

109

//(orden numerico(por cidigo)) d) Hashtable< String, Integer > alumno = new Hashtable< String, Integer > (); Mtodos de Operaciones Bsicas
size(): cuenta la cantidad de elementos isEmpty() : Devuelve true si el map es vaco :vacea una lista put(clave, valor) :Aade el mapping <clave,valor> keySet() : Todas las claves (devuelve un Set, es decir, sin duplicados). containsKey(cla) : Devuelve true si clave existe dentro de map ,como clave. Ver un ejemplo import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class PruebaHashMap { public static void main(String[] args) { HashMap<Integer, String> codigos = new HashMap<Integer, String>(); codigos.put(01,"Urgente"); codigos.put(02,"Importante"); codigos.put(03,"Normal"); codigos.put(04,"Baja prioridad"); System.out.println("Aleatorio 03: "+codigos.get("03")); System.out.println("Aleatorio 01: "+codigos.get("01")); Set<Integer> s = codigos.keySet(); Iterator<Integer> it = s.iterator(); System.out.println(s); while(it.hasNext()){ Integer aux = (Integer) it.next(); System.out.println(aux+" "+codigos.get(aux)); }}}

EJERCICIOS RESUELTOS DE COLECCIONES ArrayList Programa 68


Implementar una interfaz de coleccin en java de tipo ArrayList departamentos que me permita aadir los siguientes departamentos del Peru: Cajamarca ,trujilio ,lima y Arequipa.Luego crear otra inferfaz coleccin de tipo ArrayList ciudades que me permita adir las siguientes ciudades: Jaen ,cutervo y chilete Luego mostrar departamentos con un mtodos.Luego realizar las siguientes operaciones. - Insertar el departamento de Ica en la posicion 2. - Insertar el departamento de Cajamarca en la posicion cero. -Luego mostrar departamentos actualizados. y realizamos las siguientes operaciones. - Eliminar el departamento de Ica. -Eliminar un departamentos en la Posicion cero

110

-Eliminar el departartamento de Cajamarca -Luego Mostramos departamentos. -En los departamentos agregamos todas las ciudades. - En los departamentos agregamos todas las ciudades desde la posicin 2 - Luego Mostrar departamentos. -Luego en los departamentos buscar la primera ubicacin de jaen. -Luego en los departamentos buscar la ultima ubicacin de jaen y finalmente de los departamentos mostrar la subList de cero a nueve.Todo ser implementado desde el main. Solucion import java.util.ArrayList; import java.util.Iterator; public class pruebaArrayList { public static void main(String[] args) { ArrayList<String> departamentos =new ArrayList<String>(); departamentos.add("Cajamarca"); departamentos.add("Trujillo"); departamentos.add("Lima"); departamentos.add("Arequipa"); ArrayList<String> ciudades =new ArrayList<String>(); ciudades.add("Jaen"); ciudades.add("Cutervo"); ciudades.add("Chilete"); System.out.println("\nMostrar departamentos:"); mostrarV(departamentos); System.out.println("insertar Ica en la posicion 2:"); departamentos.add(2, "Ica"); // ( posicion , elemento ) System.out.println("insertar Cajamarca en la posicion 0:"); departamentos.add(0, "Cajamarca"); System.out.println("\nMostrar departamentos actualizados:"); mostrarV(departamentos); System.out.println("\nEliminar el departamento de Ica:"); departamentos.remove("Ica"); Posicion System.out.println("\nEliminar el departamentos de la cero"); departamentos.remove(0); //la posicion

System.out.println("\nEliminar el departartamento de Cajamarca"); departamentos.remove("Cajamarca"); System.out.println("\nMostrar departamentos:"); mostrarV(departamentos); System.out.println(""); //agregamos ciudades a departamentos

111

//tener encuenta que la nueva coleccion debe estar debajo 1coleccion System.out.println("\nAgregamos departamentos a las ciudades"); departamentos.addAll(ciudades); System.out.println("\nAgregamos los departamentos a las ciudades desde una posicion 2"); departamentos.addAll(2,ciudades); de la System.out.println("\nMostrar departamentos"); mostrarV(departamentos); System.out.println(""); //busqueda de elemntos System.out.println("1 ubicacion de Jaen: "+departamentos.indexOf("Jaen")); System.out.println("Ultima ubicacion de Jaen: "+departamentos.lastIndexOf("Jaen")); System.out.println("De los departamentos mostrar la sublista(0,9):"+departamentos.subList(0, 9)); } private static void mostrarV(ArrayList<String> departamentos) { for (Iterator<String> iterator = departamentos.iterator(); iterator.hasNext();) { System.out.print(iterator.next()+"\t"); } System.out.println(); } }

Programa 69
Implementar una interfaz de coleccin en java de tipo ArrayList cursos que me permita aadir los siguientes cursos de Matematica ,lenguaje ,Quimica y Fisica y mostrar cursos aadidos. y realizar las siguientes operaciones a continuacin. -Luego insertar o aadir el curso de algebra desde la posicion 3. -Luego Insertar el curso de trigonometria en la posicion cero -En los cursos aadir el curso de lenguaje. -Mostrar cursos con una funcin. -Aadir el curso de Ingles en la posicon 2 -Luego mostrar cursos con la misma funcin anterior. -Luego eliminar los cursos de Quimica -Luego mostrar cursos. -Eliminar un curso en la posicin tres. -Luego mostrar cursos. Continuando con nuestro programa de colecciones. -Creamos una interfaz coleccin en java del tipo ArrayList lenguajes ,aadimos los siguientes lenguajes:Basic , Pascal , Ada y Alice . -Luego en los cursos aadimos todos los lenguajes y mostrar los cursos adidos. -Luego Aadir todos los cursos de lenguajes desde la posicion uno"); -Luego mostrar cursos y buscamos los siguientes cursos.

112

-De los cursos buscamos el primer Basic. -De los cursos buscamos el ultimo Basic. -Luego en los cursos mostramos la subList desde la posicin 4 hasta la posicin 10 -Luego mostrar cursos sin mtodos ni funciones solo lo mas simple en codigo Solucion
import java.util.ArrayList; import java.util.Iterator; public class PruebaArrayList1 { public static void main(String[] args) { ArrayList<String> cursos = new ArrayList<String>(); cursos.add("Matematica"); cursos.add("Lenguaje"); cursos.add("Quimica"); cursos.add("Fisica"); System.out.println("\nMostrar cursos"); mostrarL(cursos); System.out.println("\nInsertar o aadir el curso de algebra en la posicion 3"); cursos.add(3, "Algebra"); System.out.println("\n Insertar el curso de trigonometria en la posicion cero"); cursos.add(0,"Trigonometria"); //posicion 0 System.out.println("\nAadir el curso de lenguaje"); cursos.add("Lenguaje"); mostrarL(cursos); System.out.println("\nAadir el curso de Ingles en La posicon 2"); cursos.set(2, "Ingles");//posicion 2 hacer con un syso mostrarL(cursos); tambien se lo puede

System.out.println("\nEliminar el curso de Quimica");//Eliminamos cursos cursos.remove("Quimica"); //Tambien se lo puede hacer con el syso mostrarL(cursos); System.out.println("\nEliminar cursos de la Posicion 3"); System.out.println("\nMostrar primera lista de cursos1"); cursos.remove(3); mostrarL(cursos); ArrayList<String> lenguajes = new ArrayList<String>(); System.out.println("\nMostrar segunda lista de cursos:"); lenguajes.add("Basic"); lenguajes.add("Pascal"); lenguajes.add("Ada"); lenguajes.add("Alice"); System.out.println("\nEn los cursos aadir todos los lenguajes"); cursos.addAll(lenguajes); System.out.println("\nMostar cursos"); mostrarL(cursos);

113

System.out.println("\nAadir todos los cursos de lenguajes desde la posicion uno"); cursos.addAll(1, lenguajes); System.out.println("\nMostar cursos:"); mostrarL(cursos); System.out.println("En los cursos Buscar el primer Basic: "+cursos.indexOf("Basic")); System.out.println("En los cursos Buscar el ultimo Basic: "+cursos.lastIndexOf("Basic")); System.out.println("\nSub colecciones: devolver una lista del 4 hasta el 10"); System.out.println(cursos.subList(4, 10)); System.out.println("\nMostar todos los cursos sin funciones:"); System.out.println(cursos); } private static void mostrarL(ArrayList<String> cursos) { for (Iterator<String> iterator = cursos.iterator(); iterator.hasNext();) { System.out.println(iterator.next()+"\t"); } System.out.println(); } }

Programa 70
Implementar una interfaz de coleccin en java de tipo HastSet paises que me permita aadir los siguientes paises :Peru ,Argentina ,Ecuador ,chile ,Paraguay ,Brasil , Argentina y mostrar los paises aadidos. Crear una interfaz coleccin en java del tipo HastSet paises2 que me permita adir los siguientes pases2: Peru ,Brasil ,Argentina y mostrar paises2. Luego creamos una interfaz coleccin en java del tipo HastSet ciudades que me permita adir las siguientes ciudades : Cajamrca ,Celendin ,Jaen ,Chota y mostrar ciudades Luego realizar las siguientes operaciones. -Los paises contienen todos los paises2. -Los paises contienen todas las ciudades: -Contiene todos los paises2 a paises: -Contar la cantidad de pases. -Contar la cantidad de paises2. -Contar la cantidad de ciudades -La lista de pases contienen a los pases Peru. -La lista de pases contienen a las ciudades de Cajamrca. -Luego mostrar pases actuales. -Aadir todas las ciudades a pases. -Luego mostramos pases actuales. -Eliminar todas las ciudades de los pases. -Luego mostrar pases actuales. -Eliminar todas las ciudades de los pases. -Eliminar pases pero retiene a a paises2. -Mostrar pases actuales.

114

-Luego borramos los pases. -Los pases estn vacios. Todo este programa ser utilizando colecciones y ser implementado desde el main. Solucion
import java.util.HashSet; import java.util.Iterator; public class PruebaHastSet { public static void main(String[] args) { HashSet<String> paises = new HashSet<String>(); paises.add("Peru"); paises.add("Argentina"); paises.add("Ecuador"); paises.add("Chile"); paises.add("Paraguay"); paises.add("Brasil"); paises.add("Argentina"); System.out.println("\nMostrar paises "); for(Iterator<String> it= paises.iterator();it.hasNext();){ System.out.println(it.next()+ "\t"); } HashSet<String> paises2 = new HashSet<String>(); paises2.add("Peru"); paises2.add("Brasil"); paises2.add("Argentina"); System.out.println("\nMostrar paises2 "); for(Iterator<String> it1= paises2.iterator();it1.hasNext();){ System.out.println(it1.next()+ "\t"); } HashSet<String> ciudades = new HashSet<String>(); ciudades.add("Cajamarca"); ciudades.add("Celendin"); ciudades.add("Jaen"); ciudades.add("Chota"); System.out.println("\nMostrar ciudades "); for(Iterator<String> it2= ciudades.iterator();it2.hasNext();){ System.out.println(it2.next()+ "\t"); } System.out.println(""); System.out.println("paises contiene a paises2: "+paises.containsAll(paises2)); System.out.println("paises contiene a ciudades: "+paises.containsAll(ciudades)); System.out.println("Aade todos los paises2 a paises: "+paises.addAll(paises2)); System.out.println("cantidad de paises: "+paises.size()); System.out.println("cantidad de paises2: "+paises2.size()); System.out.println("cantidad de ciudades: "+ciudades.size()); System.out.println("existe en la lista de paises los paises Peru: "+paises.contains("Peru")); System.out.println("existe en la lista de paises la ciudad Cajamarca: "+paises.contains("Cajamarca")); System.out.println("\nMostrar paises actuales: "); Iterator<String> it3=paises.iterator(); while (it3.hasNext()) { System.out.print(it3.next()+"\t");

115

} System.out.println(""); System.out.println("aade "+paises.addAll(ciudades));

ciudades a paises:

System.out.println("\nMostrar paises actuales: "); Iterator<String> it4=paises.iterator(); while (it4.hasNext()) { System.out.print(it4.next()+"\t"); } System.out.println(); System.out.println("elimina ciudades de paises: "+paises.removeAll(ciudades)); System.out.println("\nMostrar paises actuales: "); Iterator<String> it5=paises.iterator(); while (it5.hasNext()) { System.out.print(it5.next()+"\t"); } System.out.println(); System.out.println("elimina ciudades de paises: "+paises.removeAll(ciudades)); System.out.println("elimina paises pero retiene paises2: "+paises.retainAll(paises2)); System.out.println("\nMostrar paises actuales: "); Iterator<String> it6=paises.iterator(); while (it6.hasNext()) { System.out.print(it6.next()+"\t"); } System.out.println("borra paises"); paises.clear(); System.out.println("paises esta vacio? "+paises.isEmpty()); } }

Programa 71
Implementar una interfaz de coleccin en java de tipo LinkedList numero que me permita Leer un numero por teclado y mostrar el numero inverso .Todo ser implementado desde main. Solucion
import java.util.Iterator; import java.util.LinkedList; import java.util.Scanner; public class InvertirNumero { public static void main(String[] args) { Scanner leer=new Scanner(System.in); LinkedList<Integer> numero=new LinkedList<Integer>(); System.out.println("Ingresar un Numero :"); int n=leer.nextInt(); while (n>0) { int r=n%10; numero.add(r); n=n/10; } int numero1=0; for (Iterator<Integer> aux = numero.iterator(); aux.hasNext();) { numero1=numero1*10+aux.next();

116

} System.out.println("Numero invertido:"+numero1); } }

Programa 72
Implementar una interfaz de coleccin en java de tipo LinkedList animales que me permita aadir los siguientes animales:Perro ,Gato ,Tigre , Loro y Tortuga luego realiza las siguientes operaciones. -Mostrar animales con una funcin. -Mostrar en maysculas los animales en una funcion -Luego mostrar lista de animales invertida con una funcin. Solucion.
import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; public class AnimalesMayusculas { public static void main(String[] args) { LinkedList<String> animales = new LinkedList<String>(); animales.add("Perro"); animales.add("Gato"); animales.add("Tigre"); animales.add("Loro"); animales.add("Tortuga"); System.out.println("\nMostrar la lista de animales"); mostrar(animales); System.out.println("\nMostrar en mayusculas los animales"); Mayusculas(animales); System.out.println("\nMostrar lista de animales invertida"); invertir(animales); } private static void mostrar(LinkedList<String> animales) { for (Iterator<String> it = animales.iterator(); it.hasNext();) { System.out.print(it.next()+"\t"); } System.out.println(); } private static void Mayusculas(LinkedList<String> animales) { for (Iterator<String> it1 = animales.iterator(); it1.hasNext();) { String aux = (String) it1.next(); System.out.print(aux.toUpperCase()+"\t"); } } private static void invertir(LinkedList<String> animales) { for(ListIterator<String> it2 = animales.listIterator(animales.size());it2.hasPrevious();) { System.out.print(it2.previous()+"\t"); } } }

117

FORMAS DE USAR ESTA COLECCIN ArrayList Programa 73


Implementar una interfaz de coleccin en java de tipo ArrayList animales que me permita implementar el siguiente men. Menu 1.Leer animales 2.Mostrar animales 3.Mostrar animales con maysculas. 4.Invertir animales . 5.Salir. Elegir una opcin: solucion
import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; import java.util.Scanner; public class AnimalesMayusculas1 { public static void main(String[] args) { Scanner leer=new Scanner(System.in); ArrayList<String> animales =new ArrayList<String>(); int opc,n; do{ opc=menu(); switch(opc){ case 1: System.out.print("\tIngresar la cantidad de animales: "); n=leer.nextInt(); leer(animales,n); break; case 2:mostrar(animales); break; case 3:System.out.println("\tMostrar en mayusculas los animales"); Mayusculas(animales); break; case 4:System.out.println("\tMostrar lista de animales invertida"); invertir(animales); break; } }while(opc!=4); } private static void leer(ArrayList<String> animales, int n) { Scanner leer=new Scanner(System.in); for (int i = 0; i < n; i++) { System.out.print("\tanimales "+(i+1)+": "); animales.add(leer.next());//leer por teclado animales:en una coleccion } } private static void mostrar(ArrayList<String> animales) { for (Iterator<String> it = animales.iterator(); it.hasNext();) { System.out.println("\t"+it.next()); } System.out.println();

118

} private static void Mayusculas(ArrayList<String> animales) { for (Iterator<String> it1 = animales.iterator(); it1.hasNext();) { String aux = (String) it1.next(); System.out.println("\t"+aux.toUpperCase()); } } private static void invertir(ArrayList<String> animales) { for(ListIterator<String> it2 = animales.listIterator(animales.size());it2.hasPrevious();) { System.out.println("\t"+it2.previous()); } } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer animales"); System.out.println("\t[2].mostrar animales"); System.out.println("\t[3].Mostrar en mayusculas los animales"); System.out.println("\t[4].Invertir lista de animales"); System.out.println("\t[5].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

Programa 74
Implementar una interfaz de coleccin en java de tipo LinkedList ciudad que me permita implementar el siguiente men.Todo ser implementado desde el main. Menu 1.Leer ciudades. 2.Mostrar ciudades. 3.Mostrar en maysculas las ciudades. 4.Invertir lista de ciudades . 5.Salir. Elegir una opcin: Solucion
import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; import java.util.Scanner; public class coleccionCiudades { public static void main(String[] args) { Scanner leer=new Scanner(System.in); LinkedList<String> ciudad = new LinkedList<String>(); int opc,n; do{ opc=menu(); switch(opc){ case 1:System.out.print("\tIngresar la cantidad de ciudad: "); n=leer.nextInt();

119

leer(ciudad,n); break; case 2:mostrar(ciudad); break; case 3: System.out.println("\tMostrar en mayusculas las ciudades"); Mayusculas(ciudad); break; case 4:System.out.println("\tMostrar lista de ciudades invertida"); invertir(ciudad); break; } }while(opc!=5); } private static void leer(LinkedList<String> ciudad,int n) { Scanner leer=new Scanner(System.in); for (int i = 0; i < n; i++) { System.out.print("\tciudad "+(i+1)+": "); ciudad.add(leer.next());//leer por teclado ciudad:en una coleccion } } private static void mostrar(LinkedList<String> ciudad) { for (Iterator<String> it = ciudad.iterator(); it.hasNext();) { System.out.print("\t"+it.next()); } System.out.println(); } private static void Mayusculas(LinkedList<String> ciudad) { for (Iterator<String> it1 = ciudad.iterator(); it1.hasNext();) { String aux = (String) it1.next(); System.out.print("\t"+aux.toUpperCase()); } } private static void invertir(LinkedList<String> ciudad) { for(ListIterator<String> it2 = ciudad.listIterator(ciudad.size());it2.hasPrevious();) { System.out.print("\t"+it2.previous()); } } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer ciudades"); System.out.println("\t[2].Mostrar ciudades"); System.out.println("\t[3].Mostrar en mayusculas las ciudades"); System.out.println("\t[4].Invertir lista de ciudades"); System.out.println("\t[5].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

120

Programa 75
Implementar una interfaz de coleccin en java de tipo HashSet nombre que me permita implementar el siguiente men.Todo ser implementado desde el main. Menu 1.Leer nombres. 2.Mostrar nombres. 3.Mostrar en maysculas los nombres. 4.Salir. Elegir una opcin: Solucion
import java.util.*;//para toda la coleccion se usa solo esta libreria public class ColeccionHashSet { public static void main(String[] args) { Scanner leer=new Scanner(System.in); HashSet<String> nombre =new HashSet<String>(); int opc,n; do{ opc=menu(); switch(opc){ case 1: System.out.print("\tIngresar la cantidad de nombres Alumnos: "); n=leer.nextInt(); leer(nombre,n); break; case 2:mostrar(nombre); break; case 3:System.out.println("\tMostrar lista de nombres invertida"); Mayusculas(nombre); break; } }while(opc!=4); } private static void leer(HashSet<String> nombre, int n) { Scanner leer=new Scanner(System.in); for (int i = 0; i < n; i++) { System.out.print("\tNombre Alumno "+(i+1)+": "); nombre.add(leer.next());//leer por teclado nombres:en una coleccion } } private static void mostrar(HashSet<String> nombre) { for (Iterator<String> it =nombre.iterator(); it.hasNext();) { System.out.println("\t"+it.next()); } System.out.println(); } private static void Mayusculas(HashSet<String> nombre) { for (Iterator<String> it1 =nombre.iterator(); it1.hasNext();) { String aux = (String) it1.next(); System.out.println("\t"+aux.toUpperCase()); } } private static int menu() { Scanner leer=new Scanner(System.in);

121

int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer nombres de alumnos"); System.out.println("\t[2].mostrar nombres de alumnos"); System.out.println("\t[3].Mostrar en mayusculas nombres"); System.out.println("\t[4].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

Programa 76
Implementar una interfaz de coleccin en java de tipo LinkedHashSet pas que me permita implementar el siguiente men.Todo ser implementado desde el main. Menu 1.Leer paises. 2.Mostrar paises 3.Mostrar en maysculas los paises. 4.Salir. Elegir una opcin: Solucion
import java.util.*; public class ColeccionLinkedHashSet { public static void main(String[] args) { Scanner leer=new Scanner(System.in); LinkedHashSet<String> pais =new LinkedHashSet<String>(); int opc,n; do{ opc=menu(); switch(opc){ case 1: System.out.print("\tIngresar la cantidad de paises: "); n=leer.nextInt(); leer(pais,n); break; case 2:mostrar(pais); break; case 3:System.out.println("\tMostrar lista de paises invertida"); Mayusculas(pais); break; } }while(opc!=4); } private static void leer(LinkedHashSet<String> pais, int n) { Scanner leer=new Scanner(System.in); for (int i = 0; i < n; i++) { System.out.print("\tpais "+(i+1)+": "); pais.add(leer.next());//leer por teclado paises:en una coleccion } } private static void mostrar(LinkedHashSet<String> pais) { for (Iterator<String> it =pais.iterator(); it.hasNext();) {

122

System.out.println("\t"+it.next()); } System.out.println(); } private static void Mayusculas(LinkedHashSet<String> pais) { for (Iterator<String> it1 =pais.iterator(); it1.hasNext();) { String aux = (String) it1.next(); System.out.println("\t"+aux.toUpperCase()); } } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer paises"); System.out.println("\t[2].mostrar paises"); System.out.println("\t[3].Mostrar en Mayusculas paises"); System.out.println("\t[4].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

Programa 77
Implementar una interfaz de coleccin en java de tipo TreeSet libros que me permita implementar el siguiente men. Todo ser implementado desde el main. Menu 1.Leer libros. 2.Mostrar libros. 3.Mostrar en maysculas los libros.. 4.Salir. Elegir una opcin: Solucion
import java.util.*; public class ColeccionTreeSet { public static void main(String[] args) { Scanner leer=new Scanner(System.in); TreeSet<String> libros =new TreeSet<String>(); int opc,n; do{ opc=menu(); switch(opc){ case 1: System.out.print("\tIngresar la cantidad de libros: "); n=leer.nextInt(); leer(libros,n); break; case 2:mostrar(libros); break; case 3:System.out.println("\tMostrar los libros en Mayusculas"); Mayusculas(libros); break; } }while(opc!=4);

123

} private static void leer(TreeSet<String> libros, int n) { Scanner leer=new Scanner(System.in); for (int i = 0; i < n; i++) { System.out.print("\tlibro "+(i+1)+": "); libros.add(leer.next());//leer por teclado nombres:en una coleccion } } private static void mostrar(TreeSet<String> libros) { for (Iterator<String> it =libros.iterator(); it.hasNext();) { System.out.println("\t"+it.next()); } System.out.println(); } private static void Mayusculas(TreeSet<String> libros) { for (Iterator<String> it1 = libros.iterator(); it1.hasNext();) { String aux = (String) it1.next(); System.out.println("\t"+aux.toUpperCase()); } } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer libros"); System.out.println("\t[2].mostrar libros"); System.out.println("\t[3].Mostrar libros en Mayusculas"); System.out.println("\t[4].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

EJERCICIOS RESUELTOS DE COLECCIONES HashMap Programa 78.


Implementar una interfaz de coleccin en java de tipo HashMap frutas que me permita aadir los cdigos y frutas en esta coleccin. Cdigo fruta 25 papaya 40 Mango 10 Manzana 50 Granadilla 35 Chirimoya Luego mostrar todos los elementos aadidos en esta coleccin.

Solucion
import java.util.*; public class PruebaHashMap{

124

public static void main(String[] args) { //HashMap<Integer,String> frutas = new HashMap<Integer, String>(); //LinkedHashMap<Integer,String> frutas = new LinkedHashMap<Integer, String>(); TreeMap<Integer, String> frutas = new TreeMap<Integer, String>(); frutas.put(25, "Papaya"); frutas.put(40, "Mango"); frutas.put(10, "Manzana"); frutas.put(50, "Granadilla"); frutas.put(35, "Chirimoya"); System.out.println("Mostramos algunos elementos"); System.out.println(frutas.get(50)); System.out.println(frutas.get(10)); System.out.println(frutas); //Mostrar el map Set<Integer> s = frutas.keySet(); System.out.println(s);//mostrar solo codigo for(Iterator<Integer> it1 = s.iterator();it1.hasNext();){ Integer aux = (Integer) it1.next(); System.out.println(aux+" "+frutas.get(aux)); } } }

FORMAS DE USAR ESTA COLECCIN HashMap Programa 79


Implementar una interfaz de coleccin en java de tipo HashMap ciudad que me permita implementar el siguiente men. Todo ser implementado desde el main.

Menu 1.Leer ciudad(nombre ,cdigo). 2.Mostrar ciudad(nombre ,cdigo). 3.Salir Elegir una opcin: Solucion
import java.util.HashMap; import java.util.Iterator; import java.util.Scanner; import java.util.Set; public class ColeccionHashMap { public static void main(String[] args) { Scanner leer=new Scanner(System.in); HashMap<String,Integer> ciudad =new HashMap<String, Integer>(); int opc,n; do{ opc=menu(); switch(opc){

125

case 1:System.out.print("\tIngresar la cantidad ciudades:"); n=leer.nextInt(); leerN(ciudad,n); break; case 2: mostrarN(ciudad); break; } }while(opc!=3); } private static void leerN(HashMap<String, Integer> ciudad, int n) { Scanner leer=new Scanner(System.in); for (int i = 1; i <=n; i++) { System.out.println("\tAlumno:"+(i)); System.out.print("\tNombre:"); String nom=leer.next(); System.out.print("\tcodigo:"); int not=leer.nextInt(); ciudad.put(nom, not); } } private static void mostrarN(HashMap<String, Integer> ciudad) { System.out.println("\tNOMBRE"+"\t"+"CODIGO"); Set<String> s=ciudad.keySet();//la llave son los nombres for (Iterator<String> it = s.iterator(); it.hasNext();) { String temp = (String) it.next(); System.out.println("\t"+temp+"\t"+ciudad.get(temp)); } System.out.println(); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer ciudadades(nombre,codigo)"); System.out.println("\t[2].mostrar ciudadades(nombre,codigo)"); System.out.println("\t[3].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

Programa 80
Implementar una interfaz de coleccin en java de tipo Hashtable frutas que me permita implementar el siguiente men. Todo ser implementado desde el main. Menu 1.Leer frutas(nombre ,cdigo). 2.Mostrar frutas(nombre ,cdigo). 3.Salir Elegir una opcin: Solucion

126

import java.util.Hashtable; import java.util.Iterator; import java.util.Scanner; import java.util.Set; public class ColeccionHashtable{ public static void main(String[] args) { Scanner leer=new Scanner(System.in); Hashtable<String,Integer> frutas =new Hashtable<String,Integer>(); int opc,n; do{ opc=menu(); switch(opc){ case 1:System.out.print("\tIngresar la cantidad frutas:"); n=leer.nextInt(); leerN(frutas,n); break; case 2: mostrarN(frutas); break; } }while(opc!=3); } private static void leerN(Hashtable<String, Integer> frutas, int n) { Scanner leer=new Scanner(System.in); for (int i = 1; i <=n; i++) { System.out.println("\tFrutas:"+(i)); System.out.print("\tNombre:"); String nom=leer.next(); System.out.print("\tcodigo:"); int cod=leer.nextInt(); frutas.put(nom, cod); } } private static void mostrarN(Hashtable<String, Integer> frutas) { System.out.println("\tNOMBRE"+"\t"+"CODIGO"); Set<String> s=frutas.keySet();//la llave son los nombres for (Iterator<String> it = s.iterator(); it.hasNext();) { String temp = (String) it.next(); System.out.println("\t"+temp+"\t"+frutas.get(temp)); } System.out.println(); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer frutas(nombre,codigo)"); System.out.println("\t[2].mostrar frutas(nombre,codigo)"); System.out.println("\t[3].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

127

Programa 81
Implementar una interfaz de coleccin en java de tipo LinkedHashMap alumnos que me permita implementar el siguiente men. Todo ser implementado desde el main. Menu 1.Leer alumnos(nombre ,nota). 2.Mostrar alumnos(nombre ,nota). 3.Salir Elegir una opcin: Solucion
import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Scanner; import java.util.Set; public class ColeccionLinkedHashMap { public static void main(String[] args) { Scanner leer=new Scanner(System.in);
LinkedHashMap<String,Integer> alumnos =new LinkedHashMap<String,Integer>();

int opc,n; do{ opc=menu(); switch(opc){ case 1:System.out.print("\tIngresar la cantidad alumnos:"); n=leer.nextInt(); leerN(alumnos,n); break; case 2: mostrarN(alumnos); break; } }while(opc!=3); } private static void leerN(LinkedHashMap<String, Integer> frutas, int n) { Scanner leer=new Scanner(System.in); for (int i = 1; i <=n; i++) { System.out.println("\tAlumno:"+(i)); System.out.print("\tNombre:"); String nom=leer.next(); System.out.print("\tnota:"); int not=leer.nextInt(); frutas.put(nom, not); } } private static void mostrarN(LinkedHashMap<String, Integer> frutas) { System.out.println("\tNOMBRE"+"\t"+"NOTA"); Set<String> s=frutas.keySet();//la llave son los nombres for (Iterator<String> it = s.iterator(); it.hasNext();) { String temp = (String) it.next(); System.out.println("\t"+temp+"\t"+frutas.get(temp)); } System.out.println(); }

128

private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer alumnos(nombre,nota)"); System.out.println("\t[2].mostrar alumnos(nombre,nota)"); System.out.println("\t[3].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

Programa 82
Implementar una interfaz de coleccin en java de tipo TreeMap celular que me permita implementar el siguiente men. Todo ser implementado desde el main. Menu 1.Leer celulares (nombre ,nota). 2.Mostrar celular (nombre ,nota). 3.Salir Elegir una opcin: Solucion
import java.util.Iterator; import java.util.Scanner; import java.util.Set; import java.util.TreeMap; public class coleccionTreeMap { public static void main(String[] args) { Scanner leer=new Scanner(System.in); TreeMap<String,Integer> celular=new TreeMap<String,Integer>(); int opc,n; do{ opc=menu(); switch(opc){ case 1:System.out.print("\tIngresar la cantidad de celulares:"); n=leer.nextInt(); leerN(celular,n); break; case 2: mostrarN(celular); break; } }while(opc!=3); } private static void leerN(TreeMap<String, Integer> celular, int n) { Scanner leer=new Scanner(System.in); for (int i = 1; i <=n; i++) { System.out.println("\tcelular:"+(i)); System.out.print("\tNombre:"); String nom=leer.next(); System.out.print("\tnumero de celular:"); int numero=leer.nextInt(); celular.put(nom, numero); } } private static void mostrarN(TreeMap<String, Integer> celular) {

129

System.out.println("\t\tNOMBRE"+"\t\t"+"NUMERO DE CELULAR"); Set<String> s=celular.keySet();//la llave son los nombres for (Iterator<String> it = s.iterator(); it.hasNext();) { String temp = (String) it.next(); System.out.println("\t\t"+temp+"\t\t"+celular.get(temp)); } System.out.println(); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer celulares(nombre,numero de celular)"); System.out.println("\t[2].mostrar celulares(nombre,numero de celular)"); System.out.println("\t[3].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } }

VECTORES CON COLECCIONES Programa 83


Desarrollar una interfaz de coleccin en java con vectores e implementar desde el main las siguientes operaciones -Leer vector A con n1 elementos llamando a una funcin. -Mostrar el vector A . -Leer el vector B con n2 elementos llamando a una funcin. -Mostrar el vector B. -Ordenar el vector A ascendentemente con una coleccin. -Ordenar el vector B ascendentemente con una coleccin. -Buscar un elemento de vector A con colecciones. Solucion
import java.util.Arrays; import java.util.Scanner; public class Intercala { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("cantidad de elementos del vector A: "); int n1=sc.nextInt(); int[] v1=new int[n1]; System.out.println(" leer vector A: "); Arrays.fill(v1, 6);

130

leerV1(v1,n1); System.out.println("Mostrar vector A: "); mostrar1(v1); System.out.println(); System.out.print("cantidad de elementos del vector B: "); int n2=sc.nextInt(); int[] v2=new int[n2]; System.out.println("leer vector B: "); leerV2(v2,n2); System.out.println("Mostrar vector B: "); mostrar2(v2); System.out.println(); System.out.println("Los vectores ordenados son: "); System.out.println("Ordenar vector A ascendentemente: "); Arrays.sort(v1);//ordena ascendentemente mostrar1(v1); System.out.println("Ordenar vector B ascendentemente: "); Arrays.sort(v2);//ordena ascendentemente mostrar1(v2); System.out.println(); int ubicacion=0; System.out.println("Buscar un numero en el vector A "); System.out.println("Ingrese numero a buscar: "); int x=sc.nextInt(); ubicacion=(Arrays.binarySearch(v1, x)); if (ubicacion>=0) { System.out.println("Encontrado en la posicion: "+(ubicacion));//nota : aumentamo a la ubicacin mas uno cuando vector

Empieza a contar desde la posicin uno


}else { System.out.println("Elemento no encontrado"); } } private static void leerV1(int[] v1,int n1) { Scanner leer=new Scanner(System.in); for (int i = 0; i < v1.length; i++) { System.out.print("\nA["+(i)+"]="); v1[i]=leer.nextInt(); } } private static void mostrar1(int[] v1) { for (int i = 0; i < v1.length; i++) { System.out.print("\nA["+(i)+"]="+v1[i]); } } private static void leerV2(int[] v2,int n2) { Scanner leer=new Scanner(System.in); for (int i = 0; i < v2.length; i++) { System.out.print("\nB["+(i)+"]="); v2[i]=leer.nextInt(); } } private static void mostrar2(int[] v2) { for (int i = 0; i < v2.length; i++) { System.out.print("\nB["+(i)+"]="+v2[i]); } } }

131

Programa 84
Desarrollar una interfaz de coleccin en java con vectores e implementar desde el main las siguientes operaciones -Leer vector A con n1 elementos llamando a una funcin. -Mostrar el vector A con una coleccin. -Leer el vector B con n2 elementos llamando a una funcin. -Mostrar el vector B con una coleccin. -Ordenar el vector A ascendentemente con una coleccin. -Ordenar el vector B ascendentemente con una coleccin. Solucion
import java.util.Arrays; import java.util.Scanner; public class Intercala { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("cantidad de elementos del vector A: "); int n1=sc.nextInt(); int[] v1=new int[n1]; System.out.println(" leer vector A: "); leerV1(v1,n1); System.out.println("Mostrar vector A: "); System.out.println(Arrays.toString(v1));//Mostrar el vector con coleccion System.out.println(); System.out.print("cantidad de elementos del vector B: "); int n2=sc.nextInt(); int[] v2=new int[n2]; System.out.println("leer vector B: "); leerV2(v2,n2); System.out.println("Mostrar vector B: "); System.out.println(Arrays.toString(v2));//Mostrar el vector con coleccion System.out.println(); System.out.println("Los vectores ordenados son: "); System.out.println("Ordenar vector A ascendentemente: "); Arrays.sort(v1);//ordena ascendentemente System.out.println(Arrays.toString(v1)); System.out.println("Ordenar vector B ascendentemente: "); Arrays.sort(v2);//ordena ascendentemente System.out.println(Arrays.toString(v2)); } private static void leerV1(int[] v1,int n1) { Scanner leer = new Scanner(System.in); for (int i = 0; i < v1.length; i++) { v1[i]=leer.nextInt(); } }

132

private static void leerV2(int[] v2,int n2) { Scanner leer = new Scanner(System.in); for (int i = 0; i < v2.length; i++) { v2[i]=leer.nextInt(); } } }

LISTAS ENLAZADAS CON COLECCIONES Programa 85


Implementar una interfaz de coleccin en java de tipo ArrayList amigos que me permita aadir los siguientes amigos a mi coleccin : Cantinflas ,marco ,laura ,flor , catalina implementar el siguiente men desde el main, utilizando listas enlazadas con colecciones. Menu 1.Mostrar amigos. 2.Eliminar al inicio amigos. 3.Eliminar al final amigos. 4.Buscar amigos. 5.Borrar lista de amigos ingresados 6.salir. Elegir una opcin: Solucion
import java.util.ArrayList; import java.util.Scanner; public class listaEnlazadaColecciones { public static void main(String[] args) { Scanner sc= new Scanner(System.in); ArrayList<String> amigos = new ArrayList<String>(); amigos.add("cantinflas"); amigos.add("marco"); amigos.add("laura"); amigos.add("flor"); amigos.add("catalina"); int opc; do{ opc = menu(); switch (opc){ case 1: System.out.println(amigos); break; case 2:if (amigos.isEmpty()) { System.out.println("Lista vacia!"); }else{ amigos.remove(0); } System.out.println(amigos); break; case 3: if (amigos.isEmpty()) { System.out.println("Lista vacia!"); }else{ amigos.remove(amigos.size()-1); }

133

System.out.println(amigos); break; case 4: System.out.println("Elemento a buscar:"); String b=sc.next(); if(amigos.indexOf(b)<0){ System.out.println("Elemento no encontrado"); } else{ System.out.println("Encontado en la posicion "+(amigos.indexOf(b))); } break; case 5: amigos.clear(); break; } }while(opc!=6); } private static int menu() { Scanner leer= new Scanner(System.in); int op; System.out.println("\t\tMENU PRINCIPAL"); System.out.println("\t[1] Mostrar amigos"); System.out.println("\t[2] Elimina al inicio amigos"); System.out.println("\t[3] Elimina al final amigos"); System.out.println("\t[4] Buscar amigos"); System.out.println("\t[5] Borrar Lista de amigos ingresados"); System.out.println("\t[6] Salir"); System.out.print("\topcion: "); op=leer.nextInt(); return op; } }

Programa 86
Implementar una interfaz de coleccin en java de tipo LinkedList numeros que me permita implementar el siguiente men desde el main, utilizar listas enlazadas con colecciones. Menu 1.Leer numeros 2.Mostrar nmeros. 3.Insertar al inicio nmeros. 4.Insertar al final nmeros. 5.Insertar en una posicin un numero. 6.Buscar un numero. 7.Borrar lista de nmeros. 8.salir Elegir una opcin: Solucion
import java.util.Iterator; import java.util.LinkedList; import java.util.Scanner; public class ListaEnlazadaVector { public static void main(String[] args) {

134

Scanner leer=new Scanner(System.in); LinkedList<String> numeros =new LinkedList<String>();//NUMBERS AGRUPA A TODOS LOS NUMERO ENTERO Y DECIMALES int opcion=0,n = 0 ; do { opcion=menu(); //esto hace que lo que se eliga se guarde en opcion switch (opcion) { case 1:System.out.print("\tIngresar la cantidad de numeros: "); n=leer.nextInt(); leer(numeros,n); break; case 2: mostrar(numeros); break; case 3: System.out.print("Numero a insertar al inicio:"); String x=leer.next(); numeros.add(0, x); mostrar(numeros); break; case 4: System.out.print("Numero a insertar al final:"); String y=leer.next(); numeros.add(y); mostrar(numeros); break; case 5: System.out.print("Ingresar numero :"); String z=leer.next(); System.out.print("Ubico una posicion a insertar numero:"); int p=leer.nextInt(); numeros.add((p), z); mostrar(numeros); break; case 6: System.out.println("Elemento a buscar:"); String b=leer.next(); if(numeros.indexOf(b)<0){ System.out.println("Elemento no encontrado"); } else{ System.out.println("Encontado en la posicion "+(numeros.indexOf(b))); } break; case 7: numeros.clear(); break; } } while (opcion !=8); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println(); System.out.println("\tMenu"); System.out.println("\t[1].leer numeros"); System.out.println("\t[2].mostrar numeros"); System.out.println("\t[3].Insertar al Inicio numeros");

135

System.out.println("\t[4].Insertar al final numeros"); System.out.println("\t[5].Insertar en una posicion un Numero"); System.out.println("\t[6].Buscar un numero"); System.out.println("\t[7].Borrar Lista de numeros"); System.out.println("\t[8].salir"); System.out.print("\telegir una opccion:"); op=leer.nextInt(); return op; } private static void leer(LinkedList<String> numeros, int n) { Scanner leer=new Scanner(System.in); for (int i = 0; i < n; i++) { System.out.print("\tnumero "+(i+1)+":"); numeros.add(leer.next());//leer por teclado numeros:en una coleccion } } private static void mostrar(LinkedList<String> numeros) { for (Iterator<String> it = numeros.iterator(); it.hasNext();) { System.out.print("\t"+it.next()); } System.out.println(); } }

EXAMENES RESUELTOS DE LA PROGRAMACION ORIENTADA A OBJETOS Programa 87


1.implementar un programa en java con el siguiente menu. Las matrices ingresadas son de orden cuadrada. 1.Leer vector 2.Mostrar vector 3.Sumar vectores 4.Hallar el promedio de vectores. 5.Hallar el mayor vector. 6.Hallar la moda del vector.. 7.Leer la primera matris 8.Leer la segunda matriz 9.Hallar la suma de dos matrices. 10.Hallar la diagonal principal de la suma de dos matrices. 11.salir. Elegir una opcin: Solucion

136

import java.util.Scanner; public class Menu { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int []v=null; int [][]m1=null; int [][]m2=null; int [][]suma=null; int []filas=null; int []cols=null; int opc,n=0,ord=0; do{ opc=menu(); switch(opc){ case 1:System.out.print("ingresar cantidad de elementos de vector: "); n=leer.nextInt(); v=new int[n]; leer(v); break; case 2: System.out.println("mostrar los datos de un vector"); mostrar(v); break; case 3: System.out.println("suma de vectores:"+sumavector(v)); break; case 4:System.out.println("promedio del vector:"+promediovector(v)); break; case 5:mayorvector(v); break; case 6:System.out.println("la moda del vector es:"+modavector(v,n)); break; case 7:System.out.print("ingresar una matriz de orden cuadrada:"); ord=leer.nextInt(); m1=new int [ord][ord];; m2=new int [ord][ord];; suma= new int [ord][ord]; filas= new int [ord]; cols= new int [ord]; System.out.println("\tleer matriz 1"); leer1(m1,ord); System.out.println("\tmostrar la matris 1"); mostrar1(m1,ord); break; case 8: System.out.println("\tleer matriz 2"); leer2(m2,ord); System.out.println("\tmostrar la matris 2"); mostrar2(m2,ord); break; case 9: System.out.print("\tla suma de dos matrices son"); sumaM(m1,m2,suma); System.out.println("\t"); mostrarsuma(suma); break;

137

case 10:System.out.println("diagonal principal de la suma de dos matrices "); dprincipal(suma); break; } }while(opc!=11); } private static int menu() { Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.leer vector"); System.out.println("2.mostrar vector"); System.out.println("3.suma de vectores"); System.out.println("4.promedio de vectores"); System.out.println("5.mayor vector"); System.out.println("6.moda del vector :"); System.out.println("7.leer la primera matriz :"); System.out.println("8.leer la segunda matriz"); System.out.println("9.la suma de dos matrices:"); System.out.println("10.diagonal principal de la suma de dos matrices :"); System.out.println("11.salir :"); System.out.println("elegir una opccion:"); op=leer.nextInt(); return op; } private static void leer(int[] v) { Scanner leer=new Scanner(System.in); for (int i = 0; i < v.length; i++) { System.out.print("\nv["+(i+1)+"]="); v[i]=leer.nextInt(); } } private static void mostrar(int[] v) { for (int i = 0; i < v.length; i++) { System.out.println("\nv["+(i+1)+"]="+v[i]); } System.out.println("mostrar"); } private static int sumavector(int[] v) { int sum=0; for (int i = 0; i < v.length; i++) { sum+=v[i]; } return sum; } private static float promediovector(int[] v) { float prom; prom=(float) sumavector(v)/v.length; return prom; } private static void mayorvector(int[] v) { int may=v[0],psc=0; for(int i=0;i<v.length;i++) if(may<v[i]){ psc=i; may=v[i]; } System.out.println(" menor vector es:"+may); System.out.println("la posicion del menor vector es:"+(psc+1)); }

138

private static int modavector(int[] v,int n) { int contador=0,aux=0,moda=0; for (int i = 0; i <n-1; i++) { for (int j =i+1; j <n; j++) { if (v[i]==v[j]) { contador++; if (contador>aux) { aux=contador; moda=v[i]; } } } contador=0; } return moda; } public static void leer1(int[][] m1, int ord) { Scanner br = new Scanner(System.in); for(int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m1[i][j]=br.nextInt(); } } } public static void leer2(int[][] m2, int ord) { Scanner br = new Scanner(System.in); for(int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print("M["+(i+1)+"]["+(j+1)+"]="); m2[i][j]=br.nextInt(); } } } private static void mostrar1(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(); } } private static void mostrar2(int[][] m1, int ord) { for (int i = 0; i <ord; i++) { for (int j = 0; j < ord; j++) { System.out.print(m1[i][j]+"\t"); } System.out.println(); } } public static void sumaM(int[][] m1, int[][] m2, int[][] suma) { for(int i=0;i<suma.length;i++){ for(int j=0;j<suma[i].length;j++){ suma[i][j]=m1[i][j]+m2[i][j]; } } }

139

private static void mostrarsuma(int[][] suma) { for (int i = 0; i <suma.length; i++) { for (int j = 0; j <suma[i].length; j++) { System.out.print(suma[i][j]+"\t "); } System.out.println(" "); } } private static void dprincipal(int[][] suma) { int sumaDiagonal=0; System.out.println(); for (int i = 0; i < suma.length; i++) { for (int j = 0; j < suma[i].length; j++) { if (i==j) { sumaDiagonal+=suma[i][j]; } } } System.out.println("diagonal principal de suma de dos matrices: "+sumaDiagonal); } }

Programa 88
Implementar el siguiente programa en java. Crear una clase Cono con los siguientes atributos (radio, altura) y crea sus mtodos para calcular su rea y volumen del cono. Crear una clase Esfera con los siguientes atributos (radio) y crear un mtodo para calcular su rea y volumen de la esfera. Luego crear una clase aplicacin para probar sus respectivos mtodos desde el main.

Solucin Primera parte:


public class Cono { private float r; private float h; public Cono() { } public Cono(float r, float h) { super(); this.r = r; this.h = h; } public float getR() { return r; } public void setR(float r) { this.r = r; } public float getH() {

140

return h; } public void setH(float h) { this.h = h; } public float calcularArea() { float g=(float) Math.sqrt(h*h + r*r); return (float) (Math.PI*r*(r + 2*g)); } public float calcularVolumen() { return (float) (Math.PI*r*r*h/3); } }

Segunda parte:
public class Esfera { private float r; public Esfera() { } public Esfera(float r) { super(); this.r = r; } public float getR() { return r; } public void setR(float r) { this.r = r; } public float calcularArea() { return (float) (4*Math.PI*r*r); } public float calcularVolumen() { return (float) (4*Math.PI*Math.pow(r, 3)/3); } }

Aplicacin del Ejercicio


import java.util.Scanner; public class Aplicacion { public static void main(String[] args) { Esfera esferita= new Esfera(); Cono conito = new Cono(); Scanner xx= new Scanner(System.in); System.out.print("radio cono : "); conito.setR(xx.nextFloat()); System.out.print("altura cono : "); conito.setH(xx.nextFloat()); System.out.print("radio esfera: "); esferita.setR(xx.nextFloat());

141

System.out.println("AREA ESFERA : System.out.println("VOLUMEN ESFERA: System.out.println("AREA CONO : System.out.println("VOLUMEN CONO : } }

" " " "

+ + + +

esferita.calcularArea()); esferita.calcularVolumen()); conito.calcularArea()); conito.calcularVolumen());

Primer Examen Parcial Algoritmos y Estructura de Datos I


1. Responder con claridad y precisin a las siguientes preguntas. a. Explicar brevemente con un ejemplo la vista de Interfaz y la vista de Implementacin. b. Porque se dice que un objeto es una encapsulacin de caractersticas y comportamientos, explique con un ejemplo. c. Implementar la clase de Productos. Crear un nuevo Constructor para la clase Producto haciendo referencia a sus tres primeros atributos. Crear la clase main para hacer uso de la clase producto, instanciando tres productos: dos de ellos sern creados con el nuevo constructor y el otro con el constructor que se crea por defecto; hacer uso de los mtodos get y set para trabajar hasta con tres atributos de cada clase. (5 ptos.) 2. Implementar la clase Linea: -Tenga cuatro atributos private de tipo doubl (representan las coordenadas del inicio y fin de la lnea). -Tenga un constructor por defecto (sin parametros) que inicialice los cuatro atributos al valor deseado. -Tenga un constructor con cuatro parmetros de tipo doubl que inicialice los cuatro atributos. -Tenga los getter y setter para cada uno de los atributos. -Tenga un mtodo CalcularDistanciaLinea, donde se utiliza los atributos para dicha operacin. Implementar una clase UsarLinea que en su mtodo main: -Instancie tres lneas de la clase Linea y muestre el permetro del tringulo que forman estas lneas. (5 ptos.) 3. Elaborar un programa que pide introducir una cadena de caracteres por teclado y visualiza por pantalla el nmero de caracteres a, e, i, o, u que contiene dicha cadena. Mostrar la cadena de caracteres luego de reemplazar los caracteres anteriores por sus respectivas maysculas. El programa tambin debe pedir ingresar su nombre completo para agregarlo, en maysculas, a la cadena de caracteres inicial, mostrando el tamao de final de dicha cadena de caracteres. El programa tambin debe pedir una cadena de caracteres para ser comparada con la cadena de caracteres inicial. (5 ptos.)

142

4. Una empresa dispone de 3 almacenes de grandes contenedores. El primer almacn tiene una capacidad de 2 contenedores, el segundo de 4 y el tercero de 8. El primero se encuentra muy cerca de una va (carretera) principal, el segundo se encuentra a 10 kilmetros de la carretera principal y el tercero a 20 kilmetros. Los camioneros o bien llegan con un contenedor (uno solo por camin) o bien llegan con el camin vaco con la intencin de llevarse un contenedor. En cualquier caso, siempre ha existido un vigilante al comienzo del camino que lleva a los almacenes que le indicaba a cada camionero a que almacn deba dirigirse a depositar el contenedor que traa o a recoger un contenedor, en caso de llegar sin carga. El vigilante, con muy buena lgica, siempre ha indicado a los camioneros el almacn ms cercano donde podan realizar la operacin de carga o descarga, evitando de esta manera largos trayectos de ida y vuelta a los almacenes ms lejanos cuando estos desplazamientos no eran necesarios. Como el buen vigilante est a punto de jubilarse, nos encargan la realizacin de un programa informtico que, de forma automtica indique a los camioneros el almacn al que deben dirigirse minimizando los costes de combustible y tiempo. Los camioneros, una vez que llegan a la barrera situada al comienzo del camino, pulsan un botn (m) si van a meter un contenedor, o un botn (s) si lo van a sacar. El programa les indicar en un panel el almacn (1, 2 3) al que se deben dirigir. (5 ptos.)

SOLUCION DEL PRIMER EXAMEN PARCIAL ALGORITMOS Y ESTRUTURA DE DATOS I


PREGUNTA 1.C Solucion
package PrimerParcial; public class Producto { int codigo; String nombre; String marca; String garantia; double precio; String descripcion; String presentacion; boolean foto; public Producto(){ codigo=1010; nombre="Anonimo"; marca="Anonimo"; garantia="No Disponible"; precio=0.0; descripcion="Ninguna"; presentacion="Ninguna"; foto=false; } public Producto(int codigo, String nombre, String marca){ this.codigo=codigo; this.nombre=nombre; this.marca =marca; }

143

public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getMarca() { return marca; } public void setMarca(String marca) { this.marca = marca; } public String getGarantia() { return garantia; } public void setGarantia(String garantia) { this.garantia = garantia; } public double getPrecio() { return precio; } public void setPrecio(double precio) { this.precio = precio; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public String getPresentacion() { return presentacion; } public void setPresentacion(String presentacion) { this.presentacion = presentacion; } public boolean getFoto() { return foto; }

144

public void setFoto(boolean foto) { this.foto = foto; } }

Aplicacin del Producto


public class UsaProducto { public static void main(String[] args) { Producto prod1=new Producto(1213,"Arroz","Cholo"); prod1.setGarantia("Disponible"); prod1.setPrecio(3.6); prod1.setDescripcion("Producto de la canasta familiar"); System.out.println("===================Producto 01==================="); System.out.println("Codigo: "+prod1.getCodigo()); System.out.println("Nombre: "+prod1.getNombre()); System.out.println("Marca: "+prod1.getMarca()); System.out.println("Garantia: "+prod1.getGarantia()); System.out.println("Precio: "+prod1.getPrecio()); System.out.println("Descripcion: "+prod1.getDescripcion()); System.out.println("Presentacion: "+prod1.getPresentacion()); System.out.println("Fotografia: "+prod1.getFoto()); Producto prod2=new Producto(2223,"Azucar","Laredo"); prod2.setGarantia("No Disponible"); prod2.setPrecio(4.6); prod2.setDescripcion("Producto de la canasta familiar"); System.out.println("===================Producto 02=========="); System.out.println("Codigo: "+prod2.getCodigo()); System.out.println("Nombre: "+prod2.getNombre()); System.out.println("Marca: "+prod2.getMarca()); System.out.println("Garantia: "+prod2.getGarantia()); System.out.println("Precio: "+prod2.getPrecio()); System.out.println("Descripcion: "+prod2.getDescripcion()); System.out.println("Presentacion: "+prod2.getPresentacion()); System.out.println("Fotografia: "+prod2.getFoto()); Producto prod3=new Producto(); System.out.println("===================Producto 03========="); System.out.println("Codigo: "+prod3.getCodigo()); System.out.println("Nombre: "+prod3.getNombre()); System.out.println("Marca: "+prod3.getMarca()); System.out.println("Garantia: "+prod3.getGarantia()); System.out.println("Precio: "+prod3.getPrecio()); System.out.println("Descripcion: "+prod3.getDescripcion()); System.out.println("Presentacion: "+prod3.getPresentacion()); System.out.println("Fotografia: "+prod3.getFoto()); } }

145

PREGUNTA 2 Solucion
public class double double double double Linea { x1; y1; x2; y2;

public Linea(){ x1=1; y1=1; x2=4; y2=3; } public Linea(double X1, double Y1, double X2, double Y2){ x1=X1; y1=Y1; x2=X2; y2=Y2; } public double getX1() { return x1; } public void setX1(double x1) { this.x1 = x1; } public double getY1() { return y1; } public void setY1(double y1) { this.y1 = y1; } public double getX2() { return x2; } public void setX2(double x2) { this.x2 = x2; } public double getY2() { return y2; } public void setY2(double y2) { this.y2 = y2; } public double CalcularDistanciaLinea(){ return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); } }

146

Aplicacin de Linea
public class UsarLinea { public static void main(String[] args) { double perimetro; Linea linea1=new Linea(0,0,0,3); Linea linea2=new Linea(0,3,4,0); Linea linea3=new Linea(4,0,0,0); System.out.println("Distancia Linea 01: "+linea1.CalcularDistanciaLinea()); System.out.println("Distancia Linea 02: "+linea2.CalcularDistanciaLinea()); System.out.println("Distancia Linea 03: "+linea3.CalcularDistanciaLinea()); perimetro=linea1.CalcularDistanciaLinea()+linea2.CalcularDistanciaLinea()+l inea3.CalcularDistanciaLinea(); System.out.println("Perimetro: "+perimetro); } }

PREGUNTA 3 Solucion
import java.util.*; public class Cadena { public static void main(String[] args) { int as=0; int es=0; int is=0; int os=0; int us=0; String cadena="Hola a todos los presentes, bienvenidos"; String nom; Scanner nombre=new Scanner(System.in); for (int i=0;i<cadena.length();i++){ if(cadena.charAt(i)=='a') as=as+1; if(cadena.charAt(i)=='e') es=es+1; if(cadena.charAt(i)=='i') is=is+1; if(cadena.charAt(i)=='o') os=os+1; if(cadena.charAt(i)=='u') us=us+1; } System.out.println("Nro. a:"+as); System.out.println("Nro. e:"+es); System.out.println("Nro. i:"+is); System.out.println("Nro. o:"+os); System.out.println("Nro. u:"+us); cadena=cadena.replace('a', 'A'); cadena=cadena.replace('e', 'E');

147

cadena=cadena.replace('i', 'I'); cadena=cadena.replace('o', 'O'); cadena=cadena.replace('u', 'U'); System.out.println(cadena); System.out.println("Ingresar Nombre para agragar a la cadena anterior"); nom=" "+nombre.next(); cadena=cadena.concat(nom.toUpperCase()); System.out.println(cadena); System.out.println("Ingresar cadena a comparar"); nom=nombre.next(); System.out.println("Resultado de comparacion: "+cadena.compareTo(nom)); } }

PREGUNTA 4 Solucion
package PrimerParcial; public class Almacen { int Capacidad; int Huecos; public Almacen(int Capacidad){ this.Capacidad=Capacidad; Huecos=Capacidad; } public int DimeNumeroDeHuecos(){ return Huecos; } public int DimeCapacidad(){ return Capacidad; } public boolean HayHueco(){ return Huecos!=0; } public boolean HayContenedor(){ return Huecos!=Capacidad; } public void MeteContenedor(){ Huecos--; } public void SacaContenedor(){ Huecos++; } } APLICACIN DE ALMACEN public class ControlAlmacen { public static void main(String[] args) { Almacen almacen1=new Almacen(2); Almacen almacen2=new Almacen(4); Almacen almacen3=new Almacen(8);

148

System.out.println("=====Informacion Almacen 01=============");


System.out.println("Capacidad Almacen 01: "+almacen1.DimeCapacidad()); System.out.println("Disponibles Almacen 01: "+almacen1.DimeNumeroDeHuecos()); System.out.println("=========Informacion Almacen 02========="); System.out.println("Capacidad Almacen 02: "+almacen2.DimeCapacidad()); System.out.println("Disponible Almacen 02:"+almacen2.DimeNumeroDeHuecos()); System.out.println("=========Informacion Almacen 03========="); System.out.println("Capacidad Almacen 03: "+almacen3.DimeCapacidad()); System.out.println("Disponibles Almacen 03: "+almacen3.DimeNumeroDeHuecos()); } }

Programa 89
Implementar en java el siguiente programa.Crear una clase Acleta con los siguientes atributos (identificador , apellido , nombre, salto de prueba1, salto de prueba2, salto final1, salto final2 ,mayor salto ,menor salto) y crear su contructor en java y muestra los Get y Set de los Atributos Luego crear un mtodo mostrar Acleta , en donde mostramos los atributos del Acleta (utilizar solo los Get para este caso) Luego creamos mtodos para calcular el salto mayor y el salto menor del Acleta Luego crear una aplicacin Acleta para leer por teclado los siguientes atributos del Acleta:identificador ,apellido ,nombre,salto de prueba1,salto de prueba2,salto final1,salto final2 y realizar la instancia de la clase Acleta. Luego en nuestra aplicacin Acleta ,probar sus mtodos de la clase Acleta y probar el mtodo mostrar Acleta,Toda aplicacin ser implentada desde el main. Solucion
public class Atleta { private int identificador; private String apellido; private String nombre; private float saltoPrueba1; private float saltoPrueba2; private float saltoFinal1; private float saltoFinal2; private float mayorSalto; private float menorSalto;

149

public Atleta() { } public Atleta(int identificador, String apellido, String nombre, float saltoPrueba1, float saltoPrueba2, float saltoFinal1, float saltoFinal2, float mayorSalto, float menorSalto) { super(); this.identificador = identificador; this.apellido = apellido; this.nombre = nombre; this.saltoPrueba1 = saltoPrueba1; this.saltoPrueba2 = saltoPrueba2; this.saltoFinal1 = saltoFinal1; this.saltoFinal2 = saltoFinal2; this.mayorSalto = mayorSalto; this.menorSalto = menorSalto; } public int getIdentificador() { return identificador; } public void setIdentificador(int identificador) { this.identificador = identificador; } public String getApellido() { return apellido; } public void setApellido(String apellido) { this.apellido = apellido; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public float getSaltoPrueba1() { return saltoPrueba1; } public void setSaltoPrueba1(float saltoPrueba1) { this.saltoPrueba1 = saltoPrueba1; } public float getSaltoPrueba2() { return saltoPrueba2; } public void setSaltoPrueba2(float saltoPrueba2) { this.saltoPrueba2 = saltoPrueba2; } public float getSaltoFinal1() { return saltoFinal1; } public void setSaltoFinal1(float saltoFinal1) { this.saltoFinal1 = saltoFinal1; } public float getSaltoFinal2() { return saltoFinal2; } public void setSaltoFinal2(float saltoFinal2) { this.saltoFinal2 = saltoFinal2; }

150

public float getMayorSalto() { return mayorSalto; } public void setMayorSalto(float mayorSalto) { this.mayorSalto = mayorSalto; } public float getMenorSalto() { return menorSalto; } public void setMenorSalto(float menorSalto) { this.menorSalto = menorSalto; } public void mostrar() { System.out.println("Identificador : "+ getIdentificador()); System.out.println("apellido : "+ getApellido()); System.out.println("nombre : "+ getNombre()); System.out.println("los saltos de los Acletas son :"); System.out.println("salto prueba1 : "+ getSaltoPrueba1()); System.out.println("salto prueba2 : "+ getSaltoPrueba2()); System.out.println("salto final1 : "+ getSaltoFinal1()); System.out.println("salto final2 : "+ getSaltoFinal2()); System.out.println("\tsalto Mayor: "+ getMayorSalto()); System.out.println("\tsalto Menor: "+ getMenorSalto()); } public float calculaSaltoMayor(float n1, float n2) { if (n1>n2) {//saltos mayores return n1; } else { return n2; } } public float calculaSaltoMayor() { return calculaSaltoMayor(calculaSaltoMayor(saltoPrueba1, saltoPrueba2), calculaSaltoMayor(saltoFinal1,saltoFinal2)); } public float calculaSaltoMenor(float n1, float n2) { if (n1<n2) {//saltos mayores return n1; } else { return n2; } } public float calculaSaltoMenor() { return calculaSaltoMenor(calculaSaltoMenor(saltoPrueba1, saltoPrueba2), calculaSaltoMenor(saltoFinal1,saltoFinal2)); } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionAtleta { public static void main(String[] args) { Scanner leer= new Scanner(System.in); int identificador; String apellido;

151

String nombre; float saltoPrueba1; float saltoPrueba2; float saltoFinal1; float saltoFinal2; System.out.print(" codigo de identificador: "); identificador=leer.nextInt(); System.out.print("apellido: "); apellido=leer.next(); System.out.print("nombre: "); nombre=leer.next(); System.out.print("salto prueba 1: "); saltoPrueba1=leer.nextFloat(); System.out.print("salto prueba 2: "); saltoPrueba2=leer.nextFloat(); System.out.print("salto final 1 : "); saltoFinal1=leer.nextFloat(); System.out.print("salto final 2 : "); saltoFinal2=leer.nextFloat(); Atleta nuevo= new Atleta(identificador, apellido, nombre,saltoPrueba1 ,saltoPrueba2,saltoFinal1,saltoFinal2,0,0); nuevo.setMayorSalto(nuevo.calculaSaltoMayor()); nuevo.setMenorSalto(nuevo.calculaSaltoMenor()); System.out.println("\nMostrar Acleta"); nuevo.mostrar();}

Programa 90
En una empresa se desea llevar el control de pagos de los empleados sabiendo que: a.Existen diferentes cargos o tipos de empleados(administrador,secretaria,asistente) b. cada empleado cumple un numero de horas semanal de trabajo diferente,segun el cargo. c.El pago por hora que recibe cada trabajador,tambien depende del tipo de empleado d.Todos los empleados tienen un descuento del 12% del sueldo bruto por concepto de AFP . Usted esta encargado de desarrollar una aplicacion que permita registrar una lista de empleados,calcular el sueldo de cada empleado,mostrar la lista de empleados,buscar el pago de un empleado, buscar el descuento de un empleado ,ver los empleados que reciben el sueldo mayor, ver los empleados que reciben el sueldo menor , mostrar los empleados ordenados por apellido , mostrar los empleados ordenados por cargo, ver la planilla de un empleado. Nota: crear una clase Empleado ,considerar entre 5 y 7 atributos ,implementar los contructores segun sea nesesario, implementar los metodos que le ayuden a solucionar los problemas e implementar un menu para probar su aplicacion. Solucion.

152

public class Empleado { private String apellido; private String nombre; private String cargo; private int horasTrabajadas; private int PagoPorHora; public Empleado(String apellido,String nombre,String cargo,int horasTrabajadas,int PagoPorHora){ this.apellido=apellido; this.nombre=nombre; this.cargo=cargo; this.horasTrabajadas=horasTrabajadas; this.PagoPorHora=PagoPorHora; } public int sueldoBruto(){ int sb=0; sb=this.horasTrabajadas*this.PagoPorHora; return sb; } public double calcularDescuento(){ double desc=0; desc=this.sueldoBruto()*0.12; return desc; } public double calcularPago(){ double pago=0; pago=this.sueldoBruto()-this.calcularDescuento(); return pago; } public void mostrar(){ System.out.println(this.apellido+" , "+this.nombre+"----->"+this.cargo+", "+this.calcularPago()+" , "+this.calcularDescuento()); } public String getapellido(){ return apellido; } public String getcargo(){ return cargo; } }

Aplicacin del ejercicio


import java.util.Scanner; public class Aplicacion { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int opccion,n=0; Empleado lista[]=new Empleado[10]; String nombre,apellido,cargo; int pago,horas; do{ opccion=menu(); switch(opccion){ case 1: System.out.println("cantidad de empleados :"); n=leer.nextInt(); for(int i=0;i<n;i++){

153

System.out.println("Empleado"+(i+1)); System.out.println("Nombre :"); nombre=leer.next(); System.out.println("Apellido :"); apellido=leer.next(); System.out.println("cargo :"); cargo=leer.next(); System.out.println("horas trabajadas :"); horas=leer.nextInt(); System.out.println("pago por hora :"); pago=leer.nextInt(); Empleado tmp=new Empleado(apellido,nombre,cargo,horas,pago); lista[i]=tmp; } break; case 2: System.out.println("APELLIDO Y NOMBRE\tCARGO\tSUELDO\tDESCUENTO"); for(int i=0;i<n;i++) lista[i].mostrar(); break; case 3: String clave; System.out.println("Ingresar un apellido"); clave=leer.next(); boolean encontrado=false; for(int i=0;i<n;i++){ if(clave.equals(lista[i].getapellido())){ encontrado=true; System.out.println(" sueldo ="+lista[i].calcularPago()); break; } } if(encontrado=false) System.out.println("empleado no encontrado"); break; case 4: String clave1; System.out.println("ingresar un apellido"); clave1=leer.next(); boolean encontrado1=false; for(int i=0;i<n;i++){ if(clave1.equals(lista[i].getapellido())){ encontrado1=true; System.out.println("descuento ="+lista[i].calcularDescuento()); break; } } if(encontrado1=false) System.out.println("empleado no encontrado"); break; case 5: double mayor=hallarMayor(lista,n); for(int i=0;i<n;i++) if(mayor==lista[i].calcularPago()) lista[i].mostrar(); break;

154

case 6: double menor=hallarMenor(lista,n); for(int i=0;i<n;i++) if(menor==lista[i].calcularPago()) lista[i].mostrar(); break; case 7: ordenarApellido(lista,n); for(int i=0;i<n;i++) lista[i].mostrar(); break; case 8:ordenarCargo(lista,n); for(int i=0;i<n;i++) lista[i].mostrar(); break; case 9: String clave2; System.out.println("ingresar apellido"); clave2=leer.next(); boolean encontrado2=false; for(int i=0;i<n;i++){ if(clave2.equals(lista[i].getapellido())){ encontrado2=true; System.out.println("sueldo bruto:"+lista[i].sueldoBruto()); System.out.println("descuento:"+lista[i].calcularDescuento()); System.out.println("sueldo neto:"+lista[i].calcularPago()); break; } } if(encontrado2=false) System.out.println("no se enuentra el empleado "); break; } }while(opccion!=11); } private static void ordenarCargo(Empleado[] lista, int n) { for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(lista[i].getcargo().compareTo(lista[j].getcargo())>0){ Empleado tmp=lista[i]; lista[i]=lista[j]; lista[j]=tmp; } } private static void ordenarApellido(Empleado[] lista, int n) { for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(lista[i].getapellido().compareTo(lista[j].getapellido())>0){ Empleado tmp=lista[i]; lista[i]=lista[j]; lista[j]=tmp; } }

155

private static double hallarMenor(Empleado[] lista, int n) { double menor=lista[0].calcularPago(); for(int i=0;i<n;i++){ if(menor>lista[i].calcularPago()) menor=lista[i].calcularPago(); } return menor; } private static double hallarMayor(Empleado[] lista, int n) { double mayor=lista[0].calcularPago(); for(int i=0;i<n;i++){ if(mayor<lista[i].calcularPago()) mayor=lista[i].calcularPago(); } return mayor; } private static int menu(){ Scanner leer=new Scanner(System.in); int op; System.out.println("menu"); System.out.println("1.resgistra empleado"); System.out.println("2.mostrar lista de empleados"); System.out.println("3.buscar pago,por apellido "); System.out.println("4.buscar descuento ,por apellido"); System.out.println("5.empleado con sueldo mayor"); System.out.println("6.empleado con sueldo menor"); System.out.println("7.ordenar por apellido"); System.out.println("8.ordenar por cargo"); System.out.println("9.ver planilla de un empleado"); System.out.println("10.salir"); System.out.print("elegir una opccion :"); op=leer.nextInt(); return op; } }

Programa 91
Implentar un programa en java. Crear una clase Operaciones con los siguientes mtodos. -Leer un vector. -Mostrar un vector. -Sumar vectores -Hallar moda del vector -Ordenar vector descendentemente con Burbuja. -Mostrar bsqueda binaria del vector. -Leer una serie Fibonacci con vectores y mostrar vector de la serie fibonaci. Luego crear una aplicacin en java desde el main para probar sus respectivos mtodos de la clase operaciones.

156

Solucion
import java.util.Scanner; public class Operaciones { public void leerVector(int[]v) { Scanner leer=new Scanner(System.in); for (int i = 0; i <v.length; i++) { System.out.print("\tv["+(i)+"]="); v[i]=leer.nextInt(); }} public void mostrarV(int[] v) { for (int i = 0; i < v.length; i++) { System.out.println("\nv["+(i)+"]="+v[i]); } System.out.println(); } public int suma(int[] v) { int sum=0; for (int i = 0; i < v.length; i++) { sum+=v[i]; } return sum;} public int modaVector(int[] v,int n) { int contador=0,aux=0,moda=0; for (int i = 0; i <n-1; i++) { for (int j =i+1; j <n; j++) { if (v[i]==v[j]) { contador++; if (contador>aux) { aux=contador; moda=v[i]; } } } contador=0; } return moda; } public void ordenarVector(int[] v) {//descendentemente for (int i = 0; i <v.length-1; i++) for (int j = i+1; j <v.length; j++) if (v[i]<v[j]) { int aux =v[i]; v[i]=v[j]; v[j]=aux;}} public void busquedaBinaria(int []v,int buscar) { ordenarVector(v); int inicio=0; int fin=v.length-1; int centro=(inicio+fin)/2; while(inicio<=fin && v[centro]!=buscar){ if(buscar<v[centro]){ fin=centro-1; } else{ inicio=centro+1; } centro=(inicio+fin)/2; } if(buscar==v[centro]){

157

System.out.println("Elemento encontrado :"+(centro+1)); } else{ System.out.println("Elemento no encontrado");} } public void leerSerieFibonaciVector(int[] v,int n) { int fb1=0,fb2=1; if (n==1) { v[1]=1; }else if(n==2){ v[1]=v[2]=1; }else { v[1]=v[2]=1; for (int i = 2; i < v.length; i++) { v[i]=fb1+fb2; fb1=fb2; fb2=v[i]; } } } }

Aplicacin del ejercicio


import java.util.Scanner; public class AplicacionOperaciones { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Ingresar la cantidad de numero: "); int n=sc.nextInt(); int[] v= new int[n]; Operaciones nuevo=new Operaciones(); System.out.println("leer vector: "); nuevo.leerVector(v); System.out.println("mostrar vector: "); nuevo.mostrarV(v); System.out.println("Suma de vectores: "+nuevo.suma(v)); System.out.println("la moda del vector es :"+nuevo.modaVector(v,n)); System.out.println("Ordenar vector descendentemente"); nuevo.ordenarVector(v); nuevo.mostrarV(v); System.out.println("Busqueda binaria: "); System.out.println("Numero a buscar: "); int buscar= sc.nextInt(); nuevo.busquedaBinaria(v, buscar); System.out.println("mostramos serie fibonacci"); System.out.println("Ingresar cantidad de elementos de la serie de fibonacci: "); n=sc.nextInt(); v=new int[n]; nuevo.leerSerieFibonaciVector(v, n); nuevo.mostrarV(v); } }

158

Programa 92
Se desea ingresar un programa para corregir una tarjeta de respuestas de los alumnos, que tienen 10 preguntas con 3 posibles respuestas a,b,c toda respuesta distinta ser considerada como un punto menos y la respuesta correcta sera considerada como 3 puntos.Terminada la evaluacion de la tarjeta me debe devolver el puntaje obtenido ,Implementar con vectores.

Solucion
import java.util.Scanner; class ExamenTipoAdmision { public static void main(String[] args) { Scanner leer=new Scanner(System.in); char []respuesta=new char[10];//tiene 10 preguntas en un vector respuesta //las 10 preguntas con tres posibles respuestas en un vector respuesta[0]='a'; respuesta[1]='b'; respuesta[2]='c'; respuesta[3]='b'; respuesta[4]='a'; respuesta[5]='b'; respuesta[6]='c'; respuesta[7]='b'; respuesta[8]='a'; respuesta[9]='b'; char []vr=new char[10];//crear el vector respuesta con un char System.out.println("Ingresar respuestas:"); //leer 10 respuestas con vectores for(int i=0;i<10;i++){ System.out.println("respuesta["+(i)+"]: "); vr[i]=leer.next().charAt(0);//leer por teclado posibles respuestas } int notapos=0; int notaneg=0; for(int j=0;j<10;j++){ if (respuesta[j]==vr[j]) notapos=notapos+3; else notaneg=notaneg-1; } System.out.println("puntaje obtenido:"+(notapos+notaneg)+"puntos en total"); } }

Programa 93
Implementar en java el siguiente programa.Crear una clase Polinomio Monomio con los siguientes atributos (coeficiente ,exponente) , crear su contructor , mostrar los Get y Set,y crear un mtodo mostrar ; dentro del mtodo mostrar ,mostraramos getExponente.Luego creamos una Aplicacin de la clase Polinomio Monomio ,para crear las siguientes funciones.

159

-Leer un vector Polinomio Monomio. -Mostrar un vector Polinomio Monomio. -Hallar un vector Grado Polinomio Monomio.(Encuentra el mayor exponente del Polinomio) Solucion Primera parte
public class PolinomioMonomio { private int coeficiente; private int exponente; public PolinomioMonomio(int coeficiente, int exponente) { super(); this.coeficiente = coeficiente; this.exponente = exponente; } public int getCoeficiente() { return coeficiente; } public void setCoeficiente(int coeficiente) { this.coeficiente = coeficiente; } public int getExponente() { return exponente; } public void setExponente(int exponente) { this.exponente = exponente; } public void mostrar(){//mostrar el exponente System.out.println(this.getExponente()); } }

Segunda parte La Aplicacin del Ejercicio.


import java.util.Scanner; public class AplicacionPolinomioMonomio { public static void main(String[] args) { Scanner leer=new Scanner(System.in); PolinomioMonomio[] v=new PolinomioMonomio[50]; int n; System.out.println("Ingresar la cantidad de polinomios: "); n=leer.nextInt(); LeerPoly(v,n); MostrarPoly(v,n); System.out.println(""); System.out.print("\tGrado del Polinomio Monomio es :");//es el mayor exponente del polinomio. int mayor=GradoPoly(v,n); for(int i=0;i<n;i++){ if(v[i].getExponente()==mayor) v[i].mostrar(); } } private static void LeerPoly(PolinomioMonomio[] v, int n) { Scanner leer=new Scanner(System.in); int coeficiente,exponente; for(int i=0;i<n;i++){

160

System.out.println("ingresar coeficiente: "); coeficiente=leer.nextInt(); System.out.println("ingresar exponente: "); exponente=leer.nextInt(); v[i]=new PolinomioMonomio(coeficiente,exponente); } } private static void MostrarPoly(PolinomioMonomio[] v, int n) { for(int i=0;i<n;i++){ if(v[i].getCoeficiente()<0){ } else System.out.print(" + "); System.out.print(v[i].getCoeficiente()+"X^"+v[i].getExponente()); } } private static int GradoPoly(PolinomioMonomio[] v, int n) { int may=v[0].getExponente(); for(int i=0;i<n;i++) if(may<v[i].getExponente()) may=v[i].getExponente(); return may; } }

Programa 94
Implementar en java el siguiente programa.Crear una clase Persona con los siguientes atributos (cdigo ,nombre ,casado,sexo) ,utilizar un tipo de dato para casado boolean,para el sexo un char,para el cdigo un entero. Crear su contructor de la clase Persona y los mtodos Get y Set de la clase Persona Luego crear una aplicacin de la clase Persona desde el main con una interfaz de coleccin del tipo LinkedList amigos que me permita implementar con funciones las siguientes colecciones. -Leer amigos con n datos (leer por teclado sus atributos) -Mostrar amigos en una coleccin -Borrar cdigo Impar de amigos(dentro de la funcin mostrar en con maysculas nombre y sexo) Solucion:
public class Persona { private int codigo; private String nombre; private boolean casado; private char sexo; public Persona(int codigo, String nombre, boolean casado, char sexo){ super();

161

this.codigo = codigo; this.nombre = nombre; this.casado = casado; this.sexo = sexo;} public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public boolean isCasado() { return casado; } public void setCasado(boolean casado) { this.casado = casado; } public char getSexo() { return sexo; } public void setSexo(char sexo) { this.sexo = sexo; } }

Aplicacin del Ejercicio


import java.util.*; public class AplicacionPersona { public static void main(String[] args) { Scanner leer = new Scanner(System.in); System.out.print("Ingrese datos a leer: "); int n = leer.nextInt(); LinkedList<Persona> amigos = new LinkedList<Persona>();//interfaz collection leerLista(amigos, n); mostrarLista(amigos); borrarCodigoImpar(amigos); mostrarLista(amigos); } private static void leerLista(LinkedList<Persona> amigos, int n) { Scanner leer = new Scanner(System.in); for (int i = 1; i <= n; i++) { System.out.println(); System.out.print("PERSONA " + (i) + " : "); System.out.println(); System.out.print("Codigo: "); int codigo = leer.nextInt(); System.out.print("Nombre: "); String nombre =leer.next(); System.out.print("Casado?: "); boolean casado =leer.nextBoolean(); System.out.print("Sexo: "); char sexo =leer.next().charAt(0); amigos.add(new Persona(codigo, nombre, casado, sexo));

162

//Persona temp = new Persona(codigo, nombre, casado, sexo); //amigos.add(temp); } } private static void mostrarLista(LinkedList<Persona> amigos) { System.out.println(); System.out.println("Codigo" + "\t" + "Nombre" + "\t" + "Casado" + "\t" + "Sexo"); for (Iterator<Persona> iterator = amigos.iterator(); iterator.hasNext();) { Persona aux = (Persona) iterator.next(); System.out.print(aux.getCodigo() + "\t"); System.out.print(aux.getNombre() + "\t"); System.out.print(aux.isCasado() + "\t"); System.out.print(aux.getSexo() + "\t"); System.out.println(); } } private static void borrarCodigoImpar(LinkedList<Persona> amigos) { for (ListIterator<Persona> iterator = amigos.listIterator(); iterator.hasNext();) { Persona aux = (Persona) iterator.next(); aux.setNombre(aux.getNombre().toUpperCase());//mostrar convertido en mayusculas el nombre aux.setSexo(Character.toUpperCase(aux.getSexo()));//mostrar convertido en mayusculas el sexo iterator.set(aux); if (aux.getCodigo()%2!=0) { iterator.remove(); } } } }

Programa 95
Implementar en java el siguiente programa.Crear una clase Cancion con los siguientes atributos (String titulo ,String genero ,int duracion) y crear su contructor de la clase Cancion y mostrar los mtodos Get y Set de la clase Cancion. Luego crear una aplicacin de la clase Cancion desde el main con una interfaz de coleccin del tipo TreeMap<Integer, Cancion> lista de canciones que me permita implementar las siguientes funciones -Leer lista lista de canciones con n datos (leer por teclado sus atributos) -Mostrar lista de canciones con colecciones.

Solucion

163

public class Cancion { private String titulo; private String genero; private int duracion; public Cancion(String titulo, String genero, int duracion) { super(); this.titulo = titulo; this.genero = genero; this.duracion = duracion; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getGenero() { return genero; } public void setGenero(String genero) { this.genero = genero; } public int getDuracion() { return duracion; } public void setDuracion(int duracion) { this.duracion = duracion; } }

Aplicacin del Ejercicio


import java.util.Iterator; import java.util.Scanner; import java.util.Set; import java.util.TreeMap; public class AplicacionCancion { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { TreeMap<Integer, Cancion> lista = new TreeMap<Integer, Cancion>();//esta coleccion es la universal System.out.print("Ingrese numero de canciones: "); int n=sc.nextInt(); leerCanciones(lista,n); mostrarCanciones(lista); } private static void leerCanciones(TreeMap<Integer, Cancion> lista,int n) { System.out.println(); for (int i = 0; i < n; i++) { System.out.println(); System.out.println("Cancion "+(i+1)); System.out.print("Titulo de la cancion: "); String titulo=sc.next(); System.out.print("Genero de la cancion: ");

164

String genero=sc.next(); System.out.print("Duracion de la cancion: "); int duracion=sc.nextInt(); lista.put(i, new Cancion(titulo, genero, duracion)); } } private static void mostrarCanciones(TreeMap<Integer, Cancion> lista) { System.out.println("TITULO \tGENERO DURACION"); Set<Integer>s=lista.keySet(); for (Iterator<Integer> iterator = s.iterator(); iterator.hasNext();) { Integer aux = (Integer) iterator.next(); Cancion cancionTemp=lista.get(aux); System.out.print(cancionTemp.getTitulo()+"\t"); System.out.print(cancionTemp.getGenero()+"\t"); System.out.print(cancionTemp.getDuracion()+"\t"); System.out.println(); } } }

Programa 96 Crear el juego de la torre de Hanoi en java,Crear una funcin Torre Hanoi para poder implementar este juego. Solucion
import java.util.Scanner; public class TorreHanoi { public static void main(String[] args) { Scanner leer=new Scanner(System.in); int n; char a='A',b='B',c='C'; System.out.print(" Ingrese numeros de discos : "); n=leer.nextInt(); hanoi(a,c,b,n); } private static void hanoi(char a, char c, char b, int n) { if(n==1) System.out.println("Mover disco 1 desde varilla "+a+" a la torre "+c); else{ hanoi(a,b,c,n-1); System.out.println("Mover disco "+n+" desde Varilla "+a+" a la torre "+c); hanoi(b,c,a,n-1); } } }

165