Ejemplo n.º 1
0
        public EstAFD2 cerradura(Estado estadoAFN)
        {
            EstAFD2 estadoAFD = new EstAFD2(contadorEstado);

            estadoAFD.getEstadosAFN().Add(estadoAFN);
            if (estadoAFN.isEstAceptacion())
            {
                estadoAFD.setAceptacion(true);
            }
            for (int j = 0; j < estadoAFD.getEstadosAFN().Count(); j++)
            {
                for (int i = 0; i < estadoAFD.getEstadosAFN()[j].getListTrans().Count(); i++)
                {
                    if (estadoAFD.getEstadosAFN()[j].getListTrans()[i].getSimbolo().Equals("ep"))
                    {
                        estadoAFD.getEstadosAFN().Add(estadoAFD.getEstadosAFN()[j].getListTrans()[i].getFinal());
                        if (estadoAFD.getEstadosAFN()[j].getListTrans()[i].getFinal().isEstAceptacion())
                        {
                            estadoAFD.setAceptacion(true);
                        }
                    }
                }
            }
            Console.WriteLine("cerradura de: " + estadoAFN.getNumero());
            Console.WriteLine("\n");
            for (int i = 0; i < estadoAFD.getEstadosAFN().Count(); i++)
            {
                Console.Write(estadoAFD.getEstadosAFN()[i].getNumero() + ", ");
            }
            Console.WriteLine("\n");
            Console.WriteLine("Estado " + estadoAFD.getNombre());
            contadorEstado++;
            return(estadoAFD);
        }
Ejemplo n.º 2
0
        public EstAFD2 cerradura(List <Estado> estadosAFN)
        {
            int     contador  = 0;
            EstAFD2 estadoAFD = new EstAFD2(contadorEstado);

            for (int k = 0; k < estadosAFN.Count(); k++)
            {
                estadoAFD.getEstadosAFN().Add(estadosAFN[k]);
                if (estadosAFN[k].isEstAceptacion())
                {
                    estadoAFD.setAceptacion(true);
                }
                for (int j = contador; j < estadoAFD.getEstadosAFN().Count(); j = contador)
                {
                    for (int i = 0; i < estadoAFD.getEstadosAFN()[j].getListTrans().Count(); i++)
                    {
                        if (estadoAFD.getEstadosAFN()[j].getListTrans()[i].getSimbolo().Equals("ep"))
                        {
                            estadoAFD.getEstadosAFN().Add(estadoAFD.getEstadosAFN()[j].getListTrans()[i].getFinal());
                            if (estadoAFD.getEstadosAFN()[j].getListTrans()[i].getFinal().isEstAceptacion())
                            {
                                estadoAFD.setAceptacion(true);
                            }
                        }
                    }

                    contador++;
                }
            }

            Console.WriteLine("cerradura de: ");
            for (int i = 0; i < estadosAFN.Count(); i++)
            {
                Console.Write(estadosAFN[i].getNumero() + ", ");
            }

            Console.WriteLine("\n");
            for (int i = 0; i < estadoAFD.getEstadosAFN().Count(); i++)
            {
                Console.Write(estadoAFD.getEstadosAFN()[i].getNumero() + ", ");
            }
            Console.WriteLine("\n");
            estadoAFD = compararEstadosAFD(estadoAFD);

            transiciones[transiciones.Count() - 1].setFinal(estadoAFD);
            Console.WriteLine("Estado " + estadoAFD.getNombre());
            contadorEstado++;
            return(estadoAFD);
        }