Esempio n. 1
0
        private void txtExpresion_Validating(object sender, CancelEventArgs e)
        {
            string[] symbols = txtSymbolsIN.Text.Split(';');
            string   Value   = txtExpresion.Text.Replace(";", "").Trim();

            foreach (var item in symbolsIn)
            {
                Value = Value.Replace(item.Symbol, "").Trim();
            }
            if (!string.IsNullOrEmpty(Value))
            {
                MessageBox.Show("Debe digitar una expresión con los simbolos de entrada", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }



            char[]   Valores  = txtExpresion.Text.Replace(";", "").Trim().ToCharArray();
            itemGrid itemGrid = new itemGrid();
            string   TipoVal  = string.Empty;

            for (int y = 0; y < Valores.Length; y++)
            {
                if (y == 0)
                {
                    TipoVal = VerificacionRecursiva(txtStatesBegin.Text.Replace(";", ""), Valores[y].ToString());
                }
                else
                {
                    TipoVal = VerificacionRecursiva(TipoVal, Valores[y].ToString());
                }
            }
            itemGrid = AFD.Where(afd => afd.State == TipoVal).FirstOrDefault();

            if (itemGrid.Result == 1)
            {
                MessageBox.Show("ACEPTA");
            }
            else
            {
                MessageBox.Show("RECHAZA");
            }
        }
Esempio n. 2
0
        private string VerificacionRecursiva(string State, string Value)
        {
            string   val      = string.Empty;
            itemGrid itemGrid = AFD.Where(inicio => inicio.State == State).FirstOrDefault();
            string   TipoVal  = string.Empty;

            TipoVal = symbolsIn.Where(s => s.Symbol == Value.ToString()).FirstOrDefault().Value;
            switch (TipoVal)
            {
            case "Value1":
                val = itemGrid.Value1;
                break;

            case "Value2":
                val = itemGrid.Value2;
                break;

            default:
                break;
            }
            return(val);
        }
Esempio n. 3
0
        private string AsignarValores(string state, int Value)
        {
            itemGrid ret   = new itemGrid();
            string   value = string.Empty;
            string   Valor = string.Empty;

            foreach (string states in state.Split(';').OrderBy(x => x))
            {
                Valor  = string.Empty;
                ret    = transitions.Where(t => t.State == states).FirstOrDefault();
                value += value != string.Empty ? ";" : "";
                switch (Value)
                {
                case 1:
                    Valor = ret.Value1;
                    break;

                case 2:
                    Valor = ret.Value2;
                    break;

                case 3:
                    Valor = ret.Value3;
                    break;

                case 4:
                    Valor = ret.Value4;
                    break;

                case 5:
                    Valor = ret.Value5;
                    break;

                case 6:
                    Valor = ret.Value6;
                    break;

                case 7:
                    Valor = ret.Value7;
                    break;

                case 8:
                    Valor = ret.Value8;
                    break;

                case 9:
                    Valor = ret.Value9;
                    break;

                case 10:
                    Valor = ret.Value10;
                    break;

                case 11:
                    Valor = ret.Value11;
                    break;

                case 12:
                    Valor = ret.Value12;
                    break;

                case 13:
                    Valor = ret.Value13;
                    break;

                case 14:
                    Valor = ret.Value14;
                    break;

                case 15:
                    Valor = ret.Value15;
                    break;

                case 16:
                    Valor = ret.Value16;
                    break;

                case 17:
                    Valor = ret.Value17;
                    break;

                case 18:
                    Valor = ret.Value18;
                    break;

                case 19:
                    Valor = ret.Value19;
                    break;

                case 20:
                    Valor = ret.Value20;
                    break;

                default:
                    Valor = "ERROR";
                    break;
                }
                value += Valor;
            }
            return(value == string.Empty ? "ERROR" : value);
        }
Esempio n. 4
0
        private void btnNuevaTablaTransicion_Click(object sender, EventArgs e)
        {
            itemGrid ret = new itemGrid();

            foreach (itemGrid item in AFD)
            {
                string value = string.Empty;
                if (item.State != string.Empty)
                {
                    if (!item.State.Contains(";"))
                    {
                        ret = transitions.Where(t => t.State == item.State).FirstOrDefault();

                        item.Value1  = ret.Value1 == string.Empty ? "ERROR" : ret.Value1;
                        item.Value2  = ret.Value2 == string.Empty ? "ERROR" : ret.Value2;
                        item.Value3  = ret.Value3 == string.Empty ? "ERROR" : ret.Value3;
                        item.Value4  = ret.Value4 == string.Empty ? "ERROR" : ret.Value4;
                        item.Value5  = ret.Value5 == string.Empty ? "ERROR" : ret.Value5;
                        item.Value6  = ret.Value6 == string.Empty ? "ERROR" : ret.Value6;
                        item.Value7  = ret.Value7 == string.Empty ? "ERROR" : ret.Value7;
                        item.Value8  = ret.Value8 == string.Empty ? "ERROR" : ret.Value8;
                        item.Value9  = ret.Value9 == string.Empty ? "ERROR" : ret.Value9;
                        item.Value10 = ret.Value10 == string.Empty ? "ERROR" : ret.Value10;
                        item.Value11 = ret.Value11 == string.Empty ? "ERROR" : ret.Value11;
                        item.Value12 = ret.Value12 == string.Empty ? "ERROR" : ret.Value12;
                        item.Value13 = ret.Value13 == string.Empty ? "ERROR" : ret.Value13;
                        item.Value14 = ret.Value14 == string.Empty ? "ERROR" : ret.Value14;
                        item.Value15 = ret.Value15 == string.Empty ? "ERROR" : ret.Value15;
                        item.Value16 = ret.Value16 == string.Empty ? "ERROR" : ret.Value16;
                        item.Value17 = ret.Value17 == string.Empty ? "ERROR" : ret.Value17;
                        item.Value18 = ret.Value18 == string.Empty ? "ERROR" : ret.Value18;
                        item.Value19 = ret.Value19 == string.Empty ? "ERROR" : ret.Value19;
                        item.Value20 = ret.Value20 == string.Empty ? "ERROR" : ret.Value20;
                    }
                    else
                    {
                        item.Value1  = AsignarValores(item.State, 1);
                        item.Value2  = AsignarValores(item.State, 2);
                        item.Value3  = AsignarValores(item.State, 3);
                        item.Value4  = AsignarValores(item.State, 4);
                        item.Value5  = AsignarValores(item.State, 5);
                        item.Value6  = AsignarValores(item.State, 6);
                        item.Value7  = AsignarValores(item.State, 7);
                        item.Value8  = AsignarValores(item.State, 8);
                        item.Value9  = AsignarValores(item.State, 9);
                        item.Value10 = AsignarValores(item.State, 10);
                        item.Value11 = AsignarValores(item.State, 11);
                        item.Value12 = AsignarValores(item.State, 12);
                        item.Value13 = AsignarValores(item.State, 13);
                        item.Value14 = AsignarValores(item.State, 14);
                        item.Value15 = AsignarValores(item.State, 15);
                        item.Value16 = AsignarValores(item.State, 16);
                        item.Value17 = AsignarValores(item.State, 17);
                        item.Value18 = AsignarValores(item.State, 18);
                        item.Value19 = AsignarValores(item.State, 19);
                        item.Value20 = AsignarValores(item.State, 20);
                    }
                }
                else
                {
                    item.State  = "ERROR";
                    item.Value1 = "ERROR";
                    item.Value2 = "ERROR";
                }
                if (txtAcceptations.Text.Contains(item.State))
                {
                    item.Result = 1;
                }
            }

            Limpiar();

            dataGridView2.Columns.Clear();
            dataGridView2.AutoGenerateColumns = false;
            DataGridViewCell cell = new DataGridViewTextBoxCell();

            DataGridViewColumn column = new DataGridViewColumn
            {
                HeaderText       = "Estados",
                DataPropertyName = "State",
                Name             = "State",
                Visible          = true,
                ReadOnly         = true,
                CellTemplate     = cell
            };

            dataGridView2.Columns.Add(column);

            int i = 0;

            foreach (var item in symbolsIn)
            {
                i++;
                column = new DataGridViewColumn
                {
                    DataPropertyName = $"Value{i}",
                    Name             = $"Value{i}",
                    HeaderText       = item.Symbol,
                    Visible          = true,
                    ReadOnly         = false,
                    CellTemplate     = cell
                };
                dataGridView2.Columns.Add(column);
            }
            column = new DataGridViewColumn
            {
                HeaderText       = "0: Rechaza / 1: Acepta",
                DataPropertyName = "Result",
                Name             = "Result",
                Visible          = true,
                ReadOnly         = true,
                CellTemplate     = cell
            };
            dataGridView2.Columns.Add(column);

            dataGridView2.DataSource = AFD;
            btnGraficar.Enabled      = true;
        }
Esempio n. 5
0
        private void Llenar(string value)
        {
            itemGrid ret        = new itemGrid();
            itemGrid comparador = AFD.Where(a => a.State == value).FirstOrDefault();

            if (comparador == null)
            {
                ret.State = value;
                if (ret.State != string.Empty)
                {
                    if (ret.State.Contains(txtAcceptations.Text.Trim()))
                    {
                        ret.Result = 1;
                    }
                }
                AFD.Add(ret);
                if (value.Contains(";"))
                {
                    string nval = string.Empty;
                    foreach (var item in value.Split(';'))
                    {
                        ret = transitions.Where(a => a.State == item).FirstOrDefault();
                        if (ret.Value1 != string.Empty)
                        {
                            nval += string.IsNullOrEmpty(nval) ? "" : ";";
                            nval += ret.Value1;
                        }
                    }
                    Llenar(nval);
                    nval = string.Empty;
                    foreach (var item in value.Split(';'))
                    {
                        ret = transitions.Where(a => a.State == item).FirstOrDefault();
                        if (ret.Value2 != string.Empty)
                        {
                            nval += string.IsNullOrEmpty(nval) ? "" : ";";
                            nval += ret.Value2;
                        }
                    }
                    Llenar(nval);
                    nval = string.Empty;
                    foreach (var item in value.Split(';'))
                    {
                        ret = transitions.Where(a => a.State == item).FirstOrDefault();
                        if (ret.Value3 != string.Empty)
                        {
                            nval += string.IsNullOrEmpty(nval) ? "" : ";";
                            nval += ret.Value3;
                        }
                    }
                    Llenar(nval);
                    nval = string.Empty;
                    foreach (var item in value.Split(';'))
                    {
                        ret = transitions.Where(a => a.State == item).FirstOrDefault();
                        if (ret.Value4 != string.Empty)
                        {
                            nval += string.IsNullOrEmpty(nval) ? "" : ";";
                            nval += ret.Value4;
                        }
                    }
                    Llenar(nval);
                }
                else
                {
                    ret = transitions.Where(a => a.State == value).FirstOrDefault();
                    if (ret != null)
                    {
                        Llenar(ret.Value1);
                        Llenar(ret.Value2);
                        Llenar(ret.Value3);
                        Llenar(ret.Value4);
                    }
                }
            }
        }
Esempio n. 6
0
        private void btnPaso01_Click(object sender, EventArgs e)
        {
            // recorrer matriz y crear la nueva con los estados de AFDN
            AFD = new List <itemGrid>();
            int    i     = 0;
            string value = "";

            // Primero en Linea
            // Verificar inicio
            value = txtStatesBegin.Text;
            itemGrid comparador = transitions.Where(a => a.State == value).FirstOrDefault();
            itemGrid addAFD     = new itemGrid
            {
                State = value
            };

            AFD.Add(addAFD);
            Type type = typeof(itemGrid);

            System.Reflection.PropertyInfo[] listaPropiedades = type.GetProperties();
            foreach (System.Reflection.PropertyInfo propiedad in listaPropiedades)
            {
                if (propiedad.Name != "State" && propiedad.Name != "Result")
                {
                    value = propiedad.GetValue(comparador).ToString();
                    if (value != string.Empty)
                    {
                        Llenar(value);
                    }
                }
            }

            //Llenar(comparador.Value1);

            dataGridView2.Columns.Clear();
            dataGridView2.AutoGenerateColumns = false;
            DataGridViewCell cell = new DataGridViewTextBoxCell();

            DataGridViewColumn column = new DataGridViewColumn
            {
                HeaderText       = "Estados",
                DataPropertyName = "State",
                Name             = "State",
                Visible          = true,
                ReadOnly         = true,
                CellTemplate     = cell
            };

            dataGridView2.Columns.Add(column);

            i = 0;
            foreach (var item in symbolsIn)
            {
                i++;
                column = new DataGridViewColumn
                {
                    DataPropertyName = $"Value{i}",
                    Name             = $"Value{i}",
                    HeaderText       = item.Symbol,
                    Visible          = true,
                    ReadOnly         = false,
                    CellTemplate     = cell
                };
                dataGridView2.Columns.Add(column);
            }
            column = new DataGridViewColumn
            {
                HeaderText       = "0: Rechaza / 1: Acepta",
                DataPropertyName = "Result",
                Name             = "Result",
                Visible          = true,
                ReadOnly         = true,
                CellTemplate     = cell
            };
            dataGridView2.Columns.Add(column);

            dataGridView2.DataSource        = AFD;
            btnNuevaTablaTransicion.Enabled = true;
        }
Esempio n. 7
0
        private void btnGenerar_Click(object sender, EventArgs e)
        {
            transitions = new List <itemGrid>();
            int i = 0;

            foreach (string item in states)
            {
                itemGrid ig = new itemGrid
                {
                    State = item
                };
                if (txtAcceptations.Text.Contains(ig.State))
                {
                    ig.Result = 1;
                }

                transitions.Add(ig);
                i++;
            }

            dataGridView1.Columns.Clear();
            dataGridView2.Columns.Clear();
            dataGridView1.AutoGenerateColumns = false;
            DataGridViewCell cell = new DataGridViewTextBoxCell();

            DataGridViewColumn column = new DataGridViewColumn
            {
                HeaderText       = "Estados",
                DataPropertyName = "State",
                Name             = "State",
                Visible          = true,
                ReadOnly         = true,
                CellTemplate     = cell
            };

            dataGridView1.Columns.Add(column);

            i = 0;
            foreach (var item in symbolsIn)
            {
                i++;
                column = new DataGridViewColumn
                {
                    DataPropertyName = $"Value{i}",
                    Name             = $"Value{i}",
                    HeaderText       = item.Symbol,
                    Visible          = true,
                    ReadOnly         = false,
                    CellTemplate     = cell
                };
                dataGridView1.Columns.Add(column);
            }
            column = new DataGridViewColumn
            {
                HeaderText       = "0: Rechaza/ 1: Acepta",
                DataPropertyName = "Result",
                Name             = "Result",
                Visible          = true,
                ReadOnly         = true,
                CellTemplate     = cell
            };
            dataGridView1.Columns.Add(column);


            dataGridView1.DataSource  = transitions;
            btnValidacionAFND.Enabled = true;
        }