Для полученной последовательности вычислить среднее значение и дисперсию и вывести ее в виде гистограммы, разделив диапазон на десять интервалов. Помогите плиз с гистрограммой, ошибка, где непойму
Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{const int razod =50;
const int razdv = razod * 2;
String perv, vtor;
int i,j, t, n[razod], m[razod], nm[razdv];
double ss,sd,tak,disp,sredn;
ss=0;
sd=0;
Memo1->Clear();
srand(time(0));
//Первая последовательность
for(i = 0; i <razod; i++)
perv += IntToStr( n[i] = 5 * ( rand( ) % 6 + 1 ) + 1 ) + " ";
Edit1->Text = perv;
//Вторая последовательность
for(i = 0; i < razod; i++)
vtor += IntToStr( m[i] = 5 * ( rand( ) % 6 + 1 ) + 1 ) + " ";
Edit2->Text = vtor;
//Общая последовательность
for(i = 0; i < razdv; i++)
nm[i] = (i <razod)?n[i]:m[i % razod];
//Сортировка по возрастанию, метод пузырька
for (j=0; j<razdv - 1;j++)
for(i = 0; i < razdv - 1; i++)
{
if(nm[i] > nm[i + 1])
{
t = nm[i];
nm[i] = nm[i + 1];
nm[i + 1] = t;
}
}
for(i = 0; i < razdv; i++)
{
Form1->Memo1->Lines->Add(IntToStr(i+1)+" --- "+nm[i]); //Вывод общая последовательность
ss+=nm[i]; //Числитель сумма значений
}
sredn=ss/razdv; //Среднее значение
Edit3->Text =sredn;
for(i = 0; i < razdv; i++)
sd+=nm[i]*nm[i]-sredn*sredn;
disp=sd/razdv;
Edit4->Text =disp;
tak=nm[0]*nm[0]-sredn*sredn;
Edit5->Text =tak;
//Гистрограмма
double max, min,zh, h, interval,pro,a [10],b[10];
Chart1->Series[0]->Clear();
max=nm[1];
min=nm[1];
h=0;
for( i=1;; i= razdv )
if (nm[i] > max) max= nm[i];
for( i=1; ;i= razdv )
if (nm[i] < min) min= nm[i];
interval=max-min;
h=interval/10;
zh=h;
a[0]=0;
for (i=1;;i=10)
a[i]=a[i-1]+h;
for (i=1;;i=10)
{
for (j=1;;j=razdv)
{
if ((nm[j]>a[i-1]) && (nm[j]<=a[i])) b[i]=b[i]+1;
}
zh=h+zh;
}
for (i=1;;i=10)
Chart1->Series[0]->AddXY(a[i], b[i]);
}
//---------------------------------------------------------------------------