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

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]

class Biblio {
    static void vuelveTres( char[] V ) { /* ... */ }
}

1.a) [25 pts] Implemente el método estático "vuelveTres()" de la clase "Biblio" que sirve para separar un arreglo en 3 partes de longitud similar e invertir cada parte. No olvide escribir la especificación completa de "vuelveTres()".

1.b) [25 pts] Suponga que ya cuenta con un método en "Biblio" que permite ordenar ascendentemente una parte de un arreglo. Uselo para mejorar su implementación de "vuelveTres()" de manera que, según lo indique el argumento booleano "ordene", además de invertir las 3 partes del arreglo, también las deja ordenadas (en este caso, cada uno de los pedazos quedaría en orden descendente). No olvide escribir la especificación completa de sus rutinas.

 

2) [50 pts] Implemente "Biblio.esCarnet()".

/** Retorna "{@code true}" si "{@code carnet}" es un carnet UCR válido.
    <li> La '{@code A}' del principio puede ser mayúscula o minúscula.
    <li> Comienza con "{@code A}" o con un dígito.
    <li> Tiene sólo dígitos en el  resto.
    <li> Es de longitud 6.
    <li> <code> esCarnet( "a00345" ) == true </code>
    <li> <code> esCarnet( "782015" ) == true </code>
    <li> <code> esCarnet( "00345" ) == false </code>
*/
boolean esCarnet( String carnet );

 

Soluciones

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