Está en la página 1de 10

♦ Ejercicio figuras 18.1 y 18.

3
1 //FIG 18.1
2 // Método imprimirArreglo para imprimir arreglo Integer
3 public static void imprimirArreglo( Integer[] arregloEntrada ){
4 //Método imprimirArreglo Integer
5 for( Integer elemento : arregloEntrada ){
6 System.out.printf( "%s ", elemento );
7 }
8 System.out.println();
9 }// FIN del método imprimirArreglo Integer
1
0 // Método imprimirArreglo para Double
1 public static void imprimirArreglo( Double[] arregloEntrada ){
1 // muestra los elementos del arreglo
1 for ( Double elemento : arregloEntrada ){
2 System.out.printf( "%s ", elemento );
1 }
3 System.out.println();
1 } // FIN del método imprimirArreglo Double
4
1 // Método imprimirArreglo para imprimir arreglo Character
5 public static void imprimirArreglo( Character[] arregloEntrada ){
1 // muestra los elementos del arreglo
6 for ( Character elemento : arregloEntrada ){
1 System.out.printf( "%s ", elemento );
7 }
1 System.out.println();
8 } // FIN del método imprimirArreglo Character
1 //---------------------------------------------------------
9
2 //FIG 18.3
0 // Metodo GENERICO imprimirArreglo
2 public static < E > void imprimirArregloGeneral(E[] arregloEntrada){
1 //Muestra los elementos del arreglo
2 for( E elemento : arregloEntrada){
2 System.out.printf("%s ",elemento);
2 }
3 System.out.println();
2 }//FIN del método genérico
4 //--------------------------------------------------------
2
5
2
6 public static void main( String args[] ){
2 // Crea arreglos de objetos Integer, Double y Character
7 Integer[] arregloInteger = { 1, 2, 3, 4, 5, 6 };
2 Double[] arregloDouble = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 };
8 Character[] arregloCharacter = { 'H', 'O', 'L', 'A' };
2
9 //Utilizando metodo SOBRECARGADOS
3 System.out.println("***Utilizando metodo SOBRECARGADOS***");
0 System.out.println( "\nEl arreglo arregloInteger contiene:" );
3 imprimirArreglo( arregloInteger ); // pasa un arreglo Integer
1 System.out.println( "\nEl arreglo arregloDouble contiene:" );
3 imprimirArreglo( arregloDouble ); // pasa un arreglo Double
2 System.out.println( "\nEl arreglo arregloCharacter contiene:" );
3 imprimirArreglo( arregloCharacter ); // pasa un arreglo Character
3
3
4 //Utilizando el metodo GENERICO
3 System.out.println("\n\n***Utilizando el metodo GENERICO***");
5 System.out.println( "\nEl arreglo arregloInteger contiene:" );
3 imprimirArregloGeneral( arregloInteger ); // pasa un arreglo Integer
6 System.out.println( "\nEl arreglo arregloDouble contiene:" );
3 imprimirArregloGeneral ( arregloDouble ); // pasa un arreglo Double
7 System.out.println( "\nEl arreglo arregloCharacter contiene:" );
3 imprimirArregloGeneral ( arregloCharacter ); // pasa un arreglo Character
8
3 } // FIN de main
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
RESULTADO
run:

***Utilizando metodo SOBRECARGADOS***

El arreglo arregloInteger contiene:

123456

El arreglo arregloDouble contiene:

1.1 2.2 3.3 4.4 5.5 6.6 7.7

El arreglo arregloCharacter contiene:

HOLA

***Utilizando el metodo GENERICO***

El arreglo arregloInteger contiene:

123456

El arreglo arregloDouble contiene:

1.1 2.2 3.3 4.4 5.5 6.6 7.7

El arreglo arregloCharacter contiene:

HOLA

BUILD SUCCESSFUL (total time: 0 seconds)

♦ Ejercicio figura 18.5


En este ejercicio se determinará el valor más grande de 3 objetos de la misma
clase mediante la clase implementada Comparable utilizando el método
compareTo (0: iguales, -1: ob1 < ob2 y 1: ob1 > ob2) se realizará la
comparación de 2 en dos (ob1.CompareTo(ob2)) y así al final se determinará
el mayor de los 3.
1 package pruebamaximo;
2
3
4
5
6
7
8
9
1 public class PruebaMaximo {
0 //FIG 18.5
1 // determina el mayor de tres objetos Comparable
1 public static < T extends Comparable< T > > T maximo( T x, T y, T z ){
1 T max=x; // asume que x es el mayor, en un principio
2
1 if(y.compareTo(max)>0)
3 max=y; //Es el mayor hasta ahora
1
4 if(z.compareTo(max)>0){
1 max=z; //z es el mayor
5 }
1 return max; //Devuelve el objeto más grande
6 } //FIN del método maximo
1
7 public static void main( String args[] ){
1 System.out.printf( "Maximo de %d, %d y %d es %d\n\n", 3, 4, 5,
8 maximo( 3, 4, 5 ) );
1 System.out.printf( "Maximo de %.1f, %.1f y %.1f es %.1f\n\n",
9 6.6, 8.8, 7.7, maximo( 6.6, 8.8, 7.7 ) );
2 System.out.printf( "Maximo de %s, %s y %s es %s\n", "pera",
0 "manzana", "naranja", maximo( "pera", "manzana", "naranja" ) );
2 } //FIN de main
1 }
2
2
2
3
2
4
2
5

RESULTADO
run:

Maximo de 3, 4 y 5 es 5

Maximo de 6.6, 8.8 y 7.7 es 8.8

Maximo de pera, manzana y naranja es pera

BUILD SUCCESSFUL (total time: 0 seconds)


♦ Ejercicio figura 18.7
♦ Clase ExcepcionPilaLlena
1 public class ExcepcionPilaLlena extends RuntimeException{
2 //Constructor de ExcepcionPilaLlena SIN argumentos
3 public ExcepcionPilaLlena(){
4 this("La Pila esta llena");
5 }//FIN del constructor de ExcepcionPilaLlena SIN
6 argumentos
7
8 //Constructor de ExcepcionPilaLlena CON argumentos
9 public ExcepcionPilaLlena(String excepcion){
1 super(excepcion);
0 }//FIN del constructor de ExcepcionPilaLlena SIN
1 argumentos
1 }//FIN de la clase ExcepcionPilaLlena

♦ Clase ExcepcionPilaVacia
1
public class ExcepcionPilaVacia extends RuntimeException {
2
//Constructor de ExcepcionPilaVacia SIN argumentos
3
public ExcepcionPilaVacia(){
4
this("La Pila esta vacia");
5
}//FIN del constructor de ExcepcionPilaVacia SIN argumentos
6
7
//Constructor de ExcepcionPilaVacia CON argumentos
8
public ExcepcionPilaVacia(String excepcion){
9
super(excepcion);
1
}//FIN del constructor de ExcepcionPilaVacia CON un
0
argumento
1
}//FIN de la clase ExcepcionPilaVacia
1

♦ Clase Pila
1 package ejercicio18_7figura;
2 public class Pila<E>{
3
4 private final int tamanio;//Número de elementos en la pila
5 private int superior;//Ubicación del elemento superior
6 private E[] elementos;//Arreglo que almacena los elementos de la pila
7
8 //El constructor sin argumentos crea una pila del tamaño predeterminado
9 public Pila(){
1 this(10);//Tamaño predeterminado de la pila
0 }//FIN del constructor de Pila sin argumentos
1
1 //Constructor que crea una pila del número especificado de elementos
1 public Pila(int s) {
2 tamanio=s>0? s : 10; //Establece el tamaño de la Pila
1 superior=-1; //Al principio, la Pila está vacía
3 elementos=(E[]) new Object[tamanio]; //Crea el arreglo
1 } //FIN del constructor de Pila sin argumentos
4
1 //Mete un elemento a la pila; si tiene éxito, devuelve verdadero;
5 //en caso contrario, lanza excepción ExcepcionPilaLlena
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
public void push(E valorAMeter) {
3
if(superior==tamanio-1)//Si la pila está llena
2
throw new ExcepcionPilaLlena(String.format(
4
"La Pila esta llena, no se puede meter %s",valorAMeter));
2
elementos[ ++superior ]=valorAMeter;//Coloca valorAMeter en la Pila
5
}//FIN del método push
2
6
//Devuelve el elemento superior si no está vacía;
2
//de lo contrario lanza ExcepcionPilaVacia
7
public E pop(){
2
if(superior==-1)//Si la pila está vacía
8
throw new ExcepcionPilaVacia("La Pila esta vacia, "
2
+ "no se puede sacar");
9
return elementos[superior--];//Elimina y devuelve el
3
//elemento superior de la Pila
0
}//FIN del método pop
3
}//FIN de la clase Pila<E>
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8

♦ Clase PruebaPila
1 public class PruebaPila{
2
3 private double[] elementosDouble={1.1, 2.2, 3.3, 4.4, 5.5,
4 6.6};
5 private int[] elementosInteger={1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
6 11};
7
8 private Pila<Double> pilaDouble; //Pila que almacena objetos
9 Double
1 private Pila<Integer> pilaInteger; //Pila que almacena objetos
0 Integer
1
1 //Prueba objetos de Pila
1 public void pruebaPilas(){
2 pilaDouble=new Pila<Double>(5); //Pila de objetos Double
1 pruebaPushDouble(); //Mete valor double en pilaDouble
3 pruebaPopDouble(); //Saca de pilaDouble
1
4 pilaInteger=new Pila<Integer>(10); //Pila de objetos
1 Integer
5 pruebaPushInteger(); //Mete valor int en pilaInteger
1 pruebaPopInteger(); //Saca de pilaInteger
6 }//FIN del método probarPilas
1
7 //Prueba el método push con la pila de valores double
1 public void pruebaPushDouble(){
8 //Mete elementos en la pila
1 try{
9 System.out.println("\nMetiendo elementos en
2 pilaDouble");
0 //Mete elementos en la Pila
2 for(double elemento : elementosDouble){
1 System.out.printf("%.1f ", elemento);
2 pilaDouble.push(elemento); // mete en pilaDouble
2 }//FIN del for
2 }//FIN de try
3
2 catch(ExcepcionPilaLlena excepcionPilaLlena){
4 System.err.println();
2 excepcionPilaLlena.printStackTrace();
5 }//FIN de catch ExcepcionPilaLlena
2 }//FIN del método pruebaPushDouble
6
2 //Prueba el método pop con una pila de valores double
7 public void pruebaPopDouble(){
2 //Saca elementos de la pila
8 try{
2 System.out.println("\nSacando elementos de
9 pilaDouble");
3 double valorASacar; //Almacena el elemento que se eliminó
0 de la pila
3 //Elimina todos los elementos de la Pila
1 while(true){
3 valorASacar=pilaDouble.pop(); // saca de
2 pilaDouble
3 System.out.printf("%.1f ", valorASacar);
3 }//FIN de while
3 }//FIN de try
4
3 catch(ExcepcionPilaVacia excepcionPilaVacia){
5 System.err.println();
3 excepcionPilaVacia.printStackTrace();
6 }// FIN de catch ExcepcionPilaVacia
3 }// FIN del método pruebaPopDouble
7
3 //Prueba el método push con pila de valores enteros
8 public void pruebaPushInteger(){
3 //Mete elementos a la pila
9 try{
4 System.out.println( "\nMetiendo elementos a
0 pilaInteger" );
4 //Mete elementos a la Pila
1 for(int elemento : elementosInteger){
4 System.out.printf("%d ", elemento);
2 pilaInteger.push(elemento); // mete a pilaInteger
4 }//FIN de for
3 }//FIN de try
4 catch(ExcepcionPilaLlena excepcionPilaLlena){
4 System.err.println();
4 excepcionPilaLlena.printStackTrace();
5 }//FIN de catch ExcepcionPilaLlena
4 }//FIN del método pruebaPushInteger
6
4 //Prueba el método pop con una pila de enteros
7 public void pruebaPopInteger(){
4 //Saca elementos de la pila
8 try{
4 System.out.println("\nSacando elementos de
9 pilaInteger");
5 int valorASacar; //Almacena el elemento que se eliminó de
0 la pila
5
1 //Elimina todos los elementos de la Pila
5 while(true){
2 valorASacar=pilaInteger.pop(); // saca de
5 pilaInteger
3 System.out.printf("%d ",valorASacar);
5 } //FIN de while
4 }//FIN de try
5 catch(ExcepcionPilaVacia excepcionPilaVacia){
5 System.err.println();
5 excepcionPilaVacia.printStackTrace();
6 }//FIN de catch ExcepcionPilaVacia
5 }//FIN del método pruebaPopInteger
7
5 public static void main(String args[]){
8 PruebaPila aplicacion = new PruebaPila();
5 aplicacion.pruebaPilas();
9 } //FIN de main
6 } //FIN de la clase PruebaPila
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
7
1
7
2
7
3
7
4
7
5
7
6
7
7
7
8
7
9
8
0
8
1
8
2
8
3
8
4
8
5
8
6
8
7
8
8
8
9
9
0
9
1
9
2
9
3
9
4
9
5
9
6
9
7

RESULTADO
run:

Metiendo elementos a pilaDouble

1.1 2.2 3.3 4.4 5.5 6.6

Sacando elementos de pilaDouble

5.5 4.4 3.3 2.2 1.1

Metiendo elementos a pilaInteger


ejercicio18_7figura.ExcepcionPilaLlena: La Pila esta llena, no se puede meter 6.6

1 2 3 4 5 6 7 8 9 10 11

Sacando elementos de pilaInteger

10 9 8 7 6 5 4 3 2 1

at ejercicio18_7figura.Pila.push(Pila.java:24)

at ejercicio18_7figura.PruebaPila2.probarPush(PruebaPila2.java:35)

at ejercicio18_7figura.PruebaPila2.probarPilas(PruebaPila2.java:17)

at ejercicio18_7figura.PruebaPila2.main(PruebaPila2.java:71)

ejercicio18_7figura.ExcepcionPilaVacia: La Pila esta vacia, no se puede sacar

at ejercicio18_7figura.Pila.pop(Pila.java:34)

at ejercicio18_7figura.PruebaPila2.probarPop(PruebaPila2.java:57)

at ejercicio18_7figura.PruebaPila2.probarPilas(PruebaPila2.java:18)

at ejercicio18_7figura.PruebaPila2.main(PruebaPila2.java:71)

ejercicio18_7figura.ExcepcionPilaLlena: La Pila esta llena, no se puede meter 11

at ejercicio18_7figura.Pila.push(Pila.java:24)

at ejercicio18_7figura.PruebaPila2.probarPush(PruebaPila2.java:35)

at ejercicio18_7figura.PruebaPila2.probarPilas(PruebaPila2.java:19)

at ejercicio18_7figura.PruebaPila2.main(PruebaPila2.java:71)

ejercicio18_7figura.ExcepcionPilaVacia: La Pila esta vacia, no se puede sacar

at ejercicio18_7figura.Pila.pop(Pila.java:34)

at ejercicio18_7figura.PruebaPila2.probarPop(PruebaPila2.java:57)

at ejercicio18_7figura.PruebaPila2.probarPilas(PruebaPila2.java:20)

at ejercicio18_7figura.PruebaPila2.main(PruebaPila2.java:71)

BUILD SUCCESSFUL (total time: 0 seconds)

También podría gustarte