Objetos y Programación a Media Escala

Anuncio
Objetos y
Programación a Media Escala
Tercer Parcial
Noviembre 24 de 2008
“El estudiante de la Pontificia Universidad Javeriana, como agente de su propia
formación, es corresponsable de la Identidad Institucional, uno de cuyos cimientos es
tener como hábito un comportamiento ético en todos los ámbitos de la vida. En este
sentido me comprometo a realizar con total integridad esta evaluación, solamente
empleando los recursos autorizados para su desarrollo”.
Consejo Académico, Acta Nro 79, abril 19 de 2004
Observaciones
La evaluación es individual.
Tiene 2 horas para realizar el examen.
Puede sacar lo que quiera siempre que no sea celulares, computadores y/o
cualquier dispositivo electrónico.
No se permite el préstamo de ningún objeto (lápices, borradores, etc.), ni
hablar con sus compañeros o mirar el examen de ellos.
El fraude ocasiona la anulación del examen y proceso disciplinario.
Recuerde utilizar toda la documentación correspondiente en sus implementaciones.
Nombre:
Código:
Parte
1
2
Total
Puntos
20
30
50
Cal.
Página 1 de 4
Objetos y
Programación a Media Escala
Tercer Parcial
PARTE 1 (20 Puntos)
Asuma que se tiene un problema de programación donde se necesita manejar información sobre
diferentes tipos de vehı́culos: camiones, buses, carros y motos. Una manera trivial de manejar
dicho problema serı́a implementar una clase para cada tipo de vehı́culo (vea las clases abajo).
Ya sabemos que esta es una mala idea porque quisieramos almacenar y hacer operaciones sobre
los tipos de vehı́culos de una manera uniforme (al fin y al cabo todos son vehı́culos). Pero al
mismo tiempo, también quisieramos ser capaces de distinguir vehı́culos entre sı́ mediante su
tipo. Rapidamente nos damos cuenta que podemos organizar una solución mucho mejor para
este problema usando clases abstractas y aplicando técnicas de herencia.
c l a s s Carro {
private S t r i n g reg num ; // Placa
private S t r i n g brand ; // Marca
private int max pass ; // Maximo No de p a s a j e r o s
private C o l o r c o l o r ; // Color
private Persona owner ; // P r o p i e t a r i o
}
c l a s s Camion {
private S t r i n g reg num ; // Placa
private S t r i n g brand ; // Marca
private int max load ; // Maxima c a r g a en kg
private C o l o r c o l o r ; // Color
private Persona owner ; // P r o p i e t a r i o
}
c l a s s Bus {
private S t r i n g reg num ; // Placa
private S t r i n g brand ; // Marca
private int max pass ; // Maximo No de p a s a j e r o s
private C o l o r c o l o r ; // Color
private Persona owner ; // P r o p i e t a r i o
}
c l a s s Moto
private
private
private
private
}
{
S t r i n g reg num ; // Placa
S t r i n g brand ; // Marca
C o l o r c o l o r ; // Color
Persona owner ; // P r o p i e t a r i o
1. (8 Pts) Su tarea es diseñar una pequeña estructura de clases con jerarquı́as que permita:
manejar todos los tipos de vehı́culos uniformemente como un “vehı́culo”. Pero también
se necesita la capacidad de distinguir entre los diferentes tipos de vehı́culos ya que tienen algunos atributos diferentes. También se quiere agrupar los carros y los buses como
Página 2 de 4
Objetos y
Programación a Media Escala
Tercer Parcial
“vehı́culos de pasajeros”. Haga un estudio muy cuidadoso de los atributos comunes y no
comunes en las clases de arriba. No escriba ninguna lı́nea de código, solo ilustre su solución
mediante un diagrama de clases completo.
2. (8 Pts) Su tarea es implementar (en Java) la jerarquı́a de clases que diseñó en el punto
anterior. Es suficiente con implementar todas las clases con sus atributos y constructores.
No implemente ningún método a menos que lo considere necesario.
3. (4 Pts) Escriba y explique brevemente, usando terminologı́a de programación orientada a
objetos, cuáles son las relaciones entre las diferentes clases en su jerarquı́a.
PARTE 2 (30 Puntos)
Para esta pregunta espero que todos estén familiarizados con instrumentos musicales. Para
nuestro propósito, un instrumento es un mecanismo que genera sonido. Todos los instrumentos
musicales tiene propiedades comunes como un tono mı́nimo y un tono máximo. Además, los
instrumentos musicales pueden realizar acciones comunes como interpretar una melodı́a en el
rango mencionado.
En general, podemos categorizar los instrumentos musicales en cuatro diferentes grupos: cuerdas, vientos de madera, vientos de metal, y percusión. Por ahora podemos asumir que cualquier
instrumento puede ser clasificado en uno de estos cuatro tipos. Cada una de las cuatro categorı́as
tiene sus propias propiedades adicionales a las de un instrumento cualquiera.
Un instrumento de cuerda es aquel que crea sonido mediante el roce o pellizco de una de
sus cuerdas. Ejemplos de instrumentos de cuerda son el violı́n, el bajo, el arpa y la guitarra.
Los instrumentos de cuerda tienen propiedades como el número de cuerdas y si son rozados o
pellizcados. Una acción común en los instrumentos de cuerda es el afinamiento.
Un instrumento de percusión es aquel que crea el sonido mediante un golpe o sacudida. Ejemplos
de instrumentos de percusión son el xilófono, la marimba, la baterı́a, la pandereta, y la campana.
Los instrumentos de percusón tiene propiedades como si son tocados o no en un solo tono.
En otra clase les hablaré de las otras categorı́as de instrumentos.
1. (7 Pts) Suponga que queremos una clase Instrumento. ¿Cuáles son los atributos y métodos?
Escriba en Java dicha clase. Al igual que la parte anterior, para esta pregunta y la siguiente
no es necesario que escriba el código de todos los métodos, solo los constructores y los que
considere necesarios, para el resto solo escriba su especificación.
2. (7 Pts) Suponga que queremos desarrollar una clase para InstrumentoCuerda e InstrumentoPercusión. ¿Cuáles serán los atributos y métodos para cada tipo de instrumento?
Escriba en Java el código para estos.
3. (7 Pts) Dibuje un diagrama de clases que represente la jerarquı́a descrita.
4. (9 Pts) Cuando trabajé en el IRCAM (instituto de investigación musical en Francia) pude
ver un trio que tocaba música blues. Habı́a un músico tocando una guitarra acústica, otro
tocando una harmónica y el tercero tocaba unos pedazos de cuerda pegados a un tarro
grande. Este instrumento se usaba como (1) bajo (instrumento de cuerda), y (2) tambor
(instrumento de percusión). Ası́ que este raro instrumento era de cuerda y de percusión a
la vez.
Página 3 de 4
Objetos y
Programación a Media Escala
Tercer Parcial
Suponga que se debe hacer una nueva clase en Java para este instrumento de cuerdapercusión. Dadas la clases anteriores, ¿qué problema particular encontrará? ¿cuál es la
solución a este problema? Muestre su solución en Java.
Página 4 de 4
Descargar