Está en la página 1de 16

ANALISIS DE ALGORITMOS Y ESTRATEGIAS DE

PROGRAMACION

“Año del Fortalecimiento de la Soberanía


Nacional”

Título del trabajo : Evaluación Teórica 02.

Nombre del curso : Análisis de Algoritmos y estrategias


de programación.

Nombre del docente : Luis Alberto Dávila Hurtado.

Fecha de entrega : 23/11/2022.

Nombres y Códigos :

1. Guido Huaman Quicaño - N00249670 (Coordinador).

2. Alexis Castillo Herrera - N00241142.

3. Ayrton Anicama Seclen - N00317133.

4. Miguel Candela Peche - N00265224.

2022
EVALUACIÓN EXAMEN T2

1. Implementar el algoritmo del laberinto aplicando backtracking (10 puntos)

1. Implementar el algoritmo del laberinto aplicando backtracking

Interfaz Gráfica:

Nivel 1:

Nivel 2:

Nivel 3:
Código:
 Para la elaboración del juego se ha creado en java 3 clases: Juego, Laberinto y Personaje.
Dentro de la clase Personaje, tenemos este código:
Dentro de la clase Laberinto, tenemos lo siguiente:
**Aplicando la recursividad:

Dentro de la función “rellenarcamino”, para definir los posibles caminos y marcar


estos caminos como visitadas para lograr el camino optimo para llegar a la meta,
llamamos a la misma función tomando en cuenta los parámetros ya configurados.
Dentro de la clase juego, tenemos lo siguiente:
 Casos de prueba:

La primera prueba se establece de manera automática esa ruta (óptima) para llegar al
Fin del laberinto, según lo establecido, el cual primero me restringe que no salte
entre paredes, poder llegar a la meta de la manera más óptima.

Se ha implementado otro código por consola y calcula también la solución del laberinto por coordenada:
Este segundo código a base de consola me permite seleccionar el laberinto y la opción de hacerlo manual o de
manera automática:

2. Implementar el algoritmo de las torres de hanoi. (10 puntos)

Torre de Hanoi

class Torre
{

Plato[] Platos;
public int Numero_elementos;

public Torre(int Numero_platos)


{
Platos = new Plato[Numero_platos];
Numero_elementos = 0;
}

 Este algoritmo permite añadir a la torre

public void AñadirPlato(Plato P)


{
this.Platos[Numero_elementos] = P;
Numero_elementos++;
}
 Este algoritmo quita y devuelve los platos de la torre

public Plato Retirar()


{
Numero_elementos--;
return Platos[Numero_elementos];
}
 aquí de vuelve los platos de la torre

public Plato UltimoElemento()


{
return Platos[Numero_elementos - 1];
}

public int Numero_seriefinal()


{
if (Numero_elementos != 0)
{
return Platos[Numero_elementos - 1].Numero_serie;
}
else
{
return 0;
}

}
}
}

 Iniciamos con las variables, se cargan los platos en las torres ,se crean los platos que se van a
almacenar en un arreglo con los parámetros necesarios posición y tamaño de los platos
 Método utilizado para mover los platos según la torre en la que está ubicado

 Método recursivo que recibe el identificador de la torre en el arreglo de torres


Interfaces Graficas
• Para cada algoritmo podrán seleccionar el lenguaje de programación que mejor prefieran.
• Cada programa implementado deberá mostrar una interfaz gráfica de ventanas de Windows
• Para cada programa implementado deberá comentar el código fuente, explicando la funcionalidad
de cada estructura funcional
• Para cada programa construir una hoja conteniendo casos de prueba del software (valores que
ingresará al programa, señalando valor esperado y valor obtenido, para contrastar cumplimiento
funcional)
• La aplicación debe permitir realizar las siguientes operaciones:
• Generar nuevos juegos (distintos cada vez que se seleccione esta opción) de manera automática.
• Resolver el problema planteado actual

Según el artículo 11 del reglamento del estudiante, cometer actos en contra de la probidad de las evaluaciones, entre ellos el plagio, es falta sancionada con
inhabilitación en un curso.

También podría gustarte