Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1201
I Semestre 2008
[<=] [home] [<>] [\/] [=>]
CI-1201 Programación II

Examen #1 [solución]

      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!

 

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2008
Derechos de autor reservados © 2008
[home] <> [/\]