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

Examen #2 [solución]

      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.

2) [33 pts]
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] ImplementePicudito()”. En el ejemplo se muestra "Picudito()" para los valores [2(4)], [3(29)] y [4(52)].

 

Soluciones

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