Exemplo n.º 1
0
        private void MNK_button_Click(object sender, EventArgs e)
        {
            if (answerLayout.Controls.Count != 0)
            {
                answerLayout.Controls.Clear();
            }

            int size = int.Parse(EditCount.Text);

            double[] x = new double[size];
            double[] y = new double[size];
            double[] z = new double[size];
            double[] w = new double[size];

            for (int i = 0; i < size; i++)
            {
                try
                {
                    x[i] = double.Parse(XLayoutPanel.Controls[i].Text);
                    y[i] = double.Parse(YLayoutPanel.Controls[i].Text);
                    z[i] = double.Parse(ZLayoutPanel.Controls[i].Text);
                    w[i] = double.Parse(WLayoutPanel.Controls[i].Text);
                }
                catch (Exception)
                {
                    return;
                }
            }

            coords = new double[size, 3];
            for (int i = 0; i < size; i++)
            {
                coords[i, 0] = x[i];
                coords[i, 1] = y[i];
                coords[i, 2] = z[i];
            }


            int[] polynomeSize = new int[2];

            int chosenPolynomeSize = polynomeSizeBox.SelectedIndex;

            switch (chosenPolynomeSize)
            {
            case 0:
                polynomeSize[0] = 1;
                polynomeSize[1] = 1;
                break;

            case 1:
                polynomeSize[0] = 2;
                polynomeSize[1] = 1;
                break;

            case 2:
                polynomeSize[0] = 1;
                polynomeSize[1] = 2;
                break;

            case 3:
                polynomeSize[0] = 2;
                polynomeSize[1] = 2;
                break;

            default:
                throw new Exception();
            }

            Stopwatch watch = new Stopwatch();

            watch.Start();
            MNK mnk = new MNK(x, y, z, w, size, polynomeSize);

            answer = mnk.Calculate();
            watch.Stop();

            Console.WriteLine("TIME {0}", watch.Elapsed);

            var results = new TextBox[3];

            for (int i = 0; i < 3; i++)
            {
                results[i]           = new TextBox();
                results[i].MaxLength = 5;
                results[i].Text      = answer[i].ToString();
                results[i].TextAlign = HorizontalAlignment.Center;
            }

            answerLayout.Controls.AddRange(results);
        }
Exemplo n.º 2
0
        private void MNK_button_Click(object sender, EventArgs e)
        {
            if (answerLayout.Controls.Count != 0)
                answerLayout.Controls.Clear();

            int size = int.Parse(EditCount.Text);
            double[] x = new double[size];
            double[] y = new double[size];
            double[] z = new double[size];
            double[] w = new double[size];

            for (int i = 0; i < size; i++)
            {
                try
                {
                    x[i] = double.Parse(XLayoutPanel.Controls[i].Text);
                    y[i] = double.Parse(YLayoutPanel.Controls[i].Text);
                    z[i] = double.Parse(ZLayoutPanel.Controls[i].Text);
                    w[i] = double.Parse(WLayoutPanel.Controls[i].Text);
                }
                catch(Exception)
                {
                    return;
                }
            }

            int[] polynomeSize = new int[2];
            polynomeSize[0] = 1;
            polynomeSize[1] = 1;

            MNK mnk = new MNK(x, y, z, w, size, polynomeSize);
            double[] answer = mnk.Calculate();

            var results = new TextBox[3];
            for (int i = 0; i < 3; i++)
            {
                results[i] = new TextBox();
                results[i].MaxLength = 5;
                results[i].Text = answer[i].ToString();
                results[i].TextAlign = HorizontalAlignment.Center;
            }

            answerLayout.Controls.AddRange(results);
        }