Академический Документы
Профессиональный Документы
Культура Документы
21/Abril/2018
CORREO; fernando.ferrero@itnl.edu.mx
CORREO; Pabloju86@gmail.com
NO CONTROL; 15480788
Lenguajes Y Autómatas Unidad 4: Maquinas De Turing
PROGRAMA
1.- Haga un programa para una máquina de Turing que acepte cadenas de la forma a n bn |
ó un 2 si el avance es left.
El archivo que suba contiene el código y diagrama de flujo además incluya también
.y el autómata gráfico,
// movimiento 0
int movimiento0 = direccion(0);
System.out.println(movimiento0);
// salto que tendrá 0
int salto0=Integer.parseInt(JOptionPane.showInputDialog("Cuantos saltos desea que de la posición
0?"));
// valor que pondra cuando aparezca }0
int poner0 = Integer.parseInt(JOptionPane.showInputDialog("Que valor quieres poner cuando sea
0?"));
// movimiento 1
int tipomov1 = -1;
tipomov1 = JOptionPane.showOptionDialog(null, "Selecciona la opcion para el movimiento
","Selector de opciones" ,JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,null, // null para icono por defecto.
new Object[] { "Avanza y modifica", "Modifica y avanza"}, // null para YES, NO y CANCEL
"opcion 1");
int movimiento1 = direccion(1);
// salto que tendrá 1
int salto1=Integer.parseInt(JOptionPane.showInputDialog("Cuántos saltos de sea que de la posicón
1?"));
// valor que pondra cuando salga 1
int poner1 = Integer.parseInt(JOptionPane.showInputDialog("Que valor quieres poner cuando sea
1?"));
System.out.println("Valores de la cintilla");
for (int i=0; i<cuantos; i++)
{
System.out.print(cinta[i] + " ");
}
Lenguajes Y Autómatas Unidad 4: Maquinas De Turing
String mensajeMov0="";
String mensajeMov1="";
System.out.println("\n");
System.out.println(" " + " movimiento" + " " + "salto" + " " + "colocar");
if (movimiento0==0)
mensajeMov0="DER";
else
mensajeMov0="IZQ";
if (movimiento1==0)
mensajeMov1="DER";
else
mensajeMov1="IZQ";
System.out.print("0 " + mensajeMov0 + " " + salto0 + " " + poner0 + "\n");
System.out.print("1 " + mensajeMov1 + " " + salto1 + " " + poner1 + "\n");
int indice = 0;
// System.out.println(cinta.length);
while (indice < cinta.length && indice >= 0)
{
for (int i=0; i<cinta.length; i++)
{
System.out.print(cinta[i] + " ");
}
switch (cinta[indice])
{
case 0:
{
if (tipomov0 == 0) {
if (movimiento0 == 0 )
indice = indice + salto0;
else
indice = indice - salto0;
else {
cinta[indice]=poner0;
if (movimiento0 == 0)
indice = indice + salto0;
else
indice = indice - salto0;
}
break;
}
case 1:
{
if (tipomov1 == 0 )
{
if (movimiento1 == 0)
indice = indice + salto1;
else
indice = indice - salto1;
}
}
}