예제 #1
0
파일: MDIParent.cs 프로젝트: a-27m/vssdb
        private void buttonNumCharacteristics_Click(object sender, EventArgs e)
        {
            if (ActiveMdiChild is FormChild)
            {
                FormChild activeChild = ActiveMdiChild as FormChild;

                #region Среднее

                double srednee =
                    StatisticsProcessor.Srednee(activeChild.DataAsRow);
                activeChild.PrintLine("Выборочное среднее: " +
                                      srednee.ToString() + ";");

                #endregion

                #region Дисперсия

                double sigma2 =
                    StatisticsProcessor.Dispersion(activeChild.DataAsRow);
                activeChild.PrintLine("Дисперсия: " +
                                      sigma2.ToString() + " (с.к.о.: " +
                                      Math.Sqrt(sigma2).ToString() + ");");

                #endregion

                #region Эксцесс

                double excess =
                    StatisticsProcessor.Excess(activeChild.DataAsRow);
                activeChild.PrintLine("Эксцесс: " +
                                      excess.ToString() + ";");

                #endregion

                #region Асимметрия

                double asym =
                    StatisticsProcessor.Asymetry(activeChild.DataAsRow);
                activeChild.PrintLine("Асимметрия: " +
                                      asym.ToString() + ";", true);

                #endregion
            }
        }
예제 #2
0
        void dfSFConst_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (ActiveMdiChild is FormChild)
                {
                    FormChild activeMdiChild = ActiveMdiChild as FormChild;

                    (sender as Form).Close();

                    int last_i1;
                    last_i1 = (int)(sender as DekartForm).MouseMathLocation.X;
                    //MessageBox.Show(last_i1.ToString());

                    double[] data  = activeMdiChild.DataAsRow;
                    double[] data1 = new double[last_i1 + 1];
                    double[] data2 = new double[data.Length - data1.Length];

                    for (int i = 0; i <= last_i1; i++)
                    {
                        data1[i] = data[i];
                    }
                    for (int i = last_i1 + 1; i < data.Length; i++)
                    {
                        data2[i - (last_i1 + 1)] = data[i];
                    }

                    PointF[] pts  = new PointF[data.Length];
                    PointF[] pts0 = new PointF[2];
                    PointF[] pts1 = new PointF[2];
                    PointF[] pts2 = new PointF[2];

                    for (int i = 0; i < pts.Length; i++)
                    {
                        pts[i].X = i;
                        pts[i].Y = (float)data[i];
                    }

                    float m0 = (float)StatisticsProcessor.Srednee(data);
                    float m1 = (float)StatisticsProcessor.Srednee(data1);
                    float m2 = (float)StatisticsProcessor.Srednee(data2);

                    float oneThird = 1f / 3f;
                    pts0[0].X = 0 - oneThird; pts0[0].Y = m0;
                    pts0[1].X = pts.Length - 1 + oneThird; pts0[1].Y = m0;

                    pts1[0].X = 0 - oneThird; pts1[0].Y = m1;
                    pts1[1].X = last_i1 + oneThird; pts1[1].Y = m1;

                    pts2[0].X = last_i1 + 1 - oneThird; pts2[0].Y = m2;
                    pts2[1].X = data.Length - 1 + oneThird; pts2[1].Y = m2;

                    DekartForm df = new DekartForm(30, 30, 100, 150);
                    df.AddPolygon(Color.Green, 3f, DrawModes.DrawPoints, pts);
                    df.AddPolygon(Color.Pink, 2f, DrawModes.DrawLines, pts0);
                    df.AddPolygon(Color.Red, 2f, DrawModes.DrawLines, pts1);
                    df.AddPolygon(Color.Red, 2f, DrawModes.DrawLines, pts2);
                    df.Use_IsVisible = false;
                    df.MouseClick   += new MouseEventHandler(dfSFConst_MouseClick);
                    df.Show();
                    df.Update2();
                }
            }
        }