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

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] La rutina cambiaBase(int b, int n) retorna una hilera Java de tipo String que tiene los dígitos en base "b" del número "n". Por ejemplo, cambiaBase(2,17) retorna la hilera "10001" que es el número 17 escrito en binario, mientras que cambiaBase(5,17) retorna la hilera "32" pues 3*5+2==17.

1.a) [6 pts] Escriba la especificación completa de "cambiaBase()". Incluya ejemplos de uso assertTrue().

1.b) [27 pts] Escriba un programa que encuentre todos los números que son palindrómicos en más de 3 bases, para las bases en el rango [2..16]. Por ejemplo, todos los dígitos decimales son palindrómicos en las bases 10, 11, hasta 16. Cada vez que su programa detecte un nuevo número palindrómico de base múltiple deberá imprimirlo primero en base 10, y luego en las 3 bases en las que es palindrómico. Para evitar que la ejecución de su programa sea infinita, pare cuando ya los números tengan 7 o más dígitos decimales. No hace falta que implemente cambiaBase().

 

2) [33 pts] El método estático "escalereado()" de la clase "Biblio" recibe un número e imprime una escalera descendente de valores hasta el valor que corresponde al número, de manera que la base tenga relación con el valor de entrada.

[2] [3] [4]
   1
 2 3 
     1
   2 3
 4 5 6 
       1
     2 3
   4 5 6
 7 8 9 10 

2.a) [11 pts] Escriba la especificación completa de "escalereado()".

2.b) [22 pts] Implemente "escalereado()".

 

3) [33 pts] Mientras que en una "sub-hilera" todas las letras deben aparecer juntas y en su orden, en una "sub-secuencia" aparecen algunas letras aunque no necesariamente aparecen todas. Por ejemplo la hilera "..1...2..3...4....5" tiene como sub-hilera a "2..3" y "12345" es una sub-secuencia que no es sub-hilera. La hilera nula "" siempre es sub-hilera y sub-secuencia de cualquier hilera.

3.a) [5 pts] Explique cómo se puede implementar el método estático esSubHilera() que determina si una hilera es o no sub-hilera de la otra.

3.b) [8 pts] Especifique en formato Javadoc el método estático esSubSecuencia() que determina si una hilera es o no sub-secuencia de otra. Incluya ejemplos de uso.

3.c) [20 pts] Implemente esSubSecuencia().

 

Soluciones

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