domingo, 18 de octubre de 2009

Examen Practico Automata

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* Floyd.java
*
* Created on Oct 18, 2009, 6:05:07 PM
*/

package JApplet;

import javax.swing.JOptionPane;

/**
*
* @author lklk
*/
public class Floyd extends javax.swing.JApplet {

/** Initializes the applet Floyd */
public void init() {
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}

/** This method is called from within the init() method to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jTextField2 = new javax.swing.JTextField();

jLabel1.setText("Introdusca su Palabra aqui:");

jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});

jButton1.setActionCommand("jButton1");
jButton1.setLabel("Validar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(95, 95, 95)
.addComponent(jButton1))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 278, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(29, 29, 29)
.addComponent(jLabel2)
.addContainerGap(59, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(91, 91, 91)
.addComponent(jLabel2))
.addGroup(layout.createSequentialGroup()
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(43, 43, 43)
.addComponent(jButton1)
.addGap(42, 42, 42)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(43, Short.MAX_VALUE))
);
}//


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String cadena = jTextField1.getText();
int tam=cadena.length();
int matriz [][]=new int [3][4];
// a b not a and not b
matriz[0][0]=0; matriz[0][1]=0; matriz[0][2]=1;
matriz[1][0]=1; matriz[1][1]=1; matriz[1][2]=1;

int ren=0,col=0;
for(int i=0; i {
if(cadena.charAt(i)=='a')
{
col=0;
ren=matriz[ren][col];
}
else
{
if(cadena.charAt(i)=='b')
{
col=1;
ren=matriz[ren][col];
}
else
{
col=2;
ren=matriz[ren][col];
}
}
}
if((ren==0) && (tam%2!=0))
{
jTextField2.setText("Palabra Valida");
}
else
{
jTextField2.setText("Palabra Invalida");
}

}

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}


// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration

}

miércoles, 14 de octubre de 2009

Automata Numero 2

package automata2;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
* @author lklk
*/
public class Main {

public static void main(String[] args) {

String cadena;
try
{

BufferedReader n=new BufferedReader(new FileReader("Cadenas.txt"));
try {
while ((cadena = n.readLine()) != null) {
//cadena=n.readLine();
comprueba(cadena);
}
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}

}
catch(FileNotFoundException e)
{
System.out.println("No se encuentra el archivo");
}
}

public static void comprueba(String cadena)
{
String nuevacadena=cadena;
int tam=nuevacadena.length();
int matriz [][]=new int [8][6];
// l N - FC
matriz[0][0]=2; matriz[0][1]=4; matriz[0][2]=2; matriz[0][3]='E';
matriz[1][0]=3; matriz[1][1]=3; matriz[1][2]=3; matriz[1][3]='A';
matriz[2][0]=3; matriz[2][1]=3; matriz[2][2]=3; matriz[2][3]='E';
matriz[3][0]=4; matriz[3][1]=4; matriz[3][2]=4; matriz[3][3]='E';

int r=0,k=0,p;

for(int i=0;i<1;i++)
{
if(nuevacadena.charAt(i)=='f')
{
p=i;
p=p+1;
if(nuevacadena.charAt(p)=='o')
{
p=p+1;
if(nuevacadena.charAt(p)=='r')
{
r=4;
}
}
}//else{k=k+1;}

if(nuevacadena.charAt(i)=='d')
{
p=i;
p=p+1;
if(nuevacadena.charAt(p)=='o')
{
r=4;
}
}//else{k=k+1;}
if(nuevacadena.charAt(i)=='w')
{
p=i;
p=p+1;
if(nuevacadena.charAt(p)=='h')
{
p=p+1;
if(nuevacadena.charAt(p)=='i')
{
p=p+1;
if(nuevacadena.charAt(p)=='l')
{
p=p+1;
if(nuevacadena.charAt(p)=='e')
{
r=4;
}
}
}
}
}//else{k=k+1;}
if(nuevacadena.charAt(i)=='b')
{
p=i;
p=p+1;
if(nuevacadena.charAt(p)=='r')
{
p=p+1;
if(nuevacadena.charAt(p)=='e')
{
p=p+1;
if(nuevacadena.charAt(p)=='a')
{
p=p+1;
if(nuevacadena.charAt(p)=='k')
{
r=4;
}
}
}
}
}//else{k=k+1;}
}

int ren=1, col=0;
k=0;
try
{
JOptionPane.showMessageDialog(null,r);
if(r!=4)
{
for(int i=0; i {
k=0;
JOptionPane.showMessageDialog(null,nuevacadena.charAt(i));
ren=ren-1;

if(Character.isLetter(nuevacadena.charAt(i)))
{
col=0;
ren=matriz[ren][col];
JOptionPane.showMessageDialog(null,ren);

}
else{k=k+1;}

if(Character.isDigit(nuevacadena.charAt(i)))
{
col=1;
ren=matriz[ren][col];
JOptionPane.showMessageDialog(null,ren);

}
else{k=k+1;}

if(nuevacadena.charAt(i)=='-')
{
col=2;
ren=matriz[ren][col];
JOptionPane.showMessageDialog(null,ren);

} else{k=k+1;}

if(k==3)
{r=1;}

}
}else{ren=3;};
if(r==1)
{ren=4; }
if (ren==4)
{JOptionPane.showMessageDialog(null,"Cadena Invalida");}
else
{JOptionPane.showMessageDialog(null,"Cadena Valida");}
} catch (ArrayIndexOutOfBoundsException exc){
}
}
}

domingo, 11 de octubre de 2009

Automata

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package automata1;
import java.io.*;
import javax.swing.JOptionPane;

/**
*
* @author lklk
*/
public class Main {

public static void main(String args[]) throws IOException
{
String cadena;
try
{

BufferedReader n=new BufferedReader(new FileReader("Cadenas.txt"));
while((cadena=n.readLine())!=null){
//cadena=n.readLine();
comprueba(cadena);
}

}
catch(FileNotFoundException e)
{
System.out.println("No se encuentra el archivo");
}
}

public static void comprueba(String cadena)
{
String nuevacadena=cadena;
int tam=nuevacadena.length();
int matriz [][]=new int [8][6];
// [a-z] [0-9] + * FC
matriz[0][0]=2; matriz[0][1]=2; matriz[0][2]=4; matriz[0][3]=4; matriz[0][4]='E';
matriz[1][0]=5; matriz[1][1]=6; matriz[1][2]=3; matriz[1][3]=3; matriz[1][4]='A';
matriz[2][0]=2; matriz[2][1]=2; matriz[2][2]=7; matriz[2][3]=7; matriz[2][4]='E';
matriz[3][0]=4; matriz[3][1]=4; matriz[3][2]=4; matriz[3][3]=4; matriz[3][4]='E';
matriz[4][0]=5; matriz[4][1]=5; matriz[4][2]=5; matriz[4][3]=5; matriz[4][4]='E';
matriz[5][0]=6; matriz[5][1]=6; matriz[5][2]=6; matriz[5][3]=6; matriz[5][4]='E';
matriz[6][0]=7; matriz[6][1]=7; matriz[6][2]=7; matriz[7][3]=7; matriz[6][4]='E';

int ren=1, col=0;
try
{
for(int i=0; i {
JOptionPane.showMessageDialog(null,nuevacadena.charAt(i));
ren=ren-1;
if(Character.isLetter(nuevacadena.charAt(i)))
{
col=0;
ren=matriz[ren][col];
JOptionPane.showMessageDialog(null,ren);

}

if(Character.isDigit(nuevacadena.charAt(i)))
{
col=1;
ren=matriz[ren][col];
JOptionPane.showMessageDialog(null,ren);

}

if(nuevacadena.charAt(i)=='+')
{
col=2;
ren=matriz[ren][col];
JOptionPane.showMessageDialog(null,ren);
}

if(nuevacadena.charAt(i)=='*')
{
col=3;
ren=matriz[ren][col];
JOptionPane.showMessageDialog(null,ren);
}

}
if (ren==2)
{JOptionPane.showMessageDialog(null,"Cadena Valida");}
else
{JOptionPane.showMessageDialog(null,"Cadena Invalida");}
} catch (ArrayIndexOutOfBoundsException exc){
}
}
}