jueves, 15 de octubre de 2009

Automata

ESTE PROGRAMA ES DE UN AUTOMATA QUE AL INICIAR SOLO ACEPTA UNA LETRA O UN NUMERO, DESPUES UN SIMBOLO + O *, Y ASI SUCESIVAMENTE, PERO NO SE ACEPTA INICIAR CON + O *, Y TAMPOCO PUEDE TERMINAR EN ELLOS, Y NO SE PUEDEN REPETIR NINGUN CARACTER NI UNA SOLA VEZ CONSECUTIVA.

package tarea_1;
import javax.swing.JOptionPane;
public class tarea_1
{
public static void main(String[] args)
{
int tabla[][] = new int [5][5];
tabla [0][0] = 1; tabla [0][1] = 1; tabla [0][2] = 4; tabla [0][3] = 4; tabla [0][4] = 4;
tabla [1][0] = 4; tabla [1][1] = 4; tabla [1][2] = 2; tabla [1][3] = 2; tabla [1][4] = 1;
tabla [2][0] = 3; tabla [2][1] = 3; tabla [2][2] = 4; tabla [2][3] = 4; tabla [2][4] = 4;
tabla [3][0] = 4; tabla [3][1] = 4; tabla [3][2] = 2; tabla [3][3] = 2; tabla [3][4] = 3;
tabla [4][0] = 4; tabla [4][1] = 4; tabla [4][2] = 4; tabla [4][3] = 4; tabla [4][4] = 4;
String palabra;
palabra = JOptionPane.showInputDialog(null, "Introduzca la palabra:");
int estado = 0, i;
for ( i = 0; palabra.length() > i; i++ )
{
if(palabra.charAt(i) >= 'a' && palabra.charAt(i) <= 'z') { estado = tabla[estado][0]; } else if(palabra.charAt(i) >= '0' && palabra.charAt(i) <= '9')
{
estado = tabla[estado][1];
}
else if(palabra.charAt(i) == '+')
{
estado = tabla[estado][2];
}
else if(palabra.charAt(i) == '*')
{
estado = tabla[estado][3];
}
else
{
estado = 4;
break;
}
}
if(estado == 4)
{
JOptionPane.showMessageDialog(null, "La Palabra '" + palabra + "' no es aceptada.");
}
else
{
JOptionPane.showMessageDialog(null, "La Palabra '" + palabra + "' es aceptada.");
}
}
}

Hola Mundo