Você está na página 1de 4

package automato;

import java.util.Scanner;

public class Automato {


int cont;
boolean aceitado;
static char [] car;

public static void main(String[] args) {


Scanner scan = new Scanner(System.in);
Automato aut = new Automato();
System.out.println("L={A quantidade de b's igual a 3}");
System.out.println("Digite a Cadeia para ser testatada sobre o
Alfabeto{a,b}: ");
String cadeia = scan.next();
car = cadeia.toCharArray();
aut.inicio();
if (aut.aceitado)

System.out.println("Estado Atual Final. Palavra Aceita.");


else
System.out.println("Estado Atual no Final ou Inexistente. Palavra
Rejeitada");
}

private void inicio() {


cont=0;
aceitado=false;
q0();
}
private void q0() {
if(cont<car.length) {
if(car[cont]=='a'){

System.out.print(car[cont]);
System.out.println(" : Em q0");
cont++;
q0();

}else if(car[cont]=='b'){
System.out.print(car[cont]);
System.out.println(" : Em q1");
cont++;
q1();
}
}
}
private void q1() {
if(cont<car.length) {
if(car[cont]=='a'){
System.out.print(car[cont]);
System.out.println(" : Em q1");
cont++;
q1();
}else if(car[cont]=='b'){
System.out.print(car[cont]);
System.out.println(" : Em q2");
cont++;
q2();
}
}

}
private void q2() {
if(cont<car.length) {
if(car[cont]=='a'){

System.out.print(car[cont]);
System.out.println(" : Em q2");
cont++;
q2();
}else if(car[cont]=='b'){
System.out.print(car[cont]);
System.out.println(" : Em q3");
cont++;
q3();
}
}

}
private void q3() {
aceitado=true;
if(cont<car.length) {
if(car[cont]=='a'){
System.out.print(car[cont]);
System.out.println(" : Em q3");
cont++;
q3();
}else if(car[cont]=='b'){
System.out.print(car[cont]);
System.out.println(" : Movimento Inexistente");
cont++;
qErro();
}
}

}
private void qErro() {
aceitado=false;

Você também pode gostar