Académique Documents
Professionnel Documents
Culture Documents
} }; }; };
Para Codigo descrito a continuacin, diga qu se chequea en tiempo de compilacin y o e o a qu mtodos de qu objeto se llama en tiempo de ejecucin. Si hay errores diga por e e e o qu se producen. e U* u; A* a = new B; a->i(); a->g(u); int n = a->f(); delete a; B* b = new C; b->i(); b->g(u); delete b; 3. Un colegio quiere contar con un programa que le permita organizar tanto su informacin o estructural (salas de clase, auditoriums, ba os, casinos, laboratorios, ocinas, sillas, n mesas, escritorios, computadores, puertas, etc.) como la de las personas que all trabajan o estudian (profesores, alumnos y director, entre otros). El programa debe ser fcilmente a extensible en el tipo de piezas a considerar y en el tipo de personas que interact an en u l. El programa debe poder responder consultas como: En qu cursos est un alumno e e a de Rut yyyy? Quienes son los profesores de un alumno de rut yyyy ? Qu dimensiones e tiene una pieza identicada con un cierto nombre? a) Dise e un diagrama de clases indicando qu relaciones entre clases escogi y por qu. n e o e b) Incluya todas las variables de instancia y mtodos a las clases correspondientes que e le permitan responder a las consultas indicadas de manera apropiada. d) Identique al menos dos patrones de diseo que podr usar y justique su eleccin. a o Modique su dise o para incorporarlos. n 4. Un edicio est formado por un cierto n mero de pisos y un piso por un cierto n mero a u u de departamentos. Para modelar edicios, departamentos y pisos con forma de paralelepipedo, y adems reusar los mtodos que provee paralelep a e pedo para calcular su largo, ancho, alto y volumen, se propone la siguiente jerarqu a: class Paralelepipedo{ float ancho, alto, largo; public: Paralelepipedo(float,float,float); ~Paralelepipedo(); float Volumen(); float Ancho(); float Alto(); 2 class Piso: public Paralelepipedo{ List<Paralelepipedo> departamentos; public: int NumeroDepartamentos(); Paralelepipedo ObtenerDepartamento(int i); }
float Largo(); boolean EsUnCubo(); } class Edificio: public Piso{ List<Piso> pisos; public: int NumeroPisos(); Piso ObtenerPiso( int i) } Discuta la jerarqu de acuerdo al concepto de subtipos. Proponga una nueva a solucin que satisfaga el concepto de subtipos en caso que la propuesta no lo o cumpla. Modique el diagrama de clases anterior, para que sea fcilmente extensible a a modelar pisos, departamentos y edicios con distintos tipos de formas (cilindros, esferas, paralelep dedos, cubos, etc)? Justique su respuesta.