コード例 #1
0
        public Converter(AFND afnd)
        {
            //Coloco el AFND en su sitio


            // 1 - Asigno el estado inicial del AFND al AFD
            this._AFND = new AFND(afnd._alfabeto, afnd._estados, afnd._estadoInicial, afnd._estadosFinales, afnd._transiciones);

            // 2 - Asigno la cerradura epsilon del estado inicial al conjunto de estados
            this._AFD = new AFD(this._AFND._alfabeto, this._AFND._estadoInicial);


            // 4 - Las transiciones que coinciden en la busqueda de 3 las agrego a la lista de conjuntos
            // 5 - Aplico la cerradura epsilon al ultimo elemto de la lista de conjuntos
            // 6 - Verifico si el ultimo conjunto es igual a alguno de los anteriores
            // 6.1 - Si NO existe agrego el ultimo conjunto creado a la lista de conjuntos
            // 6.2 - Si existe solo agrego el indice del conjunto ya existente a la lista de conjuntos
            // 7 - Luego de iterar los elemntos del alfabeto, creo las transiciones tomando como nombre del estado el indice del conjunto en la lista
            // 8 - Repito de de 3 a 7 hasta no hallar conjuntos nuevos
            // 9 - Busco los estados finales dentro de la lista de conjuntos
            // 10 - Agrego los estados finales al AFD
        }
コード例 #2
0
 public Form2(AFD final)
 {
     InitializeComponent();
     automata = final;
 }