jueves, 22 de octubre de 2009

Primer Automata ñ_ñ

Holaaaa este es un trabajo que nos dejaron para la materia de Teoria de Computacion y aqui esta el codigo del primer automata.



Primero que nada abrimos el NetBeans en este caso en lo personal yo utilize el NetBeans IDE 6.5.1 .



Creamos un nuevo proyecto con el nombre que ustedes gusten y le deshabilitan las opciones de create main class y la de set as main project, le asignamos el nombre que nosotros querramos y le damos finish.



posteriormente lo que hacemos es en el pauqte que tenemos del proyecto le damos new y en la opcion de java package.



despies de hacer el paquete le damos clic derecho, new java class.



y este es el codigo:


package automat;
mport java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
*
* @author Gus
*/
public class lenguaje_1 {
public static void main(String args[]) throws IOException
{
String cad;


try
{

BufferedReader entrada=new BufferedReader(new FileReader("lenguaje.txt"));
while((cad=entrada.readLine())!=null){
read(cad);
}

}
catch(FileNotFoundException e)
{
System.out.println("No se encuentra el archivo");
}
}
public static void read(String pa)
{
String nuca=pa+'&';
int lar=nuca.length();

int tt [][]=new int [7][5];
//[a-z] [0-9] + * FC(&)
tt[0][0]=1; tt[0][1]=1; tt[0][2]=3; tt[0][3]=3; tt[0][4]=90;
tt[1][0]=4; tt[1][1]=5; tt[1][2]=2; tt[1][3]=2; tt[1][4]=100;
tt[2][0]=1; tt[2][1]=1; tt[2][2]=6; tt[2][3]=6; tt[2][4]=90;
tt[3][0]=3; tt[3][1]=3; tt[3][2]=3; tt[3][3]=3; tt[3][4]=90;
tt[4][0]=4; tt[4][1]=4; tt[4][2]=4; tt[4][3]=4; tt[4][4]=90;
tt[5][0]=5; tt[5][1]=5; tt[5][2]=5; tt[5][3]=5; tt[5][4]=90;
tt[6][0]=6; tt[6][1]=6; tt[6][2]=6; tt[6][3]=6; tt[6][4]=90;

int est=0,col=0;
try
{
for(int a=0;a*lar;a++)el *significa 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)=='*')
{
col=3;
est=tt[est][col];
}
if(nuca.charAt(a)=='&')
{
nuca=pa;
col=4;
if(tt[est][col]==100)
{
System.out.print(nuca+" Palabra Valida");
}
else
System.out.print(nuca +" Palabra Invalida");
}
}
}catch (ArrayIndexOutOfBoundsException exc){}
}

}

No hay comentarios:

Publicar un comentario