miércoles, 9 de abril de 2008

Trabajo 01 - Escribir MTs de multiplicar, dividir y n^2

Miembros del grupo 1:
Javier Garcés Niño
Manuel Alberto Bolós Doñate
José Simó Albiol


MT para multiplicar:
Dados dos enteros n y m, obtener el resultado de la multiplicación.
ENTRADA: ...B00010000B...
SALIDA: ...B000000000000B...

01B$
q0(q0,0,R)(q0,1,R)(q1,$,L)
q1(q1,0,L)(q1,1,L)(q2,B,R)
q0(q1,B,R)(q7,B,R)(cambiar estados)
()
q1(q1,0,R)(q2,1,R)

q2(q3,B,R)

(q5,$,L)
q3(q3,0,R)

(q4,0,L)

(q3,$,R)
q4(q4,0,L)
(q2,B,R)(q4,$,L)
q5
(q6,1,L)

(q5,0,L)


q6

(q6,0,L)


(q0,B,R)
q7

(q7,B,R)



(q8,B,R)
q8





MT para dividir:
Dados 2 enteros n y m, obtener el resto y el cociente de la división.
Nota: El final de la MT tiene una versión distinta a la propuesta en clase.
ENTRADA: ...B000100000B...
SALIDA: ...B0010B...

01BY$
q0(q0,0,R)(q1,1,R)


q1(q1,0,R)
(q2,B,L)

q2(q3,$,L)



q3(q3,0,L)(q4,1,L)


q4(q4,0,L)
(q5,B,R)

q5(q6,B,R)



q6(q6,0,R)(q7,1,R)


q7(q8,Y,R)

(q7,Y,R)
q8(q9,0,L)


(q10,$,R)
q9(q9,0,L)(q9,1,L)(q5,B,R)(q9,Y,L)(q9,$,L)
q10(q10,0,R)
(q11,0,L)

q11(q11,0,L)


(q12,$,L)
q12(q12,0,L)

(q13,0,L)
q13(q14,Y,R)(q13,1,L)(q17,B,R)(q13,Y,L)
q14(q12,0,L)(q14,1,R)
(q14,Y,R)(q15,$,L)
q15
(q16,1,L)
(q15,Y,L)
q16(q16,0,L)
(q5,B,R)(q16,0,L)
q17(q18,B,R)(q17,B,R)
(q17,B,R)
q18(q18,0,R)


(q19,1,L)
q19







MT para N2:
Dado un entero n, obtener el cuadrado de ese entero.
Nota: El procedimiento es diferente al propuesto en clase.
ENTRADA: ...B000B...
SALIDA: ...B000000000B...

0BXYZ$
q0(q1,X,R)




q1
(q2,B,R)
(q2,Y,R)

q2(q3,Y,R)
(q3,Z,R)

(q6,$,L)
q3(q3,0,R)
(q3,X,R)(q3,Y,R)(q3,Z,R)(q4,$,R)
q4(q4,0,R)(q5,0,L)



q5(q5,0,L)
(q2,Y,R)
(q2,Z,R)(q5,$,L)
q6
(q7,B,R)
(q6,0,L)(q6,X,L)
q7(q7,0,R)
(q8,0,R)


q8(q9,X,L)



(q10,B,L)
q9(q9,0,L)(q0,B,R)



q10(q10,B,L)(q11,B,R)



q11





2 comentarios:

Fluket19 dijo...

Correciones de las MT's.
Multiplicacion: El simbolo 2 deberia de ser una B y no se prepara la cadena, es decir, no se añade el $ al final ;).
Division: Con la cadena 00100000 por ejemplo, al cabo de unos pocos pasos, llegamos a BBq51YY00$. q5 no tiene transicion con 1, es decir, acabaria la maquina. Yo recomiendo tachar los 0's del principio tambien con Y o con X para que no se confundan con los otros B y así es mas facil.
N Cuadrado: De q0 con 0 pasas a q1 y sustituyes por X, es decir, de qo000 a Xq100 y luego que? no hay transicion desde q1 al leer un 0. Mira a ver, si podeis arreglar las maquinas, si no me he explicado bien o algo, preguntad ;). Un saludo!

MABD dijo...

Ok, miraremos los fallos, posiblemente nos dejariamos alguna fila sin poner la transición.