Guia Ejercicios 7507 F
Guia Ejercicios 7507 F
Guia Ejercicios 7507 F
(versin preliminar) Autores: Nicols Pez Nicols Ferretti Eugenio Yolis Pablo Roca Ignacio Waitoller Marcio Degiovaninni
Compilacin: Pablo Surez
Gua de ejercicios
5. Escriba una clase Lista que implemente el tipo abstracto de dato Lista y que contenga elementos de la clase Figura. No puede utilizar ninguna de las clases provistas por el lenguaje a excepcin de object. 6. Utilizando la tcnica de composicin y la clase Lista desarrollada en el ejercicio anterior, escriba una clase que implemente el tipo abstracto de dato Pila.
7. Un diagrama de estados muestra los distintos cambios de estado que sufre un objeto a travz
del tiempo. Tomando como punto el siguiente texto, dibuje el diagrama de estado de un defecto. Durante el proceso de desarrollo de todo software aparecen defectos. Dependiendo de los criterios de cada equipo de desarrollo el ciclo de vida de los defectos vara, pero a pesar de eso es posible definirlo a grandes rasgos: un defecto es encontrado y a partir de ese momento y hasta que alguien se hace cargo de intentar arreglarlo el defecto permance reportado.
Gua de ejercicios Algoritmos y Programacin III (75.07) cursos 1 y 2
Mientras que alguien intenta arreglarlo se dice que el defecto est abierto. Puede que por ser muy complejo se decida no arreglar el defecto hasta la proxma versin del producto, en cuyo caso el mismo queda suspendido. Si alguien puede arreglar el defecto, entonces el mismo pasar a estar arreglado, hasta que finalmente quien encontr el defecto lo de por cerrado. En ocasiones puede que el arreglo no sea correcto, entonces el defecto ser reabierto. Dibuje el diagrama de estados de un defecto. 8. Dibuje un posible diagrama de clases consistente con el siguiente diagrama de secuencia y escriba un fragmento de cdigo correspondiente al mismo.
: usuario 1: buscar()
: Buscador
: ServidorArchivos
: Archivo
9. Dibuje un posible diagrama de secuencia para el fragmento de cdigo del ejercicio 4. 10.Dibuje los diagramas de secuencia y clases correspondientes al siguiente fragmento de cdigo.
Connection connection = new Connection(localhost/mydb); Command command = new Command(); command.setConnection(connection); command.setText("SELECT * FROM USERS"); connection.open(); DataReader reader = command.execute();
Gua de ejercicios Algoritmos y Programacin III (75.07) cursos 1 y 2
Gua de ejercicios
Gua de ejercicios
2. Indicar que imprimen por pantalla los siguientes fragmentos de cdigo suponiendo primero que no existe el archivo y luego que existe (se supone arch instancia de una clase X; arch.siguienteLinea() arroja IOException si el archivo fsico al que se refiere no existe, caso contrario devuelve Hola)
a)
try{ System.out.print(Comienza linea: ); System.out.print(arch.siguienteLinea()); System.out.println(Fin linea); } catch (IOException IOex){ System.out.println(No existe el archivo); } catch (Exception ex){ System.out.println(Oops, hubo una excepcion); } finally{ System.out.println(Chau); }
b)
try{ System.out.print(Comienza linea: ); System.out.print(arch.siguienteLinea()); System.out.println(Fin linea); } catch (Exception ex){ System.out.println(Oops, hubo una excepcion); } catch (IOException IOex){ System.out.println(No existe el archivo); } finally{ System.out.println(Chau); }
Gua de ejercicios
3. Codifique una clase NumeroNatural, descendiente de la clase NumeroEntero codificada en el ejercicio 3 de la gua 2, en la que en su constructor reciba un int, y que arroje eNumeroInvalido (tambin la debe codificar) si ste es menor a 0, y escriba un fragmento de cdigo en el que se instancie un nuevo NumeroNatural, y en el caso que haya excepcion se imprima la traza de la pila de llamados a mtodos. 4. En una clase accesoria que contenga un mtodo main llene un ArrayList con 20 Numeros (Enteros, Naturales, etc.) usando las clases ya codificadas en la gua 2 y en sta. a. Imprima los elementos cargados en la coleccin usando un ciclo for. b. Imprima los elementos cargados en la coleccin usando un iterador. c. Cargue el NumeroComplejo 3 + 4i en la posicin 14 de la coleccin. d. Imprima el elemento 14 de la lista. e. Itere la lista imprimiendo slo los nmeros complejos. 5. Implemente una clase ListaDeNumeros, en la que se encuentre restringida la posibilidad de cargar elementos que no sean Numero (entiendase que tambin acepta sus descendientes). 6. Confeccione un diagrama de clases con la lista del punto 5, y las clases que representan los numeros. 7. Implemente una clase ArrayListExtendida, que permita mediante el mtodo add(tipo_primitivo i) agregar a la lista elementos de tipos primitivos int, float y double, y que automaticamente los cargue con sus respectivas clases envolventes. 8. Se necesita implementar un sistema en el que se puedan cargar alumnos, a los cuales los caracterizan el nombre y apellido, el padrn, el sexo, condicin (regular o condicional) y la nota final. Estos alumnos se deben cargar en una asignatura, llamada Algoritmos y Programacion III. Implemente las clases y mtodos necesarios para esta situacin, teniendo en cuenta lo que se pide a continuacin: a. Mostrar en pantalla todos los alumnos que se encuentren en la asignatura. b. Mostrar en pantalla los alumnos que se encuentren como condicional y su cantidad. c. Ordenar los alumnos de acuerdo a su nota (de mayor a menor) y mostrarlo en pantalla. d. Ordenar los alumnos de acuerdo a su nota (de menor a mayor) y mostrarlo en pantalla. e. Ordenar los alumnos por nombre y apellido y mostrarlo en pantalla Nota: para los ordenamientos utilizar las facilidades provistas por la plataforma. 9. Se necesita una clase Matriz de dos dimensiones en la que sus elementos queden restringidos a los del tipo Numero utilizado en ejercicios anteriores. La Matriz debe poder ser recorrida usando un iterador, que recorra fila por fila. Implementar las clases y mtodos necesarios para sto. 10. Implementar una lista circular, y su iterador. 11. Para el juego de la Batalla de Botes (similar a Batalla Naval, pero con barcos que ocupan un solo casillero), se requiere una cuadrcula con filas numeradas de 1 a 8 y letras de A hasta la H. Implementar las clases Botes y Tablero con los siguientes mtodos, que provea las siguientes funcionalidades: a. Agregar un bote en un casillero b. Saber si un casillero est ocupado o no c. Sacar un bote de un casillero (hundido) d. Reiniciar el tablero con todos los casilleros vacios e. Ubicar 8 botes en lugares aleatorios del tablero
Gua de ejercicios
Los mtodos que requieran que se les pase como parmetros lugares del tablero, para hacerlo ms intuitivo para el usuario de la clase deberan recibir un carcter y un entero (columna fila). 12. Para el punto anterior (11) implementar un iterador propio para el Tabler, que recorra de columna en columna. Utilizar este iterador para recorrer el tablero imprimiendo las posiciones de los botes, y la cantidad de botes que se encuentran en el tablero.
Gua de ejercicios
Unidad 4
1. Escriba una clase que contenga un elemento agregado y uno compuesto de dos tipos que defina. Agregue un atributo de tipo entero y extienda la clase hacia otra. Defina constructores por defecto donde se establezcan valores significativos para cada uno de los posibles atributos. Se desea tener la posibilidad de copiar un objeto de esta clase y que el siguiente cdigo no genere excepciones:
public class TestClonacion { private void checkAttributes(Clase1 original, Clase1 clonado) throws Exception { if (clonado == original) throw new Exception("Original y clonado son el mismo objeto."); if ( ! clonado.equals(original)) throw new Exception("Original y clonado no son iguales."); if (original.getAtribEntero() != clonado.getAtribEntero()) throw new Exception("Original y clonado no comparten el atributo de tipo primitivo."); if (original.getAtribAgregado() != clonado.getAtribAgregado()) throw new Exception("Original y clonado no comparten el atributo agregado."); if (original.getAtribCompuesto() == clonado.getAtribCompuesto()) throw new Exception("Original y clonado comparten el atributo compuesto."); if (original.getAtribCompuesto().equals( clonado.getAtribCompuesto())) throw new Exception("El atributo compuesto no es igual en ambos objetos."); } private void run() throws CloneNotSupportedException, Exception { Clase2 base = new Clase2(); { Clase2 original = (Clase2) base; Clase2 clonado = (Clase2) original.clone(); checkAttributes(original, clonado); } { Clase1 original = (Clase1) base; Clase1 clonado = (Clase1) original.clone(); checkAttributes(original, clonado); } } public static void main(String[] args) { TestClonacion test = new TestClonacion(); try { test.run(); System.out.println("TEST EXITOSO."); }catch (Exception e) { System.out.println("HA FALLADO EL TEST."); e.printStackTrace(); } }
Gua de ejercicios
2. El siguiente diagrama de clases muestra la estructura que debe mantener una habitacin de una casa en cuanto a composicin y agregacin de otros objetos.
Se puede observar el carcter no propietario de la habitacin para con sus muebles, esto es as por la facilidad que estos tienen de ser parte de una u otra habitacin momentneamente. Por lo tanto, el mobiliario de una habitacin slo indica el conjunto de elementos que puede estar en la misma pero no que necesariamente se encuentre para un momento dado. Se est trabajando en un modelador de casas en el cual se permite disear una vivienda y plantear su estilo de decoracin. Uno de los mdulos de la aplicacin brinda casas prediseadas para que el cliente modifique a placer. Se adjunta un trozo de cdigo que se utiliza para testear el mdulo. a. Implemente el modelo de forma tal que se puede practicar clonacin para cualquier elemento y, en particular para una habitacin. Chequee el funcionamiento utilizando el siguiente cdigo; preste principal atencin a la identidad de cada objeto contenido por las habitaciones.
public class CasaBuilder { public static void main(String[] args) { Moviliario moviliario = new Moviliario(); moviliario.addMueble(new Silla()); moviliario.addMueble(new Mesa());
Gua de ejercicios
Habitacion prototipo = new Habitacion(moviliario); for(int i = 0; i < 3; ++i) { prototipo.addInstalacion(new Pared(prototipo)); } Habitacion quincho, comedor; quincho = (Habitacion) prototipo.clone(); comedor = (Habitacion) prototipo.clone(); comedor.addInstalacion(new Techo(comedor)); System.out.println("Habitacin plantilla: " + prototipo.toString()); System.out.println("Quincho: " + quincho.toString()); System.out.println("Comedor: " + comedor.toString()); } }
Para asegurarse de que la identidad de cada objeto sea la que se espera, puede utilizar su nmero identificatorio al momento de devolver su informacin. Redefina el mtodo toString() de manera anloga a la siguiente:
public class Silla extends Mueble { public String toString() { return "Silla N: " + String.valueOf(this.hashCode()); } } /* ... */
a. De acuerdo a la siguiente extensin al diagrama anterior, implemente los mtodos necesarios para la clonacin de una casa.
Gua de ejercicios
3. a. En un tablero de ajedrez de 8 x 8 casilleros se desplaza un caballo de la forma usual, dos casillas vertical u horizontalmente y luego, una en direccin perpendicular en cualquier sentido. Determine una combinacin con las posiciones sucesivas del caballo si se pretende que recorra todas y cada una de las casillas sin pasar ms de una vez por el mismo punto. Utilice las funciones recursivas y los mtodos propios de un modelo con manejo dinmico de memoria. b. Se encuentran 3 hobbits y 3 orcos en una costa del ro. Todos pretenden pasar hacia el otro lado por lo que cooperaran en lo sucesivo. Los orcos, si se observan en mayor nmero que los hobbits se los devoran. Al borde del ro encuentran un bote con capacidad de hasta dos navegantes. Indique la secuencia de viajes que deben hacerse en el bote para que todos pasen al otro lado del ro. NOTAS: Tenga en cuenta que el bote no puede atravesar el ro si no tiene al menos un conductor y que la cantidad de orcos debe ser mayor que la de hobbits en todo momento, inclusive cuando estn desembarcando nuevos navegantes. El enunciado surte el mismo efecto si se utilizan exploradores-canbales, alumnosprofesores o cualquier otro par antagnico.
Gua de ejercicios
4. Una importante fbrica de embutidos se encuentra auspiciando una competencia entre clientes. El torneo consiste en comer cierta cantidad de panchos en el menor tiempo posible. Se establece una unidad de bocado estndar y, en base a esta se determinan las cantidades de bocados necesarias para consumir el pancho con los siguientes valores: 4 bocados para la salchicha y 6 bocados para el pan. Hay 3 competidores por mesa de los cuales slo uno pasa a la prxima ronda, inicialmente hay 6 mesas y la eliminacin es directa. Cada competidor cuenta con 3 bandejas o fuentes de 7 panchos cada una. La cantidad de bocados que un participante puede comer es un nmero decimal que se establece antes de cada ronda, de acuerdo al estado fsico del sujeto. Esta capacidad disminuye a medida que el participante avanza sobre una bandeja pero se restaura en el momento en que ste consigue terminar la fuente. Simularemos la simultaneidad de acciones mediante turnos en los cuales cada participante tendr la posibilidad de comer los bocados que pueda. La cantidad de bocados que un participante puede consumir por turno se calcula aleatoriamente al principio de la ronda con nmeros decimales de entre 0,70 y 1,20; disminuye en 0,002 luego de cada turno pero es restablecida al valor determinado al cambiar de bandeja. a. Simule el torneo de acuerdo a lo descrito. b. Realice el diagrama de secuencia para el proceso que realizara un participante si tuviera los turnos continuos. Puede basarse en el siguiente algoritmo simular la simultaneidad si as lo desea:
bool hayGanador = false; while (! hayGanador) { // turno para un participante que determinamos aleatoriamente int indexActual = random.Next(0,participantes.Length); Participante partActual = participantes[indexActual]; /* ... Acciones para un participante ... */ }
5. En un paquete adquirido por su empresa se recibi un juego de clases de las cuales no se posee documentacin. La utilizacin de estos tipos se torna por dems compleja debido al pobre desempeo del intellisense que posee el IDE que Uds. emplean. Se requiere una utilidad que genere documentacin mnima sobre clases. Debe listar por pantalla todos los mtodos y atributos para una determinada clase incluyendo clases ancestro e informacin acerca de cuales fueron las caractersticas heredadas. Las clases a listar puede ser pedidas al usuario en forma secuencial o pueden ser introducidas como argumento de ejecucin del programa.. 6. a. Implemente una clase de utilidades que posea una funcin que, al recibir cualquier lista y un nombre de atributo, ordene la coleccin utilizando la interfaz de comparacin correspondiente. Eleve las excepciones que crea convenientes en caso de no existir el atributo o cuando se encuentren objetos que no puedan ser ordenados. b. Agregue una sobrecarga a la funcin anterior para que admita un nombre de mtodo y la lista de argumentos para su invocacin. El objeto que este mtodo retorne ser el indicador del orden para la lista.
Gua de ejercicios Algoritmos y Programacin III (75.07) cursos 1 y 2
c. Cree una funcin que filtre los objetos de una lista por un atributo o resultado de un mtodo y devuelva una nueva lista con todos los objetos que cumplan el criterio. Agregue la posibilidad de filtrado por atributos anidados es decir, por atributos que posean los atributos. Implemntela para cualquier nivel de anidamiento. 7. El gerente del departamento de sistemas en el cual trabajas descuid una extensin a su sistema de inventario de stock en una consultora de software. Debido a la impericia de los analistas de la misma, una gran parte de los mtodos de consulta a la base de datos fueron invocados con los argumentos invertidos o en orden no definido. No conforme con el producto, tu gerente pidi a la consultora que modifique el cdigo y controle el orden de los argumentos de llamada. El resultado fue psimo: no slo se mantuvo la inversin de parmetros para algunos mtodos sino que se aument el nmero de mtodos involucrados. La clase original de acceso a datos se llama StockDataAccess y la estructura de sus mtodos es la siguiente:
public static String getNombreProducto(Integer idProducto,Region regionDeVenta); public static List getAllProductosInRegion(Region regionDeVenta, Boolean faltante); public static Integer getCantidadDisponible(Integer idProducto, Region regionDeVenta); public static Integer getCantidadDisponible(Producto producto, Region regionDeVenta); public static void setCantidadDisponible(Integer cantidad, Producto producto, Region region);
La estructura de los Productos y Regiones -clases contenedoras, sin mayor importanciaest dada por el siguiente esquema:
public class Producto { private int id; private String nombre; private int familia; private String descripcion; private float precio; /* ... getters y setters ... */ } public class Region { private int id; private String nombre; /* ... getters y setters ... */ }
Milagrosamente, te diste cuenta de que en la lista de parmetros para cada mtodo, en forma individual, no se repite ningn tipo; por lo que se podra modificar el nombre de la clase StockDataAccess original y colocar en su lugar una clase adaptadora que acepte cualquier orden de parmetros y llame a la funcin adecuada. Luego de evaluar el costo de aplicar otra de sus brillantes ideas y ante presiones de la superioridad, tu gerente decidi que Ud. lo sacara del apuro. a. Por favor, evite el despido de su gerente implementando una clase adaptadora que reemplace la original e invoque correctamente los mtodos indicados. Llegaron ordenes de modificar cada una de las llamadas con parmetros incorrectos, sin embargo, ha cambiado el concepto de orden incorrecto: se debe determinar cuales funciones fueron llamadas ms frecuentemente durante una semana de utilizacin constante del aplicativo,
Gua de ejercicios Algoritmos y Programacin III (75.07) cursos 1 y 2
usar esa combinacin de tipos de argumentos como correcta. La semana de prueba comienza maana por lo que su gerente est algo inquieto. b. Formule un registro estadstico de lo pedido, ubique archivo y lnea de las funciones que no cumplan con el nuevo patrn para el orden de tipos para una modificacin selectiva y gnese un bonus de fin de mes. 8. a. Implemente una herramienta de construccin que devuelva una lista de instancias de acuerdo a la informacin que obtenga de un archivo de texto. El archivo de texto contendr en cada lnea, las caractersticas de un objeto a instanciar. Para cada objeto se incluir el nombre de la clase a construir ms, en forma sucesiva y separados por tabulados, la informacin acerca de cada atributo del objeto. Para esto ltimo se establece la siguiente sintaxis: <nombre-atributo> = <valor-atributo>. Para simplificar, suponga que los atributos son solamente de tipos primitivos y que las clases que pueden ser instanciadas siempre tienen constructor sin parmetros. Puede elevar las excepciones que considere necesario. b. Aada una funcin llamada cloneIt que reciba cualquier objeto y devuelva una copia clonada aunque su clase no implemente la interfaz Cloneable. En este caso considere que el objeto puede tener atributos de tipos no primitivos. 9. Un concepto interesante para el manejo de funcionalidades agregadas a un modelo de objeto est dado por los interceptores: funciones que se disparan cuando ocurre un cambio en determinada propiedad o se invoca determinado mtodo. Brindan, generalmente, la posibilidad de agregar funcionalidad extra sin modificar las ya programadas. Ciertos lenguajes soportan tablas donde se puede vincular funciones a ejecutar con mtodos que las disparan al momento de ser invocados. Un ejemplo sencillo se observa al poder realizar bsquedas de un producto en distintos medios: en una base de datos, en archivos de texto o en servicios web y pretender loguear cada consulta realizada. Se puede agrupar todos los mtodos de bsqueda y asociarles el interceptor Logueo. Cuando se ejecute cualquier elemento de este conjunto se debe loguear una lnea con la informacin pertinente. Se pretende una implementacin de estos conceptos para nuestros lenguajes de trabajo mediante un pequeo framework. Se requiere una estructura que permita manejar interceptores en forma centralizada en detrimento de performance de procesamiento y para unos casos particulares de invocacin, como ser: mtodos cuyo nombre es igual o comienza con una cadena dada u otros. Para testear el framework realizado, implemente un modelo MINIMO de clases y agrupe algunos mtodos en conjuntos indicando la accin a realizar cuando los mismos se ejecuten. Puede tomar el ejemplo brindado si lo desea y simular todas las acciones mediante impresiones en pantalla. Para llevar a cabo la implementacin pedida se permite imponer restricciones sobre las clases que pertenecern al framework y su codificacin. Puede, por ejemplo, exigir que todos las clases hereden de una comn o que todo mtodo que admita agrupamiento bajo aspectos invoque una funcin como primera accin. Si desea conocer la lista de mtodos que se han invocado puede utilizar la sentencia Thread.currentThread().getStackTrace(); El siguiente ejemplo ilustra el modelo citado:
Gua de ejercicios
import InterceptorFrame.*; public class BuscadorWS extends InterceptorFrame.AbstractClass { public String getNombre(int idProducto) { //aseguro la posibilidad de ejecutar funciones antes de este //mtodo en caso de ser necesario. this.preInvoke();. /*... funcionalidad ...*/ //idem despus. this.postInvoke(); return nombre;
} /* ... */
/* ... */ public class Principal { public static void main(String[] args) { //obtenemos el manejador para loguear los accesos a base de //datos. Logger logger = new Logger(); //argumentos para el logueo: Object[] logArgs = new Object[]
/*creamos un interceptor que puede asociarse a varios mtodos de varias clases. Indicamos su nombre y el mtodo que lo resolver junto con su objeto y argumentos.*/ Interceptor loguearInterc = new Interceptor("Interceptor de Logueo, logger, "logMethod" ,logArgs); //agregamos aspectos con (nombre_mtodo, interceptor) Relations.setInterceptor( getNombre, loguearInterc); Relations.setInterceptor ( getPrecio, loguearInterc); Relations.setInterceptor ( conectar, loguearInterc); //una vez establecidos las relaciones se pueden usar las clases normalmente. BuscadorWS busc = new BuscadorWS(); System.out.println(busc.getNombre(10)); } /* ... */
Gua de ejercicios
Gua de ejercicios
El software debe cumplir con los siguientes requisitos: Soporte de distintas tipografias Herramienta de correcin ortogrfica Adicionalmente debe permitir crear, editar y leer documentos en distintos formatos (rtf, doc y sxi). Se sabe que se utilizar una arquitectura MVC. Disee las clases del modelo y el contralador utilizando diagramas UML de clases, secuencia y estado.
2. Disee un compresor/descompresor de archivos que soporte varios formatos de compresin. Abstraigase de los detalles algortimicos de implementacin. Debe funcionar en modo consola. En el caso de la compresin debe recibir como parametro el nombre del archivo a comprimir el nombre del archivo de salida y el formato de compresin. Para la descompresin solo recibir como parametro el archivo a descomprimir. 3. Dadas las arquitecturas en Capas y MVC: Mencione sus componentes de cada junto con una breve descripcin. Muestre esquemticamente mediante un diagrama la interaccin entre los distintos componentes de cada arquitectura. 4. Disee un sistema que permita administrar el alquiler de peliculas en un video club. Concentrese en el la disponibilidad de peliculas y no en la parte de facturacin. Que arquitectura resultar ms conveniente en Capas o MVC? Justifique su eleccin. 5. El departamento de computacin desea desarrollar un aplicacin para permitir a los profesores de las distintas materias del departamento llevar el control de notas de sus alumnos. Para ello ha elegido utilizar un arquitectura en capas y le ha encargado a cada una de las ctedras de algoritmos 3 la implementacin de una capa. La ctedra Perez Berro se encargar de la presentacin, mientras que Mandrafina se encargar de la capa de datos y finalmente Fontela implementar la capa de negocio. Los desarrolladores de la capa de datos han decidido implementar la persistencia utilizando el patrn ActiveRecord, es por eso que todas las clases persistentes debern heredar la clase ActiveRecordBase. En base a estas consideraciones disee la capa de negocio, haga todas las hipotesis que considere necesarias.
Gua de ejercicios
Captulo 8: Persistencia
Serializacin 1) Crear una coleccin que sea capaz de persistirse junto con los objetos que contiene 2) Crear una coleccion de objetos que pueda persistirse en formato xml. Los objetos tambin deben poder serializarse en xml 3) Dado una clase que tiene los mtodos de servicios
Enviar recibe un objeto serializable y lo convierte a string e invoca al mtodo protegido enviarString EnviarString toma la clase serializada y la enva a al transportador destino. RecibirString transforma el string de entrada en el objeto original y notifica a los observadores enviandoles el objeto recibido Implementar los mtodos de dicha clase y escribir un ejemplo de programa que la utilize. 4) La clase Crculo tiene los atributos radio, superficie y permetro. Aunque superficie y permetro se pueden calcular cada vez que se los pide, es necesario hacer uso de operaciones de punto flotante que son significativamente ms costosas que una simple asignacin. Por este motivo, el clculo se realiza una sola vez y el resultado se guarda en atributos. Como modificara la clase Circulo para evitar serializar estos atributos calculables y lograr que solo guarde la mnima informacin necesaria? Clonacin 1) Crear un mtodo llamado ModificarLista(List L) que tome una coleccin de objetos, ejecute y el mtodo modificar() de cada uno. Modificar es un mtodo que cambia el estado de objetos y no existe un mtodo que le devuleva el estado anterior. El mtodo lanzar una excepcin CouldNotExcecuteException si no se pudo completar su ejecucin. El mtodo modificarLista debe ser transaccional, es decir, o se modifican todos los objetos o no se modifica ninguno.
Gua de ejercicios
2) El patrn creacional prototype permite crear objetos iguales a partir de un objeto inicializado con ciertos valores en sus atributos. Implementar el patrn prototype usando clonacin utilizando como base el siguiente esquema
3) Dado un objeto que posee un mtodo Siguiente() que cambia su posicin interna dentro de una lista y un mtodo EsFin() que indica si se lleg al final de la lista, crear un mtodo que indique si al mover al siguiente elemento se llega al final sin alterar la posicin actual.
Gua de ejercicios
3) Construir el cliente correspondiente a dicha aplicacin 4) Construir un WS que permita almacenar objetos persistentes de manera remota y un cliente que le enve la coleccin serialable realizada en el ejercicio de serializacin y que tambin permita recuperarla 6) Generar una aplicacin que utilize RMI en el objeto BolsaValores que tiene el mtodo BigDecimal getCotizacin(int codAccion); 5) Construir una aplicacin de CHAT con RMI
Gua de ejercicios