public void ReadDataPoints(string path)
        {
            List<string> list = new List<string>();
            List<string> x = new List<string>();
            List<string> y = new List<string>();
            StreamReader Read;
            string[] array1;
            int i = 0;

            Read = new StreamReader(path); //leyendo datos de archivo

            while (!Read.EndOfStream)  //guardando valores en un nueva archivo (incluyendo tabs)
            {
                list.Add(Read.ReadLine());
                i++;
            }
            Read.Close();

            Form1 format = new Form1();
            data.Add(op1); //Guardando si se desea lagrange
            data.Add(op2); //Guardando si se desea Cubic
            data.Add(Convert.ToString(list.Count())); //Guardando # puntos
            InterpolatingData sp = new InterpolatingData();
            data.Add(num); //Guardando punto a evaluar

            for (int k = 0; k < list.Count; k++)
            {
                array1 = list[k].Split('\t');                  //Separando datos en un arreglo
                x.Add(array1[0]);               //Almacenando valores de X
                xx.Add(double.Parse(array1[0]));
                y.Add(array1[1]);               //Almacenando valores de Y
            }

            foreach (string dat in x)
            {
                data.Add(dat);
            }
            foreach (string dat in y)
            {
                data.Add(dat);
            }

            //Construyendo una string para ser enviada.
            StringBuilder builder = new StringBuilder();
            foreach (string value in data)
            {
                builder.Append(value).Append("|"); //separando elementos por |
            }

            result= builder.ToString();
        }
示例#2
0
        public void runExecute()
        {
            //Revisando checkboxes
            InterpolatingData data = new InterpolatingData();
            data.op1 = (checkBox1.Checked == true) ? "lagrange" : "N/A";
            data.op2 = (checkBox2.Checked == true) ? "cubic" : "N/A";
            checkb = (checkBox3.Checked == true) ? "graficar" : "N/A";
            data.num = textBox1.Text;

            //Guardando ruta*/
            filepath = openFileDialog1.FileName;

            //Leer datos archivo
            data.ReadDataPoints(filepath);

            //Estableciendo conexion
            Client_A CallServer = new Client_A();
            CallServer.data = data.result;
            CallServer.ClientCon();

            //Preparando resultados
            data.dataResult = CallServer.data;

            data.PrepareResults();

            //ETAPA DE LA GRAFICA
            if (data.op1 == "lagrange" && data.op2 == "no" && checkb == "graficar")
            {
                MessageBox.Show("No hay grafica disponible para el metodo lagrange");
            }

            label2.Text = "Lgr f(" + data.num + ") =" + data.lgr;
            label5.Text = "CS f(" + data.num + ") =" + data.cs;
            button1.Visible = false;

            if (checkb == "graficar" && data.op2 == "cubic")
            {
                GnuPlot.WriteLine("set term png");
                GnuPlot.WriteLine(@"set output 'c:\users\franciscojavier\desktop\interpolation.png'");
                data.range();
                GnuPlot.WriteLine("set xrange ["+data.r1+":"+data.r2+"]");
               // GnuPlot.WriteLine("");
                GnuPlot.Plot(data.ec);
                GnuPlot.WriteLine("quit");
                System.Threading.Thread.Sleep(500);
                filepath = (@"C:\Users\FranciscoJavier\Desktop\interpolation.png");
                this.pictureBox1.Image = Image.FromFile(filepath);
            }

            MessageBox.Show("La ecuación es: " + data.ec);
        }