Segundo Obligatorio
Aspectos Generales
- El segundo trabajo obligatorio trata sobre Backtracking y Laberintos.
- Pueden descargar la letra del obligatorio en formato pdf.
- La fecha de entrega es el miercoles 1 de Diciembre. No se aceptarán trabajos entregados despues de este plazo.
- Pueden realizar sus entregas desde el formulario de entrega via web.
Cronograma Tentativo
Les sugerimos fuertemente que sigan aproximadamente el siguiente cronograma para llevar a cabo la tarea de manera sencilla.- Primer Semana:
- Leer la letra.
- Entender los distintos problemas.
- Plantear dudas conceptuales.
- Focalizarse unicamente en hallar un camino.
- Segunda Semana:
- Pensar estructuras adecuadas para el programa.
- Implementar un procedimiento que obtenga un camino.
- Pensar como se debe modificar el programa para encontrar un camino mínimo.
- Modificar el procedimiento anterior para que cupla ese requerimiento.
- Tercer Semana:
- Hacer un procedimiento que dibuje en pantalla la solución.
- Probar los casos de prueba y generar otros (inclusive sin solución).
- Escribir una breve documentación explicando deciciones de diseño.
Archivos de Prueba
Aquí encontraran archivos de prueba con configuraciones iniciales para los programas.Para utilizar un archivo de entrada usamos la función de DOS para redirigir la entrada estandar.
El programa en Pascal "lee" las lineas del archivo como si fueran ingresadas por un usuario desde el teclado.
Se utiliza de esta manera, desde una ventana de DOS ejecutar el programa asi:
ejecutable < entrada.txtObservación: No se puede usar el modulo CRT para usar los archivos de prueba.
Los datos en los archivos son:
- 2 enteros (m,n) indicando las dimensiones del laberinto
- 2 enteros indicando las coordenadas de la salida
- 2 enteros indicando las coordenadas de la llegada
- m x n reales indicando los costos de cada casilla del laberinto
- 1 real indicando la cota para el costo del camino
- Existe un camino de longitud 56 y tiene un costo de 0. El camino es:
(2,2) (3,2) (4,2) (4,3) (4,4) (4,5) (4,6) (5,6) (5,7) (5,8) (5,9) (5,10) (5,11) (5,12) (5,13) (5,14) (4,14) (4,15) (4,16) (4,17) (4,18) (4,19) (4,20) (3,20) (3,21) (3,22) (3,23) (4,23) (4,24) (4,25) (4,26) (5,26) (6,26) (6,25) (7,25) (8,25) (8,24) (8,23) (8,22) (8,21) (8,20) (8,19) (8,18) (8,17) (8,16) (9,16) (10,16) (10,17) (10,18) (10,19) (10,20) (10,21) (10,22) (10,23) (10,24) (10,25) - Existe un camino de longitud 21 y tiene un costo de 0. El camino es:
(4,1) (4,26) (4,25) (4,24) (4,23) (3,23) (3,22) (3,21) (3,20) (4,20) (4,19) (4,18) (3,18) (2,18) (2,17) (2,16) (2,15) (2,14) (2,13) (2,12) (3,12) - Existe un camino de longitud 21 y tiene un costo de 21. El camino es:
(5,4) (6,4) (7,4) (7,3) (7,2) (7,1) (8,1) (8,12) (8,11) (7,11) (6,11) (5,11) (4,11) (3,11) (3,10) (3,9) (3,8) (3,7) (3,6) (4,6) (5,6) - No existe camino.
- Existe un camino de longitud 11 y tiene un costo de 3.03472. El camino es:
(2,2) (3,2) (4,2) (5,2) (5,3) (5,4) (5,5) (5,6) (4,6) (3,6) (2,6)
Primer Obligatorio
Aspectos Generales
- El primer trabajo obligatorio trata sobre Simulaciones con Autómatas Celulares Estocásticos.
- Pueden descargar la letra del obligatorio en formato pdf.
- La fecha de entrega es el miercoles 27 de Octubre. No se aceptarán trabajos entregados despues de este plazo.
- Pueden realizar sus entregas desde el formulario de entrega via web.
Cronograma Tentativo
Les sugerimos fuertemente que sigan aproximadamente el siguiente cronograma para llevar a cabo la tarea de manera sencilla.- Primer Semana:
- Leer la letra.
- Entender los modelos.
- Plantear dudas conceptuales.
- Focalizarse unicamente en el Modelo de Crecimento Simple.
- Segunda Semana:
- Pensar estructuras adecuadas para el programa.
- Implementar el Modelo de Crecimento Simple.
- Buscar similitudes entre el Modelo de Crecimiento Simple y el de Competencia.
- Pensar como se pueden aprovechar estas similitudes en el programa.
- Tercer Semana:
- Implementar el Modelo de Competencia o Votación.
- Entender el Modelo de Crecimento Fractal.
- Buscar similitudes y diferencias con los anteriores.
- Pensar que cosas se pueden aprovechar y reutilizar.
- Cuarta Semana:
- Implementar el Modelo de Crecimento Fractal.
- Escribir datos de prueba para los programas.
- Testear los programas con distintos datos.
- Escribir la documentación de diseño.
Archivos de Prueba
Aquí encontraran archivos de prueba con configuraciones iniciales para los programas.Para utilizar un archivo de entrada usamos la función de DOS para redirigir la entrada estandar.
El programa en Pascal "lee" las lineas del archivo como si fueran ingresadas por un usuario desde el teclado.
Se utiliza de esta manera, desde una ventana de DOS ejecutar el programa asi:
ejecutable < entrada.txtObservación: No se puede usar el modulo CRT para usar los archivos de prueba.
- Crecimiento Simple
P (real),ancho y largo (enteros), configuracion inicial (enteros, 0=vacio y 1=ocupado) - Votación
PA y PB (reales), ancho y largo (enteros), configuracion inicial (enteros, 0=A y 1=B) - Crecimiento Simple
ancho y largo (enteros), densidad del gas (real), cantidad de particulas de solido (entero), coordenadas de cada particula (2 enteros por particula)
Información Adicional
Documentación del modulo Graph de Turbo Pascal
- Para usar el modulo el programa debe tener la linea:
Antes de la declaración de variables, constantes y procedimientos.uses graph; {importo la libreria grafica para poder usarla}
- La libreria require de dos variables de tipo integer, para guardar el driver y el modo de video.
- Para Inicializar la libreria el programa principal debe contener las instrucciones:
Observen que el procedimiento initgraph lleva como parametro la ruta a las librerias (donde instalaron el Pascal).driver:=detect; {llamo al procedimiento de detección de la tarjeta de video}
initgraph(driver,modo,'C:\TP'); {inicializo la pantalla en esa resolución, driver y modo son dos integers}
En general los valores de driver y modo se pueden setear a mano tambien usando constantes definidas en el modulo, por ejemplo:
La pantalla en este modo tiene una resolución de 640x480 pixeles, y 16 colores.driver:=Vga; {seteo el driver de video en VGA}
modo:=VgaHi; {pongo el modo de video en alta resolucion 640x480} - Al terminar el programa debo salir del modo gráfico (no es indispensable pero si correcto, puede dar problemas)
closegraph; {antes de terminar el programa cierro el modo de video} - Algunos comandos utiles son para dibujar en la pantalla son:
putpixel(100,150, Magenta); {Dibuja un pixel (punto) en la posicion (10,10)}
rectangle(10,10,20,20); {Dibuja un rectángulo (el borde) con extremos (10,10),(20,20)}
setcolor(Red); {Fija el color}
setfillstyle(1,i); {Fija el estilo y relleno del los objetos con relleno}
bar(10,10,20,20); {Dibuja un rectángulo relleno segun lo prefijado antes}
cleardevice; {Borra la pantalla}
Documentación de unidades de Pascal
- Las unidades, tambien llamadas modulos o librerias, son un conjunto de procedimientos que definen una interfaz y ya estan implementados. Son rutinas de proposito general y altamente reutilizables, esto nos permite despreocuparnos de tener que implementar nosotros ciertas funciones y simplemente utilizarlas.
- Pueden bajar este documento donde se explica las unidades del Turbo Pascal en particular tiene una sección sobre la unidad graph, que es bastante clara.