Universidad de Costa Rica
|
|
Duración: Ochenta minutos. 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 todas las preguntas. ¡No haga más de lo que se le pide!
1) [50 pts]
1.a) [25 pts]
Especifique la función "rotate(L,n=1)
"
para trasladar al final los primeros "n
" nodos de la
lista. Por ejemplo, si la lista L contiene
"(1,2,3,4,5,6)
", después de
"rotate(L,4)
" contendrá
"(5,6,1,2,3,4)
" pues sus primeros 4 valores
quedarán al final. Incluya ejemplos de prueba
BUnit en su
especificación.
1.b) [25 pts]
Implemente la
función "rotate()
". Su implementación
debe basarse en el uso del método
"splice()
" de la
tarea programada. Recuerde: ¡no
copie nodos! ¡No se le meta al
Rep!
2) [50 pts] Una norma es una función real que satisface estas condiciones: 1) f(x) == 0 <==> x==0; 2) f(x) >= 0; 3) f(x+y) < f(x)+f(y); 4) f(αx) = |α| f(x);.
2.a) [25 pts]
Especifique la función
emplantillada
"norm()
" que sirve para calcular la norma. Suponga
que el argumento es una lista de valores numéricos,
"int
", "complex
", etc. Incluya ejemplos
de prueba
BUnit en su
especificación.
2.b) [25 pts]
Implemente
de 2 maneras su función "norm()
". Una consiste en
sumar las normas de los cuadrados de cada uno de los elementos de
la lista, y la otra se calcula tomando la raíz cuadrada de la
primera. ¡No se le meta al
Rep!
Adolfo Di Mare <adolfo@di-mare.com>.
|