domingo, 21 de marzo de 2010

Proyecto 3


¿Que es recursión?

Un algoritmo recursivo es cuando el algoritmo se llama a si mismo, y se divide en problemas mas fáciles de resolver, es decir, se divide en instancias mas pequeñas del mismo problema y las resuelve parte por parte. En cuanto a cuando no es conveniente usar recursión: Cuando el algoritmo utilice arreglos muy largos, cuando el método cambie de manera impredecible de campos, cuando las iteraciones sean la mejor opción.

Como trabajaron como grupo

Todos nos dividimos el trabajo en partes, para luego enviárselos a nuestro compañero Manuel que haría la presentación en MS Power Point. Todos nos ayudamos para que el trabajo no fuera tan pesado.

¿Qué fue tu contribución al proyecto?

Mi contribución al trabajo fue muy pequeña porque solo ayude con las conclusiones del trabajo.

¿Comó compara lo que hiciste tú con el trabajo de los demás?

Aunque todos nos dividimos el trabajo, mi contribución no fue muy extensa. Y sé que debí de contribuir con mas cosas.

¿Que podrías mejorar en el futuro?

Planear mejor mi tiempo para realizar nuestro proyecto y contribuir mas con el trabajo. Como equipo deberíamos planificar, preparar, investigar y realizar el trabajo con mas tiempo para que no se complicara el trabajo y terminarlo a tiempo.

Ligas a los blogs de mis compañeros:


jueves, 4 de marzo de 2010

Proyecto 2

El Salto del caballo

Se dispone de una superficie rectangular "cuadriculada", es decir, formada por un entramado de
posiciones o casillas (como ocurre, por ejemplo, con un tablero de ajedrez). Nos interesa buscar
caminos dentro de esta superficie que cumplan ciertas condiciones, teniendo en cuenta que
algunas de las casillas no pueden formar parte de dichos caminos (para entendernos,
representan obstáculos en la superficie).
Problema
Dada una superficie rectangular de dimensión n×m, realizar un programa que la recorra
partiendo de una casilla inicial y llegando a una casilla final según las reglas siguientes:
· Todas las casillas deberán ser visitadas excepto las casillas marcadas como no
visitables.
· No se podrá visitar más de una vez cada casilla.
· El salto de una casilla a otra deberá realizarse siguiendo las reglas de
movimiento del caballo de ajedrez. Esto es, desde una casilla sólo se
podrá avanzar a aquellas resultantes de avanzar una posición en línea
recta y otra en diagonal en la misma dirección. El esquema muestra en
rojo las casillas accesibles al caballo:
El programa deberá calcular la secuencia de casillas visitadas desde la inicial hasta la final. En
caso que no exista ninguna solución, el programa debe detectar esta situación e informar.


Imagen tomada de Wikipedia

Entrada

La entrada del programa consiste en una secuencia de líneas, que tendrá el siguiente formato:
· La primera línea contiene la dimensión de la superficie, es decir, el número n de
columnas y el número m de filas. Los dos valores son por lo menos 1 y a lo mas 16.
· La segunda línea contiene la posición inicial y la posición final, cada posición siendo
dos enteros, la columna y la fila respectivamente. Puedes suponer que las dos
posiciones están dentro de los límites de la superficie.
· A continuación, m líneas más. Cada línea representa una fila de la superficie, y
contiene n caracteres, uno por columna. Cada uno de estos caracteres puede ser 'V'
o 'N', dependiendo de si la posición correspondiente es visitable o no. Los
caracteres aparecen separados por un único carácter "espacio".
A efectos de numeración, debe considerarse que las filas van de 1 a m y las columnas de 1 a n.

Salida

La salida del programa contendrá una línea por cada posición que forme parte del camino
encontrado como solución que cumpla las condiciones dadas en el enunciado. Cada posición
es un par de enteros: la columna y la fila. La primera posición de la solución será la posición
inicial, y la última la posición final.
Si no hay ninguna solución, la salida contendrá una única línea con el texto
“INSATISFACTIBLE”. Si existe más de una solución, cualquiera de ellas se considera válida.



La siguiente liga muestra la emulación del programa:http://www.ciberchess.com/comun/curiosidades/cabalo/cabalo.html