- •Алгоритмы и задачи
- •Глава 1 Начала
- •Глава 2 Числа
- •Int temp;
- •InitializeComponent();
- •Глава 3 Последовательности (массивы)
- •Int m, n, p; //размеры матриц
- •Void MultMatr(double[,] a, double[,] b, double[,] c)
- •Void FillDg()
- •Int MaxM()
- •Void EvalMopAndNop(int I, int j, ref int m, ref int n)
- •Void orders(int I, int j)
- •Int[] sx; //статистический закон - гистограмма
- •InitializeComponent();
- •Раздел 4 Тексты
- •Int codes1, codes2, codes3;
- •Int n; //размер массива
- •Int Heap_Size; //размер пирамиды, построенной на массиве
- •Void qSort(int start, int finish)
- •Int temp;
- •Void SortM(int start, int finish, int[] temp)
- •Void Merge(int start, int mid, int finish, int[] temp)
- •Int start, finish;
- •Int ms(DateTime dt)
Int[] sx; //статистический закон - гистограмма
double Mx; //оценка матожидания
double sko; //оценка среднеквадратического отклонения
NormalRandom nord;
public TestingNormalForm()
{
InitializeComponent();
}
Команда, которая должна выполняться первой, связана с приемом данных, заданных пользователем, формированием массивов и других необходимых структур данных. Как всегда, прием данных от пользователя должен контролироваться. В нашем случае первой должна нажиматься кнопка «Создать контейнеры», обработчик которой выполняет действия, связанные с приемом входных данных. Вот код этого обработчика:
private void button1_Click(object sender, EventArgs e)
{
//Ввод данных с контролем
try
{
N = Convert.ToInt32(textBox1.Text);
if (N == 0)
{
ArgumentOutOfRangeException ex = new ArgumentOutOfRangeException();
throw (ex);
}
}
catch (Exception)
{
MessageBox.Show("Некорректно задано значение N");
return;
}
try
{
m= Convert.ToInt32(textBox2.Text);
if (m == 0)
{
ArgumentOutOfRangeException ex = new ArgumentOutOfRangeException();
throw (ex);
}
}
catch (Exception)
{
MessageBox.Show("Некорректно задано значение m");
return;
}
try
{
MxT = Convert.ToDouble(textBox6.Text);
}
catch (Exception)
{
MessageBox.Show("Некорректно задано значение MxT");
return;
}
try
{
skoT = Convert.ToDouble(textBox5.Text);
}
catch (Exception)
{
MessageBox.Show("Некорректно задано значение skoT");
return;
}
//Создаются контейнеры - массивы X, SX
X = new double[N];
SX = new int[m];
nord = new NormalRandom();
MessageBox.Show("Данные приняты. Массивы созданы");
}
Команда «TestNext» позволяет получить очередное нормальное число с заданными параметрами и отобразить его в соответствующем окне. При каждом выполнении этой команды в окне появляется очередное случайное число. Вот обработчик события Click для этой командной кнопки:
private void button2_Click(object sender, EventArgs e)
{
//Создается случайное число
listBox1.Items.Clear();
X[0] = nord.Next(MxT, skoT);
listBox1.Items.Add(X[0].ToString());
}
Команда «TestNextArray» позволяет получить выборку заданного объема N и отобразить ее в соответствующем окне, заданном элементом ListBox. Обработчик и здесь выглядит совсем просто:
private void button3_Click(object sender, EventArgs e)
{
//Создается выборка
listBox1.Items.Clear();
nord.NextArray(X, MxT, skoT);
for (int i = 0; i < N; i++)
listBox1.Items.Add(X[i].ToString());
}
После того, как выборка создана, можно выполнить команду «TestStatLaw» для получения характеристик выборки. И здесь, конечно же, обработчик события Click вызовет соответствующий метод класса NormalRandom:
private void button4_Click(object sender, EventArgs e)
{
//Создается выборка и другие результаты
listBox1.Items.Clear();
listBox2.Items.Clear();
nord.StatLaw(X, SX, out Mx, out sko);
for (int i = 0; i < N; i++)
listBox1.Items.Add(X[i].ToString());
for (int i = 0; i < m; i++)
listBox2.Items.Add(SX[i].ToString());
textBox3.Text = Mx.ToString();
textBox4.Text = sko.ToString();
}
Теперь, когда гистограмма построена, можно ее визуально отобразить, что и делает команда «Построить команду», вызывающая метод класса NormalRandom, который в свою очередь вызывает метод DrawGis формы GistForm:
private void button5_Click(object sender, EventArgs e)
{
//Построить гистограмму
nord.DrawGis(SX);
}
В заключение этой главы взгляните на рис. 12, отображающий гистограмму, построенную по данным, показанным на рис. 11.
Рис. 12 Гистограмма, построенная по данным выборки, показанной на рис. 11
