BuK/IIm10/BuK-Kreativaufgabe06 G1

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
<code id="4de3e48b18f77" hidden>

	
	public void compile() {
		
	private String text="";
	private String zustand;
	private String zielzustand;
	private String read;
	private String richtung;
	private String write;
	private String mitteltext;
	private String finalstate1="false";
	private String finalstate2="false";
	private String finalstate3="false";
	private String finalstate4="false";
	private String finalstateend;
	private String eingang3_ziel="";
	private String text5="";
	private Boolean gram;
        mitteltext="";
		
	    String zeile1 ="000101101101101100110101010100110110110110110011101101011010010011000";
	    System.out.println(zeile1);
	   
	    
	    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++){

				   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!");
	    		
                         System.out.println(endtext);
			   }
			   else{
				   System.out.println("Eingabe entspricht nicht der Grammatik!");
			   }
	    	
	 	    
	    
	   
	    
	   
	    
	    
	    
	    
	}



</code>
<run id="4de3e4e348fad"></run>