Universidad de Costa Rica
|
|
Duración: dos horas. Lea bien el examen antes de hacerlo. El examen es a libro abierto. Cuenta la documentación. Cuenta la redacción y la ortografía. Puede hacer el examen con lápiz. Resuelva tres de las cuatro preguntas. La pregunta 1) es obligatoria. ¡No haga más de lo que se le pide!
1) [25 pts]
Especifique e implemente el operador Particion()
para
la clase List2
de la
segunda tarea programada, el que separa
una lista en dos listas, de manera que los valores que quedan en
la primera lista son mayores que el parámetro
"pivote
" de Particion()
, y los
de la segunda son los demás valores almacenados en la lista
original. Evite copiar cualquier valor almacenado en la lista.
2) [25 pts]
Considere la clase List2
que usted implementó
en la
segunda tarea programada.
2.a) [20 pts]
Especifique, declare e implemente un operador que permita avanzar,
hacia adelante o hacia atrás, una cantidad
"n
" de posiciones.
2.b) [5 pts] Explique por qué es importante usar sobrecarga de operadores para implementar el operador de la parte a) de este pregunta.
3) [25 pts] Explique cuál es la diferencia entre los conceptos de "Abstracción", "Especificación", e "Implementación". Incluya ejemplos detallados de cada uno de estos conceptos.
4) [25 pts] Explique una manera de simular el efecto de usar plantillas con macros. Luego explique qué limitación tiene esa técnica, por lo menos al compararla con el uso de plantillas.
Adolfo Di Mare <adolfo@di-mare.com>.
|