Ejercicios
de la
Ejercicio 02.1
02.1.1 Este es un ejercicio sencillo de programación en HTML y JavaScript usando un objeto de la clase circApplet. Un applet puede controlarse desde la página Web, por ejemplo, usando el evento "onclick" de los botones de una forma.
02.1.2 Estudie el código html que hace esto. Observe que al applet se le da el
nombre circ0 y luego se utiliza circ0 como un objeto dentro de la función
"onclick" de los botones, haciendo allí llamadas a los métodos de circ0. Se
hacen llamadas para mover el círculo y para redibujarla.
02.1.3 Cree una página Web que haga lo mismo pero además tenga botones para mover el círculo a izquierda y derecha y otros para aumentar y disminuir el radio.
02.1.4 Pruebe su página html con su navegador y envíela a su tutor.
Ejercicio 02.2
02.2.1 Este ejercicio lo llevará a crear una clase nueva llamada recta, un applet para mover un objeto de la clase y una página para exhibir el applet. Para comenzar estudie cuidadosamente la clase circulo definida en circulo.java.
y la clase circApplet definida en circApplet.java.
02.2.2 Cree una clase que represente un rectángulo y sus métodos sean las translaciones horizontales y verticales y el intercambio de sus dimensiones. Hágalo extendiendo la clase punto agregando variables para el ancho y alto y un método para intercambiar sus valores.
02.2.3 Cree el applet rectaApplet. Sugerencia: Para hacerlo puede copiar el archivo circApplet.java con el nombre rectaApplet.java y modificarlo. El nuevo applet debe crear un objeto de la clase rectangulo, hacer públicos los métodos para que el objeto pueda controlarse desde fuera y finalmente, debe tener un método paint que se encargue de dibujar el rectángulo. Cuide que el origen coincida con el centro del applet.
02.2.4 Compile los archivcos rectangulo.java y rectaApplet.java corrigiendo cualquier error que pudiera aparecer.
02.2.5 Cree en el subdirectorio eje02 una página Web llamada rectangulo.html que llame al applet rectaApplet.class y que tenga botones para mover el rectángulo y e intercambiar sus dimensiones.
02.2.6 Abra la página rectangulo.html con su navegador (el appletviewer no sirve en este caso pues no presenta los botones que son parte de la página) y compruebe que todo funciona correctamente.
02.2.7 Envíe a su tutor la página rectangulo.html y las clases que utiliza en un archivo comprimido de nombre eje02.2_minombre.zip.
Ejercicio 02.3
02.3.1 Cree dos extensiones de cosaDibujable y agréguelas al programa dibujador.
02.3.2 Siguiendo el ejemplo cosaDibujable de la lección, invente una clase abstracta que tenga al menos dos métodos abstractos, cree al menos dos subclases y un programa que las use. Sugerencia: figuraPlana con métodos abstractos void mover(int x,int y) y void dibujar(Graphics g).
Ejercicio 02.4
02.4.1 Cree una clase abstracta llamada
insercionDirecta con un métodos abstracto
boolean menorOigual(Object o1,Object o2) y
métodos no abstractos void insertar(int i,int j)
y void ordenar() que ordene un
vector (array) de objetos usando el método de inserción directa. Este método
consiste en buscar el más pequeño de los elementos de un vector y ponerlo en el primer
lugar, luego el más pequeño de los que quedan y ponerlo en el segundo lugar, etc.
02.4.2 Modifique las clases ordenaCadenas y ordenaNumeros para que utilicen insercionDirecta en lugar de insercionBinaria y compruebe que funcionan correctamente.
Ejercicio 02.5.
02.5.1. Cree una clase llamada insercionDirectaBis. que utilice la interface ordenable igual que la utiliza insercionBinariaBis de la lección.
02.5.2. Modifique ordenaCadenasBis y ordenaNumerosBis para que funcionen con insercionDirectaBis.
Ejercicio 02.6
02.6.1 Cree una clase abstracta llamada ordenador y dos subclases suyas que realicen ordenaciones por inserción binaria e inserción directa respectivamente. Haga que todas estas clases pertenezcan a un paquete llamado orden.
02.6.2 Escriba dos programas que utilicen las subclases construidas en 02.6.1 para ordenar cadenas, cada uno usando un método diferente. Estos programas no deben pertenecer al paquete orden, pero deben usarlo, por lo cual tendrá que importar sus clases.
02.6.3 Revise los modificadores de todas las variables y métodos de las clases desarrolladas en este ejercicio y restrinja su accesibilidad lo más posible mientras todo funcione.
02.6.3 Empaque los archivos desarrollados en este ejercicio y envíelos a su tutor en un archivo eje02.6_minombre.zip.
José Luis Abreu y Marta Oliveró