/// Hace lo contrario del anterior primero recibe un AFN , sirve para el ater public void alter_afCadena(AFN a, string b) { AFN bb = new Proyecto_1.AFN(); bb.primerAfn(b); //convierto al string b a un afn alter_afaf(bb, a); }
//// De entradas recibe uns string y un AFN , sirve para el alter public void alter_afCadena(string a, AFN b) { AFN aa = new Proyecto_1.AFN(); aa.primerAfn(a); //convierto al string a a un afn concatenar_afaf(aa, b); }
// public void positiva_Cadena(string a) // { // AFN klee = new Proyecto_1.AFN(); // klee.kleene_Cadena(a); //aca hago un afn con aux* que es la cerradura de kleen // concatenar_afCadena(a,klee); //} ///////////////////////////////////////////////////////////////////cerradura ? //funciona pero en el proyecto nos piden que convirtamos el ? de la siguiente manera |a£ una alter con el afn y £ //public void ceroUno_af(AFN a) //{ // Class_nodos i = new Class_nodos(); i.aumentarcount(); i.setTipoNodo("ceroUno");// le da numeracion al nodo // Class_nodos f = new Class_nodos(); f.aumentarcount(); f.setTipoNodo("ceroUno"); // le da numeracion al nodo // i.addTransicion(new Class_transiciones("£", a.getInicio().getContadorNodo().ToString()));//punteros de i // i.setNext1(a.getInicio()); a.getFinal().setNext1(f); a.getFinal().addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString()));//punteros de a.final // i.addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString())); // hago una trans del inicial al final //this.inicio = i; this.final = f; //} //public void ceroUno_C(string aa) //{ // AFN a = new Proyecto_1.AFN(); //a.primerAfn(aa); // Class_nodos i = new Class_nodos(); i.aumentarcount(); i.setTipoNodo("ceroUno");// le da numeracion al nodo // Class_nodos f = new Class_nodos(); f.aumentarcount(); f.setTipoNodo("ceroUno"); // le da numeracion al nodo // i.addTransicion(new Class_transiciones("£", a.getInicio().getContadorNodo().ToString()));//punteros de i // i.setNext1(a.getInicio()); a.getFinal().setNext1(f); a.getFinal().addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString()));//punteros de a.final // i.addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString())); // hago una trans del inicial al final // this.inicio = i; this.final = f; // } public void ceroUno_af(AFN a) { Class_nodos i = new Class_nodos(); i.aumentarcount(); i.setTipoNodo("ceroUno"); // le da numeracion al nodo Class_nodos f = new Class_nodos(); f.aumentarcount(); f.setTipoNodo("ceroUno"); // le da numeracion al nodo i.addTransicion(new Class_transiciones("£", a.getInicio().getContadorNodo().ToString())); //punteros de i i.addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString())); //punteros de i hacia el final porque es ? i.setNext1(a.getInicio()); a.getFinal().setNext1(f); a.getFinal().addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString())); //punteros de a.final this.inicio = i; this.final = f; }
////////////////////////////// cerradura positiva //funciona bien solo que en el proyecto nos piden transformar la positiva como un .a*a que es lo mismo public void positiva_af(AFN a) { Class_nodos i = new Class_nodos(); i.aumentarcount(); i.setTipoNodo("unoVarios"); // le da numeracion al nodo Class_nodos f = new Class_nodos(); f.aumentarcount(); f.setTipoNodo("unoVarios"); // le da numeracion al nodo i.addTransicion(new Class_transiciones("£", a.getInicio().getContadorNodo().ToString())); //punteros de i i.setNext1(a.getInicio()); a.getFinal().setNext1(f); a.getFinal().addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString())); //punteros de a.final a.getFinal().addTransicion(new Class_transiciones("£", a.getInicio().getContadorNodo().ToString())); // hago una trans del a.final al a.inicio this.inicio = i; this.final = f; }
public void alter_afaf(AFN a, AFN b) { Class_nodos i = new Class_nodos(); i.aumentarcount(); i.setTipoNodo("alter"); // le da numeracion al nodo Class_nodos f = new Class_nodos(); f.aumentarcount(); f.setTipoNodo("alter"); // le da numeracion al nodo i.addTransicion(new Class_transiciones("£", a.getInicio().getContadorNodo().ToString())); //punteros de i i.addTransicion(new Class_transiciones("£", b.getInicio().getContadorNodo().ToString())); //punteros de i i.setNext1(a.getInicio()); a.getFinal().setNext1(f); a.getFinal().addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString())); //punteros de a.final i.setNext2(b.getInicio()); b.getFinal().addTransicion(new Class_transiciones("£", f.getContadorNodo().ToString())); //punteros de a.final //b.getFinal().setNext1(f); //tal vez de error al recorrer this.inicio = i; this.final = f; }
//Funcion para la concatenacion public void concatenar_afaf(AFN a, AFN b) { a.getFinal().setNext1(b.getInicio().getNext1()); /// agarro el f de a y le pongo el next del inicio de b if (b.getInicio().getNext2() != null) //si no esta vacio agrego un next2 al f de a, { a.getFinal().setNext2(b.getInicio().getNext2()); } a.getFinal().setListTransiciones(b.getInicio().getListTransiciones()); // le paso las transiciones al f de a, tambien this.inicio = a.getInicio(); this.final = b.getFinal(); }
public void concatenar_afCadena(AFN a, string b) { AFN bb = new Proyecto_1.AFN(); bb.primerAfn(b); a.getFinal().setNext1(bb.getInicio().getNext1()); /// agarro el f de a y le pongo el next del inicio de b if (bb.getInicio().getNext2() != null) //si no esta vacio agrego un next2 al f de a, { a.getFinal().setNext2(bb.getInicio().getNext2()); } a.getFinal().setListTransiciones(bb.getInicio().getListTransiciones()); // le paso las transiciones al f de a, tambien this.inicio = a.getInicio(); this.final = bb.getFinal(); }
public void setAFN(AFN b) { this.automata = b; }