maquinas de turing
Publicado por migue (1 intervención) el 04/12/2008 00:17:20
tengo el siguiente codigo me esta marcando error a la hora de que quiero cambiar un valor del string cad.charAt(i)='('; como le hago para que me cambie el valor n de un string
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class MaquinadeParentesis extends Applet implements ActionListener {
Label menCajaEn;
TextField cajaEnt,cajaSal;
public void init() {
menCajaEn=new Label("Introduzca cadena");
add(menCajaEn);
cajaEnt=new TextField(15);
add(cajaEnt);
cajaEnt.addActionListener(this);
cajaSal=new TextField(20);
add(cajaSal);
cajaSal.addActionListener(this);
cajaSal.setEnabled(false);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==cajaEnt){
String cadena;
cadena=cajaEnt.getText();
analiza(cadena);
}
}
void analiza(String cad) {
boolean termina=false,exito;
int i=0,estado=0;
cad=aumenta(cad);
while(cad.charAt(i)!='E')i++;
while(!termina) {
switch(estado) {
case 0:
if(cad.charAt(i) == '(')
{estado=0;
cad.charAt(i)='(';
i++;
}
else if(cad.charAt(i) == ')')
{
estado=1;
cad.charAt(i) = 'x';
i--;
}
else if(cad.charAt(i) == 'x')
{
estado=0;
cad.charAt(i) = 'x';
i++;
}
else {
estado=2;
cad.charAt(i) = 'E';
i--;
}
break;
case 1: if(cad.charAt(i) == '(')
{
estado=0;
cad.charAt(i) = 'x';
i++;
}
else if(cad.charAt(i) == 'x')
{
estado=1;
cad.charAt(i) = 'x';
i--;
}
else {
termina=true;
exito=false;
}
case 2: if(cad.charAt(i) == 'x')
{
estado=2;
cad.charAt(i) = 'x';
i--;
}
else if(cad.charAt(i) == 'E')
{
termina=true;
exito=true;
}
else{
termina=true;
exito=false;
}
break;
}
}
if(exito)
{
cajaSal.setText("Parentesis correctos");
}
else
{
cajaSal.setText("Parentesis Incorrectos");
}
}
String aumenta(String c) {
for(int i=0;i<5;i++)
c="E"+c+"E";
return c;
}
}
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class MaquinadeParentesis extends Applet implements ActionListener {
Label menCajaEn;
TextField cajaEnt,cajaSal;
public void init() {
menCajaEn=new Label("Introduzca cadena");
add(menCajaEn);
cajaEnt=new TextField(15);
add(cajaEnt);
cajaEnt.addActionListener(this);
cajaSal=new TextField(20);
add(cajaSal);
cajaSal.addActionListener(this);
cajaSal.setEnabled(false);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==cajaEnt){
String cadena;
cadena=cajaEnt.getText();
analiza(cadena);
}
}
void analiza(String cad) {
boolean termina=false,exito;
int i=0,estado=0;
cad=aumenta(cad);
while(cad.charAt(i)!='E')i++;
while(!termina) {
switch(estado) {
case 0:
if(cad.charAt(i) == '(')
{estado=0;
cad.charAt(i)='(';
i++;
}
else if(cad.charAt(i) == ')')
{
estado=1;
cad.charAt(i) = 'x';
i--;
}
else if(cad.charAt(i) == 'x')
{
estado=0;
cad.charAt(i) = 'x';
i++;
}
else {
estado=2;
cad.charAt(i) = 'E';
i--;
}
break;
case 1: if(cad.charAt(i) == '(')
{
estado=0;
cad.charAt(i) = 'x';
i++;
}
else if(cad.charAt(i) == 'x')
{
estado=1;
cad.charAt(i) = 'x';
i--;
}
else {
termina=true;
exito=false;
}
case 2: if(cad.charAt(i) == 'x')
{
estado=2;
cad.charAt(i) = 'x';
i--;
}
else if(cad.charAt(i) == 'E')
{
termina=true;
exito=true;
}
else{
termina=true;
exito=false;
}
break;
}
}
if(exito)
{
cajaSal.setText("Parentesis correctos");
}
else
{
cajaSal.setText("Parentesis Incorrectos");
}
}
String aumenta(String c) {
for(int i=0;i<5;i++)
c="E"+c+"E";
return c;
}
}
Valora esta pregunta


0