Разработать программу на Си Шарп, которая считывает с файла данные и выводит результат с помощью гистограммы или обычной диаграммы. Программу написать на C# Visual Studio 2010. Числов интервалов - 15.
Также определить статистические характеристики гистограммы кардиоинтервалов.
1. Вычислить средний уровень кардиоинтервалов (КИ), то есть математические ожидание .
2. Вычислить Моду (такое значение абсциссы , при котором значения гистограммы достигает max) .
3. Вычислить Амплитуду моды (в %) .
4. Вычислить Вариационный размах .
5. Вычислить Дисперсию .
6. Вычислить Среднеквадратическое отклонение .
7. Вычислить Коэффициент вариации ;
8. Вычислить Коэффициент асимметрии .
9. Вычислить Коэффициент эксцесса .
Текст программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace KSSLR1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] lines = File.ReadAllLines("FL5.TXT");
double M = 0, sred = 0, sum = 0, max, min, razmah, delta, D = 0, G;
double[] mas = new double[lines.Length];
int i, L = 15, Mo = 0;
double AMo, temp, As = 0, Ex = 0;
int[] masX = new int[L];
int sumZ = 0;
double[] masY = new double[L];
for (i = 0; i < lines.Length; i++)
{
mas[i] = Convert.ToDouble(lines[i]);
}
max = mas[0];
min = mas[0];
for (i = 0; i < lines.Length; i++)
{
if (mas[i] > max) max = mas[i];
if (mas[i] < min) min = mas[i];
}
razmah = max - min;
delta = razmah / L;
for (i = 0; i < lines.Length; i++)
{
if (mas[i] >= min && mas[i] < min + delta) masX[0]++;
if (mas[i] >= min + delta && mas[i] < min + 2 * delta) masX[1]++;
if (mas[i] >= min + 2 * delta && mas[i] < min + 3 * delta) masX[2]++;
if (mas[i] >= min + 3 * delta && mas[i] < min + 4 * delta) masX[3]++;
if (mas[i] >= min + 4 * delta && mas[i] < min + 5 * delta) masX[4]++;
if (mas[i] >= min + 5 * delta && mas[i] < min + 6 * delta) masX[5]++;
if (mas[i] >= min + 6 * delta && mas[i] < min + 7 * delta) masX[6]++;
if (mas[i] >= min + 7 * delta && mas[i] < min + 8 * delta) masX[7]++;
if (mas[i] >= min + 8 * delta && mas[i] < min + 9 * delta) masX[8]++;
if (mas[i] >= min + 9 * delta && mas[i] < min + 10 * delta) masX[9]++;
if (mas[i] >= min + 10 * delta && mas[i] < min + 11 * delta) masX[10]++;
if (mas[i] >= min + 11 * delta && mas[i] < min + 12 * delta) masX[11]++;
if (mas[i] >= min + 12 * delta && mas[i] < min + 13 * delta) masX[12]++;
if (mas[i] >= min + 13 * delta && mas[i] < min + 14 * delta) masX[13]++;
if (mas[i] >= min + 14 * delta && mas[i] < min + 15 * delta) masX[14]++;
}
for (i = 0; i < L; i++)
{
masY[i] = min + i * delta;
}
for (i = 0; i < L; i++)
{
M = M + (masX[i] * delta * (i - 0.5) / masX[i]);
}
for (i = 0; i < L; i++)
{
if (Mo < masX[i]) Mo = masX[i];
}
for (i = 0; i < L; i++)
{
sumZ = sumZ + masX[i];
}
for (i = 0; i < L; i++)
{
D = D + (masX[i] * (delta * (i - 0.5) - M) * (delta * (i - 0.5) - M) / (masX[i] - 1));
}
G = Math.Pow(D, 0.5);
temp = sumZ;
AMo = (Mo * 100)/temp;
for (i = 0; i < L; i++)
{
As = As + (masX[i] * Math.Pow((delta * (i - 0.5) - M),3) / (Math.Pow(G,3) * masX[i]));
}
for (i = 0; i < L; i++)
{
Ex = Ex + (masX[i] * Math.Pow((delta * (i - 0.5) - M), 4) / (Math.Pow(G, 4) * masX[i]));
}
Ex = Ex - 3;
this.chart1.Series["Series1"].Points.DataBindXY(masY,masX);
label1.Text = "max = " + max;
label2.Text = "min = " + min;
label3.Text = "Вариационный размах = " + razmah;
label4.Text = "M = " + M;
label5.Text = "Mo = " + Mo;
label6.Text = "Амплитуда Mo = " + AMo;
label7.Text = "Дисперсия = " + D;
label8.Text = "Среднеквадратическое отклонение = " + G;
label9.Text = "Коэффициент вариации = " + G/M;
label10.Text = "Коэффициент асимметрии = " + As;
label11.Text = "Коэффициент эксцесса = " + Ex;
string sss = "";
for (i = 0; i < masX.Length; i++) { sss = sss + masX[i] + " "; }
}
}
}
Результат работы программы:
Скачать готовую программу архивом можно здесь )))