示例#1
0
        /// 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);
        }
示例#2
0
        //// 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);
        }
示例#3
0
        //   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;
        }
示例#4
0
        ////////////////////////////// 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;
        }
示例#5
0
        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;
        }
示例#6
0
        //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();
        }
示例#7
0
        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();
        }
示例#8
0
 public void setAFN(AFN b)
 {
     this.automata = b;
 }