Zum Inhalt
BuK-Kreativaufgabe06 G1
Aus ProgrammingWiki
<
BuK
<
IIm10
Archivierte Version vom 2011-05-30T18:46:27+00:00.
Aktuelle Version
static String text=""; static String zustand; static String zielzustand; static String read; static String richtung; static String write; static String mitteltext; static String finalstate1="false"; static String finalstate2="false"; static String finalstate3="false"; static String finalstate4="false"; static String finalstateend; static String eingang3_ziel=""; static String text5=""; static Boolean gram; public void compile() { // TODO Auto-generated method stub mitteltext=""; //FileReader fr = new FileReader("C:/Users/Snookerms/Desktop/Ablage/input.txt"); // BufferedReader br = new BufferedReader(fr); String zeile1 ="000101101101101100110101010100110110110110110011101101011010010011000"; System.out.println(zeile1); //br.close(); if(zeile1.startsWith("000")&zeile1.endsWith("000")){ String bestandteile = zeile1.substring(4, zeile1.length()-3); String [] delta = bestandteile.split("00"); for(int y=0; y<delta.length;y++){ // System.out.println("delta"+delta[y]); if(delta[y].replaceAll("1", "").length()==4|delta[y].replaceAll("1", "").length()==0){ gram=true; } } } String eingang = zeile1.substring(3, zeile1.length()-3); System.out.println(eingang); String []eingang2 = eingang.split("00"); for(int i=0; i<eingang2.length;i++){ System.out.println(eingang2[i]); } int z = eingang2.length; for (int t=0; t<eingang2.length;t++){ Pattern p = Pattern.compile("[0]"); Matcher m = p.matcher(eingang2[t]); boolean b = m.matches(); if(b == true){ } else{ if(eingang2[t].equals("1")){ finalstate1="true"; } if(eingang2[t].equals("11")){ finalstate2="true"; } if(eingang2[t].equals("111")){ finalstate3="true"; } if(eingang2[t].equals("1111")){ finalstate4="true"; } } } String text0 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><AUTOMATON><TYPE value=\"TM\"/><ALPHABET><ITEM value=\"0\"/><ITEM value=\"1\"/></ALPHABET><TAPEALPHABET><ITEM value=\"$\"/><ITEM value=\"0\"/><ITEM value=\"1\"/></TAPEALPHABET>"; for(int u=0; u<z-2;u++){ String [] eingang3 = eingang2[u].split("0"); if(eingang3[0].equals("1")){ zustand = "q_0"; if(eingang3_ziel.equals(zustand)){ text=""; // text5=""; } else{ if(finalstate1.equals("true")){ finalstate1="true"; } eingang3_ziel="q_0"; text = "<STATE name=\""+ zustand + "\" finalstate=\""+ finalstate1 +"\">"; // text5 = "</STATE>"; } } if(eingang3[0].equals("11")){ zustand = "q_1"; if(eingang3_ziel.equals(zustand)){ text=""; // text5=""; } else{ if(finalstate2.equals("true")){ finalstate2="true"; } eingang3_ziel="q_1"; text = "</STATE><STATE name=\""+ zustand + "\" finalstate=\""+ finalstate2 +"\">"; // text5 = "</STATE>"; } } if(eingang3[0].equals("111")){ zustand = "q_2"; if(eingang3_ziel.equals(zustand)){ text=""; // text5=""; } else{ if(finalstate3.equals("true")){ finalstate3="true"; } eingang3_ziel="q_2"; text = "</STATE><STATE name=\""+ zustand + "\" finalstate=\""+ finalstate3 +"\">"; // text5 = "</STATE>"; } } if(eingang3[0].equals("1111")){ zustand = "q_3"; if(eingang3_ziel.equals(zustand)){ text=""; // text5=""; } else{ if(finalstate4.equals("true")){ finalstate4="true"; } eingang3_ziel="q_3"; text = "</STATE><STATE name=\""+ zustand + "\" finalstate=\""+ finalstate4 +"\">"; // text5 = "</STATE>"; } } if(eingang3[1].equals("1")){ read = "0"; } if(eingang3[1].equals("11")){ read = "1"; } if(eingang3[3].equals("11")){ write = "1"; } if(eingang3[3].equals("1")){ write = "0"; } if(eingang3[4].equals("1")){ richtung = "LEFT"; } if(eingang3[4].equals("11")){ richtung = "RIGHT"; } String text3 = "<LABEL read=\""+ read +"\" direction=\""+ richtung +"\" write=\""+ write +"\"/></TRANSITION>"; if(eingang3[2].equals("1")){ zielzustand = "q_0"; } if(eingang3[2].equals("11")){ zielzustand = "q_1"; } if(eingang3[2].equals("111")){ zielzustand = "q_2"; } if(eingang3[2].equals("1111")){ zielzustand = "q_3"; } String text2 = "<TRANSITION target=\""+ zielzustand +"\">"; mitteltext=mitteltext+text+text2+text3+text5; } String text4 = "</STATE><INITIALSTATE value=\"q_0\"/><TAPEINITIALCHAR value=\"$\"/></AUTOMATON>"; String endtext = text0+mitteltext+text4; if(gram=true){ System.out.println("Eingabe entspricht der Grammatik!"); // String dateiName = "C:/Users/Snookerms/Desktop/Ablage/ergebnis.xml"; // FileOutputStream schreibeStrom = // new FileOutputStream(dateiName); for (int i=0; i < endtext.length(); i++){ //schreibeStrom.write((byte)endtext.charAt(i)); System.out.println((byte)endtext.charAt(i)); } // schreibeStrom.close(); } else{ System.out.println("Eingabe entspricht nicht der Grammatik!"); } }
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten