lunes, 28 de abril de 2008

MT Multicabezal. Orden creciente de bloques de 0's

Entrada:
  • Ejemplo 1: B00100100010000B
  • Ejemplo 2: B00100010B
Salida:
  • Ejemplo 1: B00100100010000B (ACEPTA)
  • Ejemplo 2: ....(RECHAZA)
Proceso:

La MT contiene 2 cabezales, situados en el primer 0 los dos. El primero se mantiene en el 0 y el segundo busca el 1 que indica el comienzo del segundo bloque de 0s. Cuando lo encuentra se situa encima del 0 adyacente y movemos los dos cabezales hacia la derecha comprobando que el bloque de la izquierda sea menor o igual que el bloque de la derecha. Si es asi, seguimos comporbando los siguientes bloques sino la rechazamos.
Pd: Acepta cadenas formadas por un solo bloque de ceros (B000B)


Click para agrandar

MT Multicinta. Contador bloques de 0's

Entrada:
  • Cinta 1: B000010001010B
  • Cinta 2: BBBBBB..
Salida:
  • Cinta 1: B000010001010B
  • Cinta 2: B0000B
Proceso:

El cabezal empieza situado en el primer 0 (cinta 1) y recorre la cadena inicial en busca de 1s. Ccada uno que encuentre precedido de 0 añade un 0 en la cinta 2. Facil...¿no?


Click para agrandar

jueves, 24 de abril de 2008

Trabajo Semanal

Amigos del Turing,

Esta semana, las máquinas a realizar nos han parecido un poco mas sencillas que las anteriores, ¿será la practica? ¿seremos máquinas?. Para la realización de estos dos ejercicios hemos empleado el transcurso de la mañana soleada del jueves 24 de Abril. Ya preveemos los problemas que nos puede traer una determinada máquina con mas facilidad e igualmente con su resolución.

La resolución de los problemas propuestos fueron concluidas en 3 horas. Seguiremos informando...

Un saludo,
Los Máquinas del Turing.

MT Bloques de 0's en orden creciente

Entradas Posibles:
  • Correcta: B00100100000100000000B
  • Incorrecta: B0010010B
Salidas Correspondientes:

  • B00100100000100000000B
  • BBBBBBBB
Proceso:

Comparamos un bloque de 0's con el siguiente, marcandalo con X's, verificamos cual es mayor. Si es el primero, la cadena es falsa y la rechazamos. Si el segundo es mayor, continuamos comparando si se puede, sino dejamos la cadena como inicialmente nos la dieron llegando a un estado final.

Click para agrandar

MT Bloque de 0's

Entradas posibles:
B00100B
B000B
B100101B
BBB

Salida correspondientes:

B00B
B0B
B00B
BB

Proceso:

La máquina empieza con el cabezal después del primer blanco. El proceso consiste en leer 0's hasta encontrar un 1 ó B, en ese caso leemos el siguiente objeto de la derecha para comprobar si hemos llegado a su fin o no. Si es un B, al volver ponemos todo B's y escribimos el resultado a la izquierda de nuestra entrada inicial. Por el contrario, si es un 0, volveremos dejando la cadena como esté para añadir un 0 al resultado situado en la parte izq de la cadena y volver a buscar mas bloques de 0's.


Click para agrandar

martes, 15 de abril de 2008

Trabajo realizado (hasta ahora)

Como acordamos al principio de formar el grupo nos reunimos los jueves sobre las 9 de la mañana para dedicarnos exclusivamente a IS17, y no salimos hasta que acabamos el trabajo teniendo como hora limite las 3 ya que un integrante del grupo es currante. Pero vista la faena que conlleva tubimos que ampliar nuestro horario de trabajo improvisando días sueltos.

1ª SEMANA:
Esta semana hace referencia a el desarrollo de las maquinas de multiplicación, división y cuadrado. No dividimos el trabajo, hacemos todo todos y estubimos currando desde las 9 hasta las 3 del jueves correspondiente y nos falto pequeños detalles.
La MT de multiplicación y cuadrado no nos trajo muchos problemas en su desarrollo en cambio no podemos decir lo mismo de la división. Esta MT (división) nos llevo mucho más tiempo ya que nos costó entender el método y aplicarlo a la máquina. Finalmente utilizamos también la tarde del jueves para acabar dicha MT.

2ª SEMANA:

Esta semana hace referencia al desarrollo de la MT divisores. El jueves de quedada lo invertimos en corregir un poco las anteriores MT's aprovechando la aparición de los blogs y la nueva fecha de entrega. Después nos pusimos a crear la MT normal de los divisores con mucha más soltura debido a la familiarización con las máquinas, no obstante la complejidad de esta impidió que ese mismo día comenzaramos con la multicinta dejandola para el lunes siguiente, día de entrega.
Ese dia lo dedicamos exclusivamente a la multicinta quedando después de clase hasta las 3.

A todo esta faena se le añade el aprendizaje del blog ya que se nos escapaban pequeños detalles de presentación y demás.

lunes, 14 de abril de 2008

MT Multicinta, Divisores

  • Entrada: 3 cintas. 1 para el número que queremos analizar y las otras en blanco.
1º CINTA: B000000000B (DIVIDENDO)
2º CINTA: BBBBB..... (DIVISOR)
3º CINTA: BBBBB..... (DIVISORES)
  • Salida: 3 cintas. 1 el número a analizar, 2 para ir probando divisores y la 3 para acumular los divisores separados por unos.
1º CINTA: B000000000B (DIVIDENDO)
2º CINTA: BBB.... (DIVISOR)
3º CINTA: B0000000001000101B (DIVISORES)

Proceso: Empezamos a probar los divisores desde la mitad del número, para ello por cada dos ceros del dividendo añadimos uno al divisor. Comenzamos a probar si la división es exacta. Si lo es, almacenamos el número en la última cinta sino eliminamos un cero del divisor y probamos si es exacta. El bucle termina cuando el divisor(2 cinta) se queda en blanco y por tanto concluye la busqueda de los divisores.
Como podeis comprobar la cinta normal y la multicinta utilizan distintos métodos para localizar divisores pero mismos objetivos, consiguiendo el mismo trabajo de distintas formas.


Click para agrandar

jueves, 10 de abril de 2008

MT Divisores

Divisores.

Entrada: B0000B
Salida: B0000x00x0B

Has de saber que:

  • Empezamos modificando la original añadiendole ya a la izq del todo que es divisible por 1 (B0x....) y dejandolo preparado para dividir entre dos.


  • Tiempo: El tiempo a sido desde las 10 h hasta las 14 h para hacer esta MT y arreglar los anteriores (division, multiplicacion y n^2), cosa que ya nos costo la mañana del jueves anterior.
Proceso: El primer paso es dar por supuesto que el uno es divisor y lo añadimos a la izquierda de nuestro numero separado por una X. Después añadimos a la derecha el 2 separado por un dolar del dividendo y comenzamos a probar si las divisiones son exactas hasta que llegamos al mismo número que el dividendo ya que ibamos añadiendo ceros al divisor que comenzó siendo 2.

Click para agrandar

MT's de Multiplicación, división y n^2

Multiplicación

Entrada: B00100B
Salida: B0000B
Cabe destacar que empezamos desde el 0 de la izq.

Click para agrandar



División

Entrada: B0000100B
Salida: B$00B
Cabe destacar que empezamos desde el 0 de la izq.
También es de interés decir que resuelve divisiones de dividendo y/o divisor cero.

Click para agrandar


Cuadrado n^2

Entrada: B000B
Salida: B000000000B
Cabe destacar que empezamos desde el 0 de la izq.
Es de recibo añadir que no entendimos muy bien ''tu método'', y aqui enseñamos al mundo el nuetro, que consiste en duplicar y multiplicar.


Click para agrandar