Exemplo n.º 1
0
        public void Paso1(ListBox ltbSalida, PictureBox cuadro, ListBox ltbSalida2, TextBox txtResultado4)
        {
            double X1 = 0;
            double X2 = 0;

            for (int i = 0; i < lstRestriccion.N; i++)//Este for recorre las resrticciones
            {
                int    a           = 0;
                int    val         = 0;
                string restriccion = lstRestriccion.mostrarPosicion(i).ToString();
                EncontrarXyY(out X1, out X2, restriccion);
                string signo = "+";
                val = 0;
                for (int k = restriccion.IndexOf('=') + 1; k < restriccion.Length; k++)
                {
                    if (restriccion[k] == '+' || restriccion[k] == '-')
                    {
                        signo = restriccion[k].ToString();
                    }
                    else if (int.TryParse(restriccion[k].ToString(), out int valInt))
                    {
                        val = val * 10 + valInt;
                    }
                }
                if (signo == "-")
                {
                    val *= -1;
                }
                ltsGrafos.insertatFin(X1, X2, val);//Se guardan los valores de las X y lado derecho
            }
            Paso2(ltbSalida, cuadro, ltbSalida2, txtResultado4);
        }//Separamos todos los valores de las X y el lado derecho
        private void btnMetodoGrafico_Click(object sender, EventArgs e)
        {
            if (maxMin.Checked)
            {
                lbMaxmin4.Text = "Max";
            }
            else
            {
                lbMaxmin4.Text = "Min";
            }
            txtFo4.Text = txtFo1.Text;
            for (int i = 0; i < lr.N; i++)
            {
                ltbrestricciones4.Items.Add(lr.mostrarPosicion(i).ToString().Replace(">", "").Replace("<", ""));
            }

            CambioDePanel(panel1, panel4);
        }
        public void Paso1(ListBox ltbSalida, PictureBox cuadro, ListBox ltbSalida2)
        {
            int X1 = 0;
            int X2 = 0;

            for (int i = 0; i < lstRestriccion.N; i++)//Este for recorre las resrticciones
            {
                int    a           = 0;
                int    val         = 0;
                string restriccion = lstRestriccion.mostrarPosicion(i).ToString();
                for (int k = 0; k < restriccion.IndexOf(sub(2)); k++)            //este for recorre los caracteres de la restriccion
                {
                    if (int.TryParse(restriccion[k].ToString(), out int valInt)) //vemos si se puede convertir a entero y obtenemos todo el valor numerico
                    {
                        val = val * 10 + valInt;
                    }
                    else
                    {
                        if (val == 0)                                                           //Cuando es 0 El coeficiente es 1
                        {
                            if (restriccion[k].ToString() + restriccion[k + 1] == "X" + sub(1)) //Vemos si es X1
                            {
                                if (restriccion[a] == '-')
                                {
                                    X1 = -1;
                                }
                                else
                                {
                                    X1 = 1;
                                }
                                a   = k + 2;
                                k  += 2;
                                val = 0;
                            }
                            else if (restriccion[k].ToString() + restriccion[k + 1] == "X" + sub(2)) //Vemos si es X2
                            {
                                if (restriccion[a] == '-')
                                {
                                    X2 = -1;
                                }
                                else
                                {
                                    X2 = 1;
                                }
                                a   = k + 2;
                                k  += 2;
                                val = 0;
                            }
                        }
                        else //Cuando el coeficiente es distinto de 0
                        {
                            if (restriccion[i].ToString() + restriccion[i + 1] == "X" + sub(1)) //Vemos si es X1
                            {
                                if (restriccion[a] == '-')
                                {
                                    X1 = -1 * val;
                                }
                                else
                                {
                                    X1 = val;
                                }
                                a   = k + 2;
                                k  += 2;
                                val = 0;
                            }
                            else if (restriccion[i].ToString() + restriccion[i + 1] == "X" + sub(2)) //Vemos si es X2
                            {
                                if (restriccion[a] == '-')
                                {
                                    X1 = -1 * val;
                                }
                                else
                                {
                                    X1 = 1 * val;
                                }
                                a   = k + 2;
                                k  += 1;
                                val = 0;
                            }
                        }
                    }
                }//Encontramos los valores de X1 y X2
                string signo = "+";
                val = 0;
                for (int k = restriccion.IndexOf('=') + 1; k < restriccion.Length; k++)
                {
                    if (restriccion[k] == '+' || restriccion[k] == '-')
                    {
                        signo = restriccion[k].ToString();
                    }
                    else if (int.TryParse(restriccion[k].ToString(), out int valInt))
                    {
                        val = val * 10 + valInt;
                    }
                }
                if (signo == "-")
                {
                    val *= -1;
                }
                ltsGrafos.insertatFin(X1, X2, val);//Se guardan los valores de las X y lado derecho
            }
            Paso2(ltbSalida, cuadro, ltbSalida2);
        }//Separamos todos los valores de las X y el lado derecho