Universidad de Costa Rica
|
|
Duración: Ciento veinte 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 las tres preguntas. ¡No haga más de lo que se le pide!
1) [33 pts] El método estático “
desparejadora(int b)
” retorna un número
en que todos los dígitos decimales de “b
” están
vueltos al revés en parejas. Por ejemplo
desparejadora(123456)
retorna 214365
, mientras que
desparejadora(1234567)
retorna 10325476
porque hay
que agregar un cero para que la cantidad de dígitos sea par.
1.a) [6 pts]
Escriba la
especificación completa de
“desparejadora()
”. Incluya ejemplos de uso
“assertTrue()
”.
1.b) [27 pts]
Implemente de “desparejadora()
”.
No use vectores ni hileras.
public static long tresXdos(long T, long D) { long res = 0; if ( T<0 ) { res = tresXdos( -T, D ); } else if ( D<0 ) { res = tresXdos( T, -D ); } else if ( T<D ) { res = tresXdos( 2*T, D ); } else if ( D<T ) { res = tresXdos( T, 3*D ); } else if ( D==T ) { res = T*D; } else { res = 0; } return res; }
2.a) [7 pts]
Escriba la especificación de la rutina tresXdos()
.
Incluya ejemplos de uso
“assertTrue()
”.
2.b) [11 pts]
Dibuje los registros de activación
que mostraría Jeliot
al ejecutar tresXdos(3,2)
.
2.c) [7 pts] Encuentre un caso en que esta rutina se encicla recursivamente. Explique porqué ocurre ese fenómeno.
2.d) [8 pts]
Implemente de nuevo
tresXdos()
de manera que también se encicle, en los mismos
valores de la versión recursiva de la rutina. No use recursividad para
esta nueva implementación.
3) [33 pts]
[2(4)] |
[3(29)] |
[4(52)] |
4 3 2 1 |
29 28 27 26 25 24 23 22 21 |
52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 |
3.a) [7 pts]
El método
estático “Picudito()
” de la clase
“Biblio
” recibe dos números e imprime una cuña
de varios niveles a partir del segundo valor.
Escriba la
especificación completa de
“Picudito()
”.
3.b) [26 pts]
Implemente “Picudito()
”.
En el ejemplo se muestra "Picudito()
" para los
valores [2(4)]
, [3(29)]
y
[4(52)]
.
Adolfo Di Mare <adolfo@di-mare.com>.
|