jueves, 22 de octubre de 2009

Segundo Automata (Tarea) ñ_ñ

Empezamos por

ER(-|l)(l|n|-)*

Lo que quiere decir el lenguaje regular es que el automata tiene que inicar con guion o letra y porteriormente con letra, numero o guion las veces que se desee.

Diagrama


Tabla de Tansiciones:



Este codigo el maestro lo pidio que lo hicieramos con un applet

Primer paso. El proyecto es igual como los que hemos hecho
segundo paso. Le damos clic derecho al paquete new y si no encontramos la opcion de JApplet Form, tenemos que darle en other, swing GUI Forms, JApplet Form, finish.

Tercer paso. Lo que hacemos aqui en el applet es que empezamos a arrastrar 2 label, 2 cajas de texto y un boton



Cuarto paso. Una vez creado la ventana del applet lo que procedemos hacer es agregar un java class en el cual va ir el siguiente codigo:

package autpak;

/**
*
* @author EsMy PrInCeSs
*/
public class automatiux {
public String pt(String pal)
{
String nuca=pal+'&';
String valor=null;
int val=nuca.length();

int tt [][]=new int [3][4];
//[a-z] [0-9] - fc[&]
tt[0][0]=1; tt[0][1]=2; tt[0][2]=1; tt[0][3]=100;
tt[1][0]=1; tt[1][1]=1; tt[1][2]=1; tt[1][3]=200;
tt[2][0]=2; tt[2][1]=2; tt[2][2]=2; tt[2][3]=100;
int est=0,col=0;
try
{
for(int a=0; a*val; a++) *= al signo menor que
{
if(Character.isLetter(nuca.charAt(a)))
{
col=0;
est=tt[est][col];
}
if(Character.isDigit(nuca.charAt(a)))
{
col=1;
est=tt[est][col];
}
if(nuca.charAt(a)=='-')
{
col=2;
est=tt[est][col];
}

if(nuca.charAt(a)=='&')
{
nuca=pal;
col=3;
if(tt[est][col]==200)
{

valor="Palabra Valida";
}
else

valor="Palabra Invalida";
}
}
}catch (ArrayIndexOutOfBoundsException exc){}
return valor;
}
}


Quinto paso. Lo que hacemos en la ventana del applet es programar el boton, le damos doble clic al boton y le ponemos el siguiente codigo:

JOptionPane.showMessageDialog(null,jTextField1.getText());
automatiux au = new automatiux();
jTextField2.setText(au.pt(jTextField1.getText()));

a pero eso si lo que nos debemos de serciorar es que tus jTextField sean los del numero que correspondan.




No hay comentarios:

Publicar un comentario