1.ПОСТАНОВКИ ЗАДАЧІ.
Для заданої сукупності даних xi з діапазону [x0, xM] обчислюємо середнє значення за формулою m1(x)=1/N . і ще дві задані статистичні характеристики використовуючи формули
Mk(x)=1/N , M2=m2–m12; M3=m3–3m1(m2+2m13; M4=m4–4m1(m3+6m12(m2–3m14 ,
А також побудувати гістограму. Для цього скористаємося процедурами: SetViewPort, Rectangle, bar.
2.РОЗРОБКА СТРУКТУРИ ДАНИХ.
№п(п
Позначення
Ім’я
Тип
Призначення, опис
1
х1,х2,х3,х4
w1,w2,w3,w4
ціла
Координати вікна
2
m1,m2,m3,m4,d,mv2,mv3,
mv4
m1,m2,m3,m4,d,mv2,mv3,
mv4
дійсна
Статистичні величини
3
min,max
min,max
дійсна
Діапазон чисел
4
k
k
дійсна
Кількість піддіапазонів
5
gd,gm
gd,gm
smallint
Змінні необхідні для реалізації графічного режиму
6
-
i, s,j,
ціла
Слугують для реалізації циклів,накопичення суми.
7
-
A,h,h1
-
Масиви для зберігання заданих чисел та висот стовпців
8
-
Mx,my
ціла
масштаб
3.РОЗРОБКА БЛОК-СХЕМИ АЛГОРИТМУ.
8
9
Утворення гістограми 8
9
4.ЗАПИС ТЕКСТУ ПРОГРАМИ.
program Project1;uses graph,keyboard;
const n=20;
var i,k,s,j,w1,w2,w3,w4,mx,my,c:integer;m1,m2,m3,m4,d,mv2,mv3,
mv4,e,min,max,Av:real;
gd,gm:smallint;
a:array[1..n]of real;
h:array[1..n]of integer;
h1:array[1..n]of integer;
begin min:=0;max:=8;k:=5;
d:=(max-min)/k;
a[1]:=6.15;a[2]:=7.87;
a[3]:=4.91;a[4]:=0.44;
a[5]:=1.38;a[6]:=2.11;
a[7]:=3.88;a[8]:=0.32;
a[9]:=6.99;a[10]:=1.07;
a[11]:=3.33;a[12]:=0;
a[13]:=7.64;a[14]:=1.86;
a[15]:=6.87;a[16]:=6.92;
a[17]:=0.05;a[18]:=2.2;
a[19]:=6.5;a[20]:=5.56; m1:=0;
for i:=1 to n do
m1:=m1+a[i]/n; writeln('x:',m1:5:4);
m2:=0;
for i:=1 to n do
m2:=m2+sqr(a[i])/n;
mv2:=m2-sqr(m1);writeln('D:',mv2:5:4);
m3:=0;
for i:=1 to n do
m3:=m3+sqr(a[i])*a[i]/n;
m4:=0;
for i:=1 to n do
m4:=m4+sqr(a[i])*sqr(a[i])/n;
mv4:=m4-4*m1*m3+6*sqr(m1)*m2-3*sqr(m1)*sqr(m1);
Av:=mv4/exp(3/2*ln(mv2));
writeln('A:',Av:5:4);
FOR j:=1 to k do begin
s:=0;
FOR i:=1 to n do begin
if (a[i]<(min+j*d)) and (a[i]>=(min+(j-1)*d)) then s:=s+1;
end; h[j]:=s;writeln('h(',j,'):',h[j]);end;
w1:=100;w2:=100;w3:=1000;w4:=500;
mx:=round((w3-w1)/k);
for i:=1 to k do h1[i]:=h[i];
for i:=2 to k do
if h1[i]<h1[i-1] then begin c:=h1[i-1];h1[i-1]:=h1[i];h1[i]:=c;end;
writeln('h max:',h1[k]);
my:=round((w4-w2)*0.9/h1[k]);
readln;
{grafichnuj rezum}
gd:=0;initkeyboard;
initkeyboard;
initgraph(gd,gm,'');
SetViewPort(w1, w2, w3,w4,ClipOn );setbkcolor(3);clearviewport;
setbkcolor(random(9)); setcolor(5);
for i:=1 to k do begin setcolor(random(9));
bar((i-1)*mx, w4-w2,i*mx, w4-w2-h[i]*my );
Rectangle((i-1)*mx, w4-w2,i*mx, w4-w2-h[i]*my );
end;
repeat until keyboard.getkeyeventchar(keyboard.getkeyevent())='g';
closegraph();
donekeyboard;
end.
5.ТЕСТУВАННЯ ТА НАЛАГОДЖЕННЯ.
Висновок:я ознайомився з основними статистичними характеристиками, та формулами для їх обрахунку, а також навчився будувати гістограми на мові Pascal.
Міністерство освіти і науки україни
НУ «Львівська Політехніка»
Кафедра інформатики.
ЛАБОРАТОРНА РОБОТА №15
ОДНОМІРНА СТАТИСТИКА ТА ПІДГОТОВКА ГІСТОГРАМ.
Підготував
студент
групи РТ-11
Васильчук
Богдан