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 #2 [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!

 

3) [50 pts]

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

3.a) [10 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. Escriba la especificación completa de "Escalereado()".

3.b) [40 pts] Implemente "Escalereado()".

 

4) [50 pts]   
/** Intercala los dos sub-arreglos ordenados A[izq..mid] y A[mid+1..der].
    <li> A[] queda ordenado descendentemente.
    <li> A[izq..mid] está ordenado ascendentemente.
    <li> A[mid+1..der] está ordenado ascendentemente.
    <li> Para hacer la intercalación usa el arreglo temporal "tmp[]"
         como área de trabajo.
    <li> Los valores A[izq..der] quedan ordenados descendentemente.
    <li> El esfuerzo usado es O(der-izq).
*/
void Intercala_Inversa( int[] A, int izq, int mid, int der, int[] tmp );

4.a) [0 pts] Modifique la especificación de "Intercala_Inversa()" de manera que quede bien definido qué hace el método, pues es en la implementación adonde queda escrito cómo se hace.

4.b) [50 pts] Implemente el método "Intercala_Inversa()". No lo implemente reordenando los números: más bien haga la intercalación de los dos sub-arreglos de manera que su algoritmo haga una única una pasada por el arreglo "A[]". Note que al final los valores de "A[]" quedarán ordenados descendentemente y que no importa qué ocurra con el valor del vector "tmp[]".

 

Soluciones

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