Exemplo n.º 1
0
 private void btnBorrar_Click(object sender, EventArgs e)
 {
     textBoxCalculadora.Clear();
     textBox1.Clear();
     dataGridView1.Rows.Clear();
     dataGridView1.Columns.Clear();
     Analizador.LimpiarErrores();
     this.Size = new Size(408, 431);
 }
Exemplo n.º 2
0
        private void btnIgual_Click(object sender, EventArgs e)
        {
            Analizador.LimpiarErrores();
            Analizador.LimpiarValores();
            string expresion = textBoxCalculadora.Text;

            //validaciones
            if (cantidadDeProposicionesValidas(expresion))
            {
                if (Analizador.ValidarExpresion(expresion))
                {
                    //configuracion del dataGridValue
                    dataGridView1.Rows.Clear();
                    dataGridView1.Columns.Clear();
                    valorIgual               = true;
                    dataGridView1.ReadOnly   = true;
                    dataGridView1.DataSource = null;
                    dataGridView1.AllowUserToOrderColumns = false;

                    try
                    {
                        //Analizar expresion
                        expresion = "(" + expresion + ")";
                        var diccionario = Analizador.AnalizarExpresion(expresion);

                        //recorrer el diccionario e imprimirlo en el datagridview
                        foreach (var item in diccionario)
                        {
                            var nuevaExpresion = "";
                            var valorById      = Analizador.ObtenerValorById(item.Key);
                            if (valorById == null)
                            {
                                nuevaExpresion = item.Key;
                            }
                            else
                            {
                                nuevaExpresion = Analizador.ArmarExpresion(valorById);
                            }

                            dataGridView1.Columns.Add(item.Key, nuevaExpresion);
                        }

                        var cantidad = diccionario.ElementAt(0).Value.Count;
                        int index    = 0;
                        var lista    = new List <string>();
                        for (int x = 0; x < cantidad; x++)
                        {
                            for (int i = 0; i < diccionario.Count; i++)
                            {
                                var item = diccionario.ElementAt(i);
                                lista.Add(item.Value[index]);
                            }
                            var vector = lista.ToArray();
                            dataGridView1.Rows.Add(vector);
                            lista.Clear();
                            index++;
                        }
                        MostrarErrores();
                        this.Size = new Size(1328, 431);
                    }catch (Exception err)
                    {
                        MessageBox.Show(err.Message);
                    }
                }
                else
                {
                    MostrarErrores();
                }
            }
            else
            {
                MessageBox.Show("La cantidad de proposiciones están limitadas a 2 como minimo y 6 como maximo\npor favor ingresa una cantidad valida",
                                "Cantidad de proposiciones no valida", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }