class Automat {
  private s0= 0;    //Nummer des Startzustandes, entsprechend ändern
  private int s=s0; //aktueller Zustand. Zustände sind nur nummeriert.
  // (e0, e1, .., en)  sind die Eingabezeichen, (a0, a1, .., an) sind die Ausgabezeichen, (s0, s1, .., sn) sind die Zustände.
  //<e0> usw. steht für den aktuellen Wert des Eingabezeichens e. Also <ex> durch Zeichen ersetzen.
  //<a0> usw. steht für den aktuellen Wert des Ausgabezeichens a. Also <ax> durch Zeichen ersetzen.
  //<s0> usw. steht für den aktuellen Wert des Zustands s. Also <sx> durch Zahlen ersetzen.
  //<Folgezustand0> usw. steht für den Wert des Folgezustands e. Also <Folgezustand#> durch Zahlen ersetzen.

  public int u(char e){
    switch (s) {
      case  <s0>:switch (e) {
                   case <e0> : {<s=Folgezustand0>; return s;}
                   case <e1> : {<s=Folgezustand1>; return s;}
                   case <e2> : {<s=Folgezustand2>; return s;}
                   default: return s0;
                 }
      case  <s1>:switch (e) {
                   case <e0> : {<s=Folgezustand0>; return s;}
                   case <e1> : {<s=Folgezustand1>; return s;}
                   case <e2> : {<s=Folgezustand2>; return s;}
                   default: return s0;
                 }
      default:return s0;
    }
  }

  public char g(char e){
    switch (s) {
      case  <s0>:switch (e) {
                   case <e0> : return <a0>;
                   case <e1> : return <a1>;
                   case <e2> : return <a2>;
                   default: return <a0>;
                 }
      case  <s1>:switch (e) {
                   case <e0> : return <a0>;
                   case <e1> : return <a1>;
                   case <e2> : return <a2>;
                   default: return <a0>;
                 }
      default:return <a0>;
    }
}
