Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2011, 02:30   #1
FunerallMooN
Новичок
Джуниор
 
Регистрация: 25.03.2011
Сообщений: 1
По умолчанию Построение гистограмм или нормальное распределение

Возникли сложности с итоговой работой по Delphi, задание которой прикреплено ниже.
На консультации с преподавателем уловил общую структуру программы:
1) формируем рандомный массив№1 с учетом задаваемых минимумов и максимумов; создаем новый массив№2 из массива№1, путем выделения целой части значений для построения гистограммы.
Соответственно из массива№1 получаем график, из массива№2 - гистограмму.
2) Подвергаем массив№1 обработке по формуле y(см. черным шрифтов в правом углу) следующим образом: группируем элементы по 12 значений и находим их сумму.
Далее заносим все результаты в отдельный массив и дорабатываем его до графика, а график до гистограммы.

Вопрос: в чем некорректность написанного мной кода. В итоге ничего близкого к гауссовскому "колокольчику "не выходит.

\\входящий сигнал - гистограмма и график в массивах их значений\\
procedure Tform1.inbuild(var min,max:real; var dt,n:integer; var ingraf:array of real; var ingist:array of integer);
var
i:integer;
z,sum,z1,kva:real;
begin
dt:=strtoint(edit4.Text);
n:=strtoint(edit3.Text);
max:=strtofloat(edit2.Text);
min:=strtofloat(edit1.Text);
FillChar(ingraf, SizeOf(ingraf), 0);
FillChar(ingist, SizeOf(ingist), 0);
for i:=1 to n do begin
ingraf[i]:=(max-min)*random;
ingist[trunc((ingraf[i]-min)/(max-min)*100)]:=ingist[trunc((ingraf[i]-min)/(max-min)*100)]+1;

end;
sum:=0;
kva:=0;
for i:=1 to n-1 do begin
sum:=sum+ingraf[i];
kva:=kva+sqr(ingraf[i]);
end;
z:=sum/(n-1);
z1:=sqrt(kva);
Edit6.Text:=FloatToStr(z1);
Edit7.Text:=FloatToStr(z);
end;

\\фильтр в виде формулы и выходящий сигнал в массивах\\
procedure tform1.outbuild(var outgraf:array of real; var newgraf:array of real; var q:integer; var outgist:array of integer);
var
i,j,c:integer;
p,summ,kvad,z2,z3:real;
begin
FillChar(outgist, SizeOf(outgist), 0);
FillChar(outgraf,sizeof(outgraf),0) ;
inbuild(min,max,dt,n,ingraf,ingist) ;
p:=0;
c:=0;
q:=n-12;
for i:=1 to n do begin
for j:=1 to q do begin
p:=p+ingraf[i];
c:=c+1;
if c=12 then begin
newgraf[j]:=p;
c:=0;
p:=0;
end;
outgraf[i]:=(newgraf[j])-6;
outgist[i]:=Trunc(outgraf[i]);

end;
end;
summ:=0;
kvad:=0;
for i:=1 to n-1 do begin
summ:=summ+outgraf[i];
kvad:=kvad+sqr(outgraf[i]);
end;
z2:=summ/(n-1);
z3:=sqrt(kvad);
Edit9.Text:=FloatToStr(z3);
Edit8.Text:=FloatToStr(z2);
Изображения
Тип файла: jpg 858bccea3e14.jpg (67.3 Кб, 174 просмотров)
FunerallMooN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нормальное распределение Vitek.i Microsoft Office Excel 1 18.02.2011 16:53
Рисование гистограмм Impuls1989 Общие вопросы C/C++ 0 16.11.2010 23:39
Нормальное распределение случ величины андей Microsoft Office Excel 4 13.11.2009 21:33
Нормальное сворачивание ДВУХ форм Alex Cones Общие вопросы Delphi 1 27.07.2009 23:58
Вопрос по битовым образам (или про построение изображение до его прорисовки) ROD Общие вопросы C/C++ 0 19.02.2009 23:03