PRIMER EXAMEN DEPARTAMENTAL DE PROGRAMACIÓN AVANZADA Prof: 16/02/08
Nombre: Sección
PARTE I. teoría (30%)
I. Selecciona la respuesta correcta a las preguntas siguientes 1. Determina que se puedan derivar (más que definir) nuevas clases de objetos a partir de las ya existentes, facilitándole al programador el desarrollo de prototipos y una rápida exploración en las nuevas ideas. Herencia robustez ocultamiento polimorfismo 2. La unidad fundamental de La programación orientada a objetos es: La clase El objeto La función El módulo 3. La abstracción es la propiedad que permite Ocultar los datos de un objeto Combinar clases para formar una sola Eliminar características falsas Concentrarse en lo fundamental y pasar por alto el detalle 4. Decir clase es lo mismo que decir: Instancia Tipo de dato Módulo Atributo 5. El encapsulamiento es la propiedad que permite: Que el contenido de un objeto esté oculto al exterior Que los datos de la clase puedan ser accedidos desde fuera de esta Generalizar la información Esconder el objeto de clases base 6. Es una función miembro especial que sirve para inicializar los datos miembros de una clase. Método derivado Constructor Método static Destructor 7. las variables declaradas static dentro de una clase a diferencia de las otras variables Pueden invocarse directamente sin crear un objeto de esa clase solo anteponiendo el nombre de la clase. Sólo puden ser invocadas por métodos declarados también static Pueden invocarse únicamente por clases derivadas anteponiendo el nombre de la clase base Solo pueden ser invocadas por clases virtuales 8. Cuando definimos 2 métodos con el mismo nombre pero diferente tipo o número de argumentos se dice que estamos haciendo Instanciación Herencia Modularidad polimorfismo o sobrecarga de funciones 9. a través de estos los objetos ejecutan alguna petición Mensajes Clase Instancia jerarquía 10. Es la palabra clave que permite introducir una definición de clase define #define #class class PARTE II. Práctica (30%) Crear una clase punto(x, y) que incluya un constructor por default, un constructor copia, un método negar que convierta el punto (x, y) a su negativo, un método imprimir que visualice los datos, un método distancia que regrese el valor de la distancia del origen (0,0) al punto (x, y). Además debes sobrecargar el método distancia para calcular la distancia entre dos puntos. Hacer el main para probar cada uno de los métodos La distancia entre dos puntos se calcula de la siguiente forma:
d= (X1 − X 2 ) + (Y1 − Y2 ) 2 2
PARTE III. Práctica (40%)
Supongamos que el Sr. Domínguez tiene dos hijos estudiando en diferentes lugares y desea saber cuánto deberá pagar por las rentas de los hijos y la de su propia casa. Su hijo Carlos vive en un departamento por el que mensualmente debe pagar renta+mantenimiento+gas Su hija Teresa vive en una pensión por la que mensualmente debe pagar renta+alimentos. Además, el Sr. Domínguez paga renta de su casa sola. Hacer un programa que calcule el pago total que debe hacer el Sr. Domínguez. Nota: Utilizar al menos (herencia y redefinición de métodos)