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 } }
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(); } } }