private void Button11_Click(object sender, EventArgs e) { try { var intDict = MakeIntervalDict(); var keys = intDict.Keys.ToList(); foreach (var i in keys) { intDict[i] /= 4; } var form = new HistogramForm1(intDict, new[] { "I (номер інтервалу)", "n/4" }); form.Show(); } catch { return; } }
private void ShowResult(SortedDictionary <double, double> Dict) { if (Type == "Інтервальний розподіл") { int m = 0; try { m = int.Parse(textBox1.Text); if (m == 0) { throw new IOException(); } } catch { MessageBox.Show($"Число m задано неправильно.", "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var res = Tasks.BuildIntervalDistr(Dict, m); var form = new OutputForm(res, "Інтервальний розподіл"); form.Show(); } if (Type == "Гістограма частот") { int m = 0; try { m = int.Parse(textBox1.Text); if (m == 0) { throw new IOException(); } } catch { MessageBox.Show($"Число m задано неправильно.", "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var res = Tasks.BuildIntervalDistr(Dict, m); var form = new HistogramForm1(res, new[] { "I (номер інтервалу)", "n/4" }); form.Show(); } if (Type == "Гістограма відносних частот") { int m = 0; try { m = int.Parse(textBox1.Text); if (m == 0) { throw new IOException(); } } catch { MessageBox.Show($"Число m задано неправильно.", "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var res = Tasks.BuildIntervalRelDistr(Dict, m); var form = new HistogramForm1(res, new[] { "I (номер інтервалу)", "w/4" }); form.Show(); } if (Type == "Числові характеристики") { try { int k = int.Parse(textBox1.Text); string res = ""; double n = Dict.Sum(x => x.Value); double avg = Dict.Sum(x => (x.Key * x.Value)) / n; res += $"Вибіркове середнє: {avg}\n"; double d1 = Dict.Sum(x => x.Value * sqr(x.Key - avg)) / n; double g1 = Math.Sqrt(d1); res += $"Дисперсія: {d1}\n"; res += $"Cереднє квадратичне відхилення: {g1}\n"; double d2 = d1 * n / (n - 1); double g2 = Math.Sqrt(d2); res += $"Виправлена дисперсія: {d2}\n"; res += $"Виправлене середнє квадратичне відхилення: {g2}\n"; res += $"Емпіричний початковий момент порядку {k}: {Tasks.pBegin(Dict, k)}\n"; res += $"Емпіричний центральний момент порядку {k}: {Tasks.pEnd(Dict, k)}\n"; res += $"Асиметрія: {Tasks.pEnd(Dict,3) / Math.Pow(g1, 3)}\n"; res += $"Ексцес: {Tasks.pEnd(Dict,4) / Math.Pow(g1, 4) - 3}\n"; res += $"Розмах: {Dict.Max(x => x.Key) - Dict.Min(x => x.Key)}\n"; res += $"Коефіцієнт варіацій: {g1 / avg * 100}%\n"; MessageBox.Show(res, "Результат"); } catch { MessageBox.Show("Число k задано невірно", "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } Close(); }