![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 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); |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нормальное распределение | 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 |