You are on page 1of 2

Gua de Preparacin para Segundo Examen Parcial de

Programacin I
ciclo 01/2016

Alumno/a: _________________________________________________________ Carnet: ____________________

Fecha: Mircoles 18 de mayo

Indicaciones generales: Esta es una serie de problemas orientados a entrenarse para el segundo
examen parcial de esta materia, pero no son los mismos que vendrn en el examen. Entindalos
y planifique su solucin. No se siente a codificar de inmediato a menos que la solucin sea muy
obvia para usted.
El examen se realizar pudiendo usar computadora e internet si as lo desea cada alumno, pero no
debera ser necesario. La solucin podr ser entregada opcionalmente en digital a travs del aula
virtual.
Se recomienda hacer corridas a mano para depurar el cdigo. Recuerde que el intrprete no dice
cul es el error, sino que dice a partir de dnde y por qu ya no puede continuar la ejecucin.
No habr consulta durante el examen para monitorear que no haya comunicacin entre los
evaluandos.
Toda la codificacin se entender en lenguaje Python v2.7. Deber implementar todas las
funciones auxiliares que necesite (excepto las del mdulo math) y todas las validaciones
pertinentes. Recuerde que ya hicimos bastantes validaciones de matrices en clase (y estn en el
aula virtual).

1. Escriba una funcin (de tipo procedimiento) que muestre en pantalla una simulacin de la
solucin del problema de las Torres de Hanoi. La nica entrada de la funcin deber ser el
nmero de discos.

2. Escriba una funcin que dada una matriz (es decir una lista de listas de la misma longitud)
de caracteres, y una palabra, devuelva una tupla de dos tuplas con la posicin en la se
encuentra la primera y ltima letras de la palabra respectivamente. Las palabras pueden
estar en cualquier direccin. Recuerde que para el usuario, las filas y columnas se cuentan
desde 1.
3. Escriba una funcin que reciba una matriz y la devuelva rotada hacia la derecha. La
matriz devuelta debe ser una diferente a la matriz de entrada, es decir que no debe
modificar la que recibe.
4. Escriba una funcin que reciba una matriz y la devuelva rotada hacia la izquierda. La
matriz devuelta debe ser una diferente a la matriz de entrada, es decir que no debe
modificar la que recibe.
5. Escriba una funcin que reciba una matrz cuadrada de nmeros y devuelva True si
dicha matriz es un cuadrado mgico y False si no lo es. Una matriz es cuadrado mgico
si y slo si la suma de los nmeros por columnas, filas y diagonales principales es la
misma. Por ejemplo, la siguiente matriz es cuadrado mgico:

[ ]
4 9 2
3 5 7
8 1 6

6. Escriba una funcin que reciba una matrz de nmeros enteros, otro nmero entero aparte
y devuelva cuntas veces aparece el nmero aparte dentro de la matriz.
7. Escriba una funcin que reciba una matriz y devuelva su matriz inversa por el mtodo de
cofactores.
8. Disee un algoritmo por fuerza bruta que le permita salir de un laberinto de paredes de
ngulos rectos.
9. Escriba una funcin que reciba una matriz cuadrada A y un nmero natural n , y
devuelva A n .
10. Disee un algoritmo por fuerza bruta que le permita salir de un laberinto de paredes de
ngulos rectos.
11. Escriba una funcin que dado un tablero vaco de ajedrez, una coordenada inicial y una
coordenada final devuelva una secuencia de movimientos que permita llegar a un caballo
del punto inicial al final. Recuerde que el caballo en el ajedrez slo puede moverse en
trayectorias con forma de L.