示例#1
0
 private void radioButton2_CheckedChanged(object sender, EventArgs e)
 {
     if (radioButton2.Checked)
     {
         Procesamiento_de_datos.Newton_Gregory nuevo = new Procesamiento_de_datos.Newton_Gregory();
         datosDePolinomio = nuevo.buscandoFxResueltoRegresivo(datosDeX, datosDeY);
         DataGridView nuevoData = new DataGridView();
         nuevoData.RowCount = 1;
         nuevoData.Rows.Add(polinomioAString(datosDePolinomio));
         dataGridView1 = nuevoData;
     }
 }
示例#2
0
        public resultado(DataGridView datosDeGrilla, String algoritmo)
        {
            InitializeComponent();

            this.datos = datosDeGrilla;
            int cantidadIteraciones = datosDeGrilla.RowCount - 1;

            datosDeX = new float[cantidadIteraciones];
            datosDeY = new float[cantidadIteraciones];
            int i = 0;

            for (i = 0; i < cantidadIteraciones; i++)
            {
                datosDeX[i] =
                    float.Parse(datos.Rows[i].Cells[0].Value.ToString());
                datosDeY[i] =
                    float.Parse(datos.Rows[i].Cells[1].Value.ToString());
            }
            if (algoritmo.Equals("Lagrange"))
            {
                Procesamiento_de_datos.Lagrange lagrange = new Procesamiento_de_datos.Lagrange();
                datosDePolinomio        = lagrange.buscandoFxResuelto(datosDeX, datosDeY);
                this.rbLagrange.Checked = true;
            }
            else if (algoritmo.Equals("Progresivo"))
            {
                Procesamiento_de_datos.Newton_Gregory nuevo = new Procesamiento_de_datos.Newton_Gregory();
                datosDePolinomio = nuevo.buscandoFxResueltoProgresivo(datosDeX, datosDeY);
                this.radioButtonProgesivo.Checked = true;
            }
            else
            {
                Procesamiento_de_datos.Newton_Gregory nuevo = new Procesamiento_de_datos.Newton_Gregory();
                datosDePolinomio          = nuevo.buscandoFxResueltoRegresivo(datosDeX, datosDeY);
                this.radioButton2.Checked = true;
            }



            /* minimo = datosDeX[0];
             * maximo = datosDeX[datosDeX.Length-1];
             *
             * labelMaximoYMinimo.Text = "[" + minimo.ToString() + "-" + maximo.ToString() + "]";
             */


            dataGridView1.ColumnCount     = 1;
            dataGridView1.Columns[0].Name = "P(x)";
            dataGridView1.Rows.Add(polinomioAString(datosDePolinomio));
        }
示例#3
0
        private void llenarGrilla()
        {
            if (tipoAlgoritmo.Equals("Lagrange"))
            {
                dataGridView1.ColumnCount     = 2;
                dataGridView1.Columns[0].Name = "Li";
                dataGridView1.Columns[1].Name = "Resultado";

                Procesamiento_de_datos.Lagrange lagrange = new Procesamiento_de_datos.Lagrange();
                int       tamanio          = datosDeX.Length;
                ArrayList resultados       = lagrange.mostrarPasos(datosDeX, datosDeY);
                int       cantidaResultado = resultados.Count;
                //               dataGridView1.Columns.Add("inicial", "L i");
                //              dataGridView1.Columns.Add("secundario", "Operaciones que debe realizar");
                for (int i = 0; i < cantidaResultado; i++)
                {
                    dataGridView1.Rows.Add("L" + i, resultados[i].ToString());
                    labelGrado.Text = (cantidaResultado - 1).ToString();
                }
                dataGridView2.ColumnCount     = 1;
                dataGridView2.Columns[0].Name = "P(x)";
                dataGridView2.Rows.Add(lagrange.buscandoFx(datosDeX, datosDeY));

                dataGridViewFx.ColumnCount     = 1;
                dataGridViewFx.Columns[0].Name = "P(x)";
                float[] datos = lagrange.buscandoFxResuelto(datosDeX, datosDeY);
                ponerGrado(datos);
                dataGridViewFx.Rows.Add(polinomioAString(datos));

                chequearSiElPolinomioObtenidoDifiereDelAnterior(datos);
            }
            else
            {
                Procesamiento_de_datos.Newton_Gregory nuevo = new Procesamiento_de_datos.Newton_Gregory();
                int grado = datosDeX.Length;
                float[,] tabla = nuevo.obtenerTablaDeDiferenciasDivididas(datosDeX, crearTabla(), grado);

                DataGridView tablaDeNG = new DataGridView();
                dataGridView1.ColumnCount = grado;
                int gradoMaximo = 0;
                for (int i = 0; i < grado; i++)
                {
                    if (i == 0)
                    {
                        dataGridView1.Columns[i].Name = "Y";
                    }
                    else
                    {
                        dataGridView1.Columns[i].Name = "Orden " + i.ToString();
                    }
                }

                int tamanio = datosDeX.Length - 1;

                for (int i = 0; i < grado; i++)
                {
                    ArrayList row = new ArrayList();
                    for (int j = 0; j < grado - i; j++)
                    {
                        row.Add(tabla[i, j]);
                        if (tipoAlgoritmo.Equals("Newton-Gregory progresivo"))
                        {
                            if (i == 0)
                            {
                                if (tabla[0, j] != 0)
                                {
                                    gradoMaximo = j + 1;
                                }
                            }
                        }
                        else
                        {
                            if (j == grado - i - 1)
                            {
                                if (tabla[tamanio, grado - i - 1] != 0)
                                {
                                    gradoMaximo++;
                                }
                                tamanio--;
                            }
                        }
                    }
                    dataGridView1.Rows.Add(row.ToArray());
                }
                if (tipoAlgoritmo.Equals("Newton-Gregory progresivo"))
                {
                    dataGridView2.ColumnCount     = 1;
                    dataGridView2.Columns[0].Name = "P(x)";
                    dataGridView2.Rows.Add(nuevo.formulaProgresiva(datosDeX, datosDeY));

                    dataGridViewFx.ColumnCount     = 1;
                    dataGridViewFx.Columns[0].Name = "P(x)";
                    float[] datos = nuevo.buscandoFxResueltoProgresivo(datosDeX, datosDeY);

                    ponerGrado(datos);
                    dataGridViewFx.Rows.Add(polinomioAString(datos));
                    chequearSiElPolinomioObtenidoDifiereDelAnterior(datos);
                }
                else
                {
                    dataGridView2.ColumnCount     = 1;
                    dataGridView2.Columns[0].Name = "P(x)";
                    dataGridView2.Rows.Add(nuevo.formulaRegresiva(datosDeX, datosDeY));

                    dataGridViewFx.ColumnCount     = 1;
                    dataGridViewFx.Columns[0].Name = "P(x)";
                    float[] datos = nuevo.buscandoFxResueltoRegresivo(datosDeX, datosDeY);

                    ponerGrado(datos);
                    dataGridViewFx.Rows.Add(polinomioAString(datos));
                    chequearSiElPolinomioObtenidoDifiereDelAnterior(datos);
                }
            }
        }