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>.
|
|
|