Você está na página 1de 7

UNIVERSIDAD DE ORIENTE. NCLEO DE SUCRE LICENCIATURA EN INFORMTICA ALGORITMOS Y ESTRUCTURAS DE DATOS II SECCIN 02.

Gua de ejercicios herencia y plantilla


1. Considere la siguiente relacin de herencia. Defina las clases mamfero, felino y gatodomstico. Decida qu atributos y mtodos incluir de tal manera que su programa pueda: a) Declarar un objeto llamado minino de tipo gatodomestrico y otro llamado estrellacirco de tipo felino. b) Imprimir la dieta de minino y estrellacirco. c) Imprimir el ao y lugar de nacimiento de minino y estrella de circo. d) Cambiar el nombre del dueo de minino. e) Imprimir la raza de minino y de estrella de circo. f) Cambiar el nombre del circo en el que acta estrellacirco.
mamfero

felino

gatodomestico

2. Considere la siguiente relacin de herencia. Defina las clases vehiculo, terreste y martimo. Decida qu atributos y mtodos incluir de tal manera que su programa pueda: a) Declarar un objeto llamado miauto de tipo terreste y otro llamado mibarco de tipo martimo. La asignacin de valores a los atributos debe hacerse a travs de un mtodo de lectura, definido para tal fin. b) Imprimir los atributos de los objetos declarados en el inciso anterior. c) Actualizar el precio de miauto. d) Actualizar la potencia de motores de mibarco. e) Imprimir un mensaje que indique si miauto tiene o no ms de 5 aos de antigedad. f) Imprimir el tipo de combustible que usa y la capacidad mxima del tanque de mibarco.
vehiculo

terreste

maritimo

3. Definir la clase planta que contenga todos los atributos que caracterizan a las plantas, y los mtodos necesarios para manejarlos. Adems defina las clases derivadas rbol, arbusto y pino, en el nivel de herencia adecuado. 4. Considere la relacin de herencia que se muestra en la siguiente figura, la cual involucra tres clases: alumno, deportista y becadodeporte. Esta ltima representa a aquellos alumnos que son deportistas y que por esa razn han recibido una beca especial del gobierno para premiar sus esfuerzos. Decida qu atributos y mtodos incluir de tal manera que su programa pueda: a) Declarar dos objetos llamados AlumnoJuan y AlumnoPedro de tipo Alumno. b) Declarar un objeto llamado DeporLuis de tipo deportista. c) Declarar dos objetos llamados BDAna y BDCarmen de tipo becadodeporte. d) Imprimir los datos de todos los objetos declarados. e) Actualizar el nombre de la carrera que estn estudiando AlumnoJuan y BDAna. El dato dado por el usuario ser el nombre de la nueva carrera. f) Actualizar el nombre del entrenador de DepoLuis y BDCarmen. EL dato dado por el usuario ser el nombre del nuevo entrenador. g) Actualizar el monto de la beca de BDAna y BDCarmen. El dato dado por el usuario ser el porcentaje de incremento de la beca actual.
alumno deportista

becadodeporte

5. Considere las siguientes relaciones de herencia. Defina todas las clases que aparecen en el esquema. Decida qu atributos y mtodos incluir de tal manera que su programa pueda: a) Declarar y crear objetos de cualquiera de las clases sin utilizar mtodos de lectura para asignar valores a los atributos. b) Imprimir los atributos de cualquiera de los objetos declarados. c) Actualizar las dimensiones de un objeto de tipo casas. El usuario deber proporcionar el nuevo nmero de metros cuadrados de la casa. d) Actualizar el giro de una industria. Es decir, a un objeto tipo industria se le podr cambiar el valor de un atributo que representa el tipo de actividad que desarrolla dicha industria.

e) Actualizar el nmero de telfono de cualquiera de los objetos declarados.

vivienda

residencial

comercial

departamentos

casas

industrias

oficinas

6. Una institucin educativa desea mantener una base de datos con sus empleados. La base de datos est dividida en varias clases, cuyas relaciones de jerarqua estn mostradas en la siguiente figura. La figura tambin muestra la informacin mnima requerida para cada clase. Especifique todas las clases y defina funciones para crear la base de datos y recuperar la informacin individual cmo y cundo sea necesario.
personal cdigo nombre profesor administrativo rea publicacin mecangrafo velocidad grado

regular

casual sueldo diario

7. La base de datos creada en el ejercicio anterior no incluye informacin sobre los estudios del personal. Se ha decidido agregar esta informacin para profesores y administrativos (y no para mecangrafos), para ayudar a la directiva en la toma de decisiones en relacin con la formacin, promocin, etc. Agregue otra clase llamada estudios, que sern la titulacin de grado ms alto obtenida en los estudios y la cualificacin profesional ms alta. Esta clase debe ser heredada por las clases profesor y administrativo. Modifique el programa del ejercicio anterior para incorporar estas mejoras. 8. Considere la red de clases mostrada en la siguiente figura. La clase maestro deriva informacin de las clases cuenta y admin., que a su vez derivan informacin de la clase persona. Defina las cuatro clases y escriba un programa para crear, actualizar y mostrar la informacin contenida en los objetos maestro.
persona nombre cdigo cuenta nmina admin experiencia maestro nombre cdigo experiencia nmina

Nota hecho en clase 9. Crear una clase base denominada punto que consta de las coordenadas x e y. A partir de esta clase, derivar una clase denominada circulo que tenga un nuevo atributo denominado radio. Para esta clase derivada, los miembros datos x e y representan las coordenadas del centro de un crculo. Entre las funciones miembro de la primera clase deber existir una funcin distancia( ) que devuelva la distancia entre dos puntos, donde distancia=(x2 x1) + (y2 y1). 10. Utilizando la clase construida en el ejercicio anterior, obtener una clase derivada cilindro derivada de circulo. La clase cilindro deber tener una funcin miembro que calcule la superficie de dicho cilindro. La frmula que calcula la superficie del cilindro es S = 2r(l + r), donde r es el radio del cilindro y l es la longitud. 11. Crear una clase base denominada rectangulo que contenga como miembros datos, longitud y anchura. De esta clase, derivar

una clase denominada caja que tenga un miembro adicional denominado profundidad y otra funcin miembro que permita calcular su volumen. 12. Realice la declaracin de una clase asignatura. La clase contendr atributos para almacenar el cdigo y el nombre de la asignatura, as mismo, deber tener un atributo de tipo real para almacenar la nota de prcticas. Su constructor deber inicializar los atributos de cdigo y nombre. Declare adems las clases derivadas asignaturaanual y asignaturacuatrimestral. Ambas clases heredan de la clase asignatura. La clase asignaturaanual tendr un atributo para la nota terica del primer cuiatrimestre y otra para la del segundo cuatrimestre. La clase asignaturacuatrimestral tendr un atributo para indicar el cuatrimestre (primer o segundo cuatrimestre) y otro para la nota terica. Las dos clases derivadas deber tener un mtodo calcularnotafinal. En el caso de una asignatura cuatrimestral, la nota final se calcular teniendo en cuenta que la nota de prctica vale un 30% de la nota final y la nota terica un 60% de la nota final. En el caso de una asignatura anuel, la nota terica final ser la media de las notas del primer y segundo cuatrimestre. 13. Defina la clase circulo y sus dos clases derivadas esfera y cilindro. Todas estas clases podrn calcular su rea a travs de un mtodo denominado area y presentarla mediante el mtodo mostrar. 14. Tenemos una empresa compuesta por un nmero variable de empleados. Cada empleado contiene informacin sobre su cdigo, su nombre y su sueldo. Adems por cada empleado habr que poder aumentar el sueldo de dos formas distintas, ya sea aumentndolo en un porcentaje, ya sea aumentndolo en un nmero determinado de bolvares. Algunos empleados son empleados eventuales. Estos empleados tendrn adems informacin sobre las horas trabajadas y sobre el precio que se le paga por hora. La forma de aumentar el sueldo a estos empleados ser aumentando el nmero de horas trabajadas. Ser necesario implementar un mecanismo que permita listar los empleados de la empresa. 15. Una tienda de informtica vende dos tipos de artculos (software y hardware) ambos caracterizados por su cdigo (de tipo char) y su descripcin. Adems, en los productos software hay que indicar el tipo de producto (con una cadena), y en los productos hardware se debe indicar si es un perifrico o no. Para saber el precio de un artculo se aplica que para un artculo cuyo cdigo es A el precio es 100.0 Bs, si el cdigo es B el precio es 50.50 Bs; para un artculo con cdigo C el precio es 150.50 Bs. En el caso de ser un producto hardware, los artculos slo sern A o B y si es un perifrico el precio se incrementar en un 10%. Los productos software sern exclusivamente B o C incrementndose el precio del artculo en un 5% si el software es de tipo Juegos. Realice un programa principal que pueda ingresar artculos de tipo software y de tipo hardware adems de mostrar el precio y dems

caractersticas de un artculo. Utilice constructores para todas las clases. 16. Suponga que un banco tiene tres tipos de cuentas para los clientes; unas son cuentas de ahorro, otras cuentas corrientes y a plazo fijo. Las cuentas corrientes se usan para realizar pagos y no proporcionan ningn inters. La cuenta corriente puede tener asociada una cuenta de ahorro para cubrir descubiertos de la cuenta corriente. Por otro lado, las cuentas de ahorro proporcionan un inters del 4%. La de plazo fijo es un tipo de cuenta de ahorro que rinde un mayor inters (del 8%) pero el retiro de fondos est penalizado con un 2% de la cantidad retirada. Los titulares de una cuenta corriente tambin deben mantener un saldo mnimo; si el saldo desciende por debajo de este nivel, se les cobra una comisin por servicio. Cree una clase cuenta que almacene el nombre del titular, nmero de cuenta y tipo de cuenta. Derive las dems clases para adaptarlas a los requerimientos especficos. Incluya las funciones miembro necesarias para realizar estas tareas: a) Aceptar el ingreso de un titular y actualizar el saldo b) Mostrar el saldo c) Calcular y abonar los intereses d) Retirar el saldo y actualizarlo e) Comprobar que el saldo no est por debajo del mnimo, imponer la sancin si es necesario. 17. Disear la siguiente jerarqua de clases: Persona Nombre Edad Visualizar() Estudiante Nombre Edad id Visualizar() Heredado Heredado Definido redefinido Profesor Nombre Edad Salario Visualizar() Heredado Heredado Definido Heredada

Escribir un programa que manipule la jerarqua de clases, lea un objeto de cada clase y lo visualice. __________plantillas________ 18. Escriba una plantilla de clase para representar a un vector genrico. Incluya los mtodos necesarios para implementar la siguiente funcionalidad: a) Crear el vector. b) Modificar el valor de un elemento dado. c) Realizar el producto escalar (multiplicar el vector por un escalar). 19. Escriba una plantilla de funcin llamada burbujaordenar que ordene los valores de un arreglo en orden ascendente. Escriba un

programa controlador que reciba como entrada, ordene y muestre como salida un arreglo de valores int y un arreglo de valores float. 20. Escriba una plantilla de clase para representar a una pila genrica. Incluya los mtodos necesarios para implementar la siguiente funcionalidad: a) Insertar un elemento en la pila. b) Determinar si la pila est llena. c) Extraer un elemento de la pila. d) Determinar si la pila est vaca. e) Visualizar la pila. 21. Definir plantillas de funciones min() y max() que calcule el valor mnimo y mximo de dos valores. 22. Realizar un programa que utilice las funciones plantilla del ejercicio anterior para calcular los valores mximos de parejas de enteros, de doble precisin (double) y de carcter (char). 23. Definir una funcin plantilla que devuelva el valor absoluto de cualquier tipo de dato incorporado o predefinido pasado a ella. 24. Escriba una plantilla de clase para representar a un vector genrico (vector con valores int, o con valores float, etc.). Incluya los mtodos necesarios para implementar la siguiente funcionalidad: a) Crear el vector. b) Mostrar el contenido del vector c) Realizar el producto de dos vectores. d) Escriba una plantilla de funcin para encontrar el valor mnimo del vector. e) Escriba una plantilla de funcin para ordenar el vector. 25. Escriba una plantilla de funcin para una funcin void que eleve al cuadrado y extraiga el valor que se pas a su parmetro. El tipo de parmetro es del tipo de plantilla. 26. Escriba sentencias que llamen la funcin del ejercicio anterior para valores int, long y float. 27. Escriba una plantilla de funcin para una funcin nula, getdata, que reciba una cadena mediante la lista de parmetros, que use esta cadena para pedir que el usuario introduzca, que lea un valor desde el teclado y que devuelva este valor (como parmetro de referencia) por medio de la lista de parmetros. El tipo de datos del valor de entrada puede ser cualquier tipo para el cual est definido el operador >>.

Você também pode gostar