Sunteți pe pagina 1din 4

Facultad

Ingeniera
Ingeniera Civil en Minas

Prueba Recuperativa
(Total : 33 puntos)

Luego de cada prueba , independiente del resultado , los mineros salen a celebrar o a pasar
la penas, lamentablemente muchas veces llegan a sus casas o pensin en estado poco
conveniente , y se convierte un desafo llegar a su cama.

Es as el caso de un minero cuya identidad protegeremos y solo daremos sus iniciales DL,
que en su casa cuando sale de parranda marcan en las baldosas el camino para llegar a su
cama. Estas casa con sus baldosas marcadas ,la podemos representar con una matriz de
dimensin mxn.

DL dado su estado puede ingresar por el frontis o por el costado de su casa, ya sea por la
ventana o puertas de la casa. Las ventanas o puertas de la casa est marcada por un uno
en la matriz , es decir solo en la fila 0 o en la columna 0 estn indicadas estas.

Entonces sus amigos lo dejan en el antejardn de la casa y DL camina tratando de ingresar


a su casa y posteriormente a su cama. El azar nos indica si DL logra llegar a una puerta o
ventana de su casa, por tanto el azar debe sortear en que posicin del frontis o costado de
la casa llega. Si no es ventana o puerta, entonces no lograr entrar y duerme en el patio, si
el azar le permiti llegar a una puerta o ventana, tiene que ver si las baldosas marcadas
por su familia le permiten llegar a su cama que siempre est en la posicin M[m-1][n-1].
Las baldosas que indican el camino a su cama estn marcadas con el nmero 2.

c
o frontis

st
a
d cama
o

As debe ir avanzando hasta su cama, primero debe tratar de avanzar por la diagonal, si
no encuentra un dos en la diagonal debe preferir avanzar hacia abajo(avanzar en las X), si
no encuentra un dos hacia abajo, debe ir hacia la derecha (avanzar en las y), si no
encuentra un dos hacia la derecha , debe ir hacia la izquierda(retroceder en las y), si no
encuentra un dos hacia la izquierda, debe ir hacia arriba(retroceder en las x).

En caso de no encontrar un 2 en ninguna de esas posiciones entonces DL no llega a su


cama y tendr un mal dormir.

Entonces construya un programa en python que le permita llegar a su cama a DL. El


programa cuando alcanza la cama ,despliega la cantidad de saltos que debe hacer Dieguin,
-saltando de baldosa en baldosa - y mostrando todas las posiciones que recorri ,las que
deben quedar almacenadas en una lista.

5
3 Prioridades de
movimientos
4 1
2

La matriz con el camino y ventana ser ingresa por la familia de DL en un matriz mxn

Por ejemplo la matriz ingresada la familia de la casa al lado del Hospital Italiano fue :
1 0 0 0
1 2 0 0
0 0 2 2
0 0 0 2
1 0 0 2

Un da de juerga arroj que DL lleg a la casa por la posicin 4,0 y no logr llegar a su
cama.
Otro da despus de la prueba de Solu, DL volvi a salir y el programa arroj que lleg a
la casa por la posicin 1,0 y logr llegar a su cama dando 4 saltos y el camino fue ['10',
'11', '22', '33', '43']

Luego cuando se cambiaron de casa la nueva matriz fue :


1 0 1
1 2 0
0 0 2
0 0 0
0 0 2
Ese mismo da celebr, volvi del carrete y el programa entreg el resultado: No lograr
llegar a su casa, ya que entr por 2,0 y durmi sobre las rozas de su mam.

El programa principal esta confeccionado de la siguiente forma


#Proceso Principal
n=math.trunc(float(raw_input("Ingrese numero de filas de la casa")))
m=math.trunc(float(raw_input("Ingrese numero de columnas de la Casa")))
#crea matriz con las dimensiones
Casa=IngresaMatrizdeCasa(n,m)# Ingresa 1 para puertas y ventanas y 2 para el camino
imprimir (Casa) #Muestra matriz de casas
Lograentrar,x,y=Entraacasa(Casa) #funcion para saber por donde entro
if Lograentrar==True:
print "DL logra entrar a su casa por la posicion", x,y
LograLLegar,saltos,Pasos=CaminodeDL(Casa,x,y) #Recorre camino hacia la cama
if LograLLegar:
print "DL Logra Llegar a su cama en : ",saltos,"saltos Siguiendo el camino", Pasos
else:
print "DL No Logra Llegar a su cama"
else:
print "DL no logra entrar a su casa ya que entro por ",x,y

Con esta informacin se le pide crear las funciones:

EntraaCasa: Los parmetros de la funcin es la matriz(que tiene 1 y 2) y la funcin


retorna si logra entrar a la casa , ya que al azar determina por donde trata de entrar a
la casa , si encuentra un 1 ingresa , retornando True y la posicin por donde entra, de
lo contrario retorna un False y la posicin por donde trat de entrar.

CaminodeDL. Los parmetros de la funcin son : la matriz que modela la casa.La


funcin debe retornar: True si logra llegar a su cama, la cantidad de saltos que realiz
para llegar y una lista con el camino recorrido.

Nota:Recuerde que al crear la funciones debe utilizar variable significativas y comentar


su programa con #comentarios.
Pauta:
EntraaCasa ( 6 puntos)
Valida a azar por donde entro frente o costado(solo en la fila 0 en columna 0) y azar del
otro elemento hasta el largo de filas o columnas- 4 puntos
Si hay un 1 digo que logro entrar -1 punto
Retorna Boleano, posicion -1 punto

CaminodeDL (22 puntos)


Inicializa Variables y listas-1 punto
Agrega por donde entr a Lista-1 punto
Genera ciclo hasta llegar a cama o no encuentra camino-3 puntos
Valido que no estoy en Loop-1 punto
Recorre camino por prioridades establecidas- 6 puntos
Controla Bordes y veo si hay camino con 2 -6 puntos
Guardo en lista los pasos-2 puntos
Veo los pasos que di -1 punto
Retorno Booleana, cantidad de pasos y lista. -1 punto

Otros (5 puntos)
Realiza Comentarios que clarifican : 2 puntos
Nombre Variables que sean indicativas que son : 1 puntos
Sin Errores que permitan ejecutar y algoritmo es ptimo( no repite cdigos, utiliza
funciones vistas en clases) 2 puntos

Total 33 puntos

S-ar putea să vă placă și