Está en la página 1de 4

Estructuras de Datos

Control 1
01 de abril de 2022
Objetivos de la evaluación:
La siguiente evaluación tiene como objetivo medir los aprendizajes de los estudiantes en los siguientes
aspectos:
● Construcción de algoritmos en pseudocódigo.
● Construcción de programas con lenguaje C usando funciones, arreglos y punteros.

Instrucciones:
Las instrucciones que debe respetar fielmente en esta evaluación son las siguientes:
● Esta evaluación se resuelve de manera individual y asíncrona.
● La evaluación estará disponible a partir de las 13:00 horas del viernes 01 de abril.
● El programa debe poder ser compilado y ejecutado en ambiente windows o linux (use ANSI C).
● El plazo máximo para entregar la solución del control es el sábado 02 de abril a las 13:00 hrs.
Las condiciones de entrega son:
○ Entregar pseudocódigos y programas ordenados, legibles y comentados de acuerdo a las
instrucciones entregadas en este enunciado y con lo enseñado en clases. Recuerde que
escribir en lenguaje C es distinto a escribir en pseudocódigo.
○ Los pseudocódigos y el análisis de eficiencia (extra) de su algoritmo puede escribirlos en
un editor de texto o en papel (o cuaderno) pero la entrega debe hacerlo en pdf. Si decide
escribir su respuesta en papel, tome fotografías y pégalas en un documento para
generar un único PDF.
○ Obviamente, el programa en lenguaje debe escribirlo en un editor C.
○ El nombre de los archivos pdf y .c deben usar el siguiente formato:
SECCION_control1_rut_apellido_nombre.extensión.
Ejemplo: Si su sección es A1, nombre Camila Vallejos y rut 20023066-3 entonces los
archivos que debe subir a la uvirtual son:
■ A1_20023066-3_control1_vallejos_camila.pdf
■ A1_20023066-3_control1_vallejos_camila.c
● Recuerde que la copia (o plagio) no acredita que usted haya logrado los aprendizajes que se
están evaluando en este instrumento, por lo tanto, no se arriesgue a ser calificado(a) con nota
1.0. No busque soluciones en internet u otras fuentes. Sea usted el propio creador de las
soluciones que entrega en esta evaluación. Recuerde que esta evaluación es individual.
Enunciado:

Se tiene un laberinto representado por una matriz de orden n × m, que se encuentra almacenado en un
archivo nombrado por maze-k.txt, donde k es un número entero que identifica al laberinto. Este archivo
contiene lo siguiente:
● En la primera línea, posee la cantidad de filas (n) y columnas (m) separados por un espacio.
● En las siguientes n líneas, cada una de largo m, el valor de cada celda se encuentra representado
por:
e: entrada al laberinto
o: pasillo libre del laberinto (puede avanzar)
x: obstáculo o pared (no puede avanzar)
s: salida del laberinto

Con respecto al desplazamiento dentro del laberinto, considere lo siguiente:


● Dentro del laberinto puede avanzar a una celda adyacente sólo si ésta posee un pasillo libre.
● La letra e puede estar sólo una vez y en cualquier parte de los lados extremos del laberinto.
● La letra s puede estar sólo una vez y en cualquier parte de los lados extremos del laberinto.
● Puede avanzar en cuatro direcciones: izquierda (L), derecha (R), arriba (T) y abajo (D).
● El laberinto podría no tener solución: es decir, podría no existir un camino que comience en la
entrada y concluya en la salida.

Se solicita:
1. Construir un algoritmo en pseudocódigo que permita encontrar un camino desde la entrada
hasta la salida del laberinto. El algoritmo debe mostrar el camino en el caso que tenga solución
o en caso contrario indicar que no la tiene.
2. Programe su algoritmo en lenguaje C utilizando funciones, arreglos y punteros.
3. Pregunta extra: Indique y fundamente el orden de eficiencia de su algoritmo.

Para ejecutar el programa debe hacerlo usando la línea de comando de la siguiente forma:

>> nombre_programa maze-k.txt


Ejemplos de entradas y salidas del programa:

Ejemplo 1:
Archivo de entrada: maze-1.txt
10 14
oooeoooooooooo
oxxxxxxxxooxxo
oxoxxoxoxooxxo
oxoxxoxoxoxxxo
oxooxoxoxxxxoo
ooooxoxooooooo
oxxxxxxxxxxxxo
oxoxooooooooxo
oxoxxxxxxxxxxo
ooooooooosoooo

>> nombre_programa maze-1.txt


Salida:
Un camino para maze-1 es: LLLDDDDDDDDDRRRRRRRRR

Ejemplo 2:
Archivo de entrada: maze-2.txt

8 18
oooooooooooooooooo
ooxxoxooxxxxxxxxxs
oooooxoooxooxooxxo
ooxoooxxxoxxoooxoo
ooxxxxxoxxxooooxxo
ooxoooxooxxxxxoxoo
exxxxxxxxxoooxoxxo
oooooooooooooooooo

>> nombre_programa maze-2.txt


Salida:
Un camino para maze-2 es: TTTRTTTRRRRRRRRRRRRRRRRD
Ejemplo 3:
Archivo de entrada: maze-3.txt
6 18
oooooooooooooooooo
oxxxxxooxxxxxxxxxe
xoxoooxxxoxxoooxoo
ooxxxxxoxxxooooxxo
sxxxxxxxxxoooxoxxo
ooooooooxooooooooo

>> nombre_programa maze-3.txt


Salida:
maze-3 no tiene salida.

Criterios de evaluación:
Algoritmo (40 puntos):
Item I (8 pts): El algoritmo propuesto apunta a resolver el problema planteado, y usa la
estructura de datos indicada.
Item II (24 pts): Cumplido total o parcialmente el ítem I, el algoritmo resuelve correctamente
el problema planteado.
Item III (8 pts): Cumplido total o parcialmente el ítem I, el algoritmo está escrito en
pseudocódigo ordenado y consistente, identificando entradas y salidas

Programa (60 puntos):


Item I (5 pts): Consistente con el algoritmo entregado.
Item II (8 pts): Modularidad (usa funciones correctamente)
Item V (5 pts): Estructuras datos utilizadas (uso de matrices con punteros)
Item III (27 pts): Cumpliendo total o parcial con la consistencia, modularidad y estructuras
de datos requeridas, la ejecución de su programa es correcta (compila y entrega los
resultados esperados)
Item III (5 pts): Buenas prácticas de programación (ordenado, comentado, indentado, etc.)

Extra:
Análisis de eficiencia algoritmo (5 puntos extra).

También podría gustarte