![]() |
|
#1
|
|||
|
|||
![]() Пусть а1..аn - кол-во осадков в мм,выпавшее в москве в течении последних лет.С помощью подпрограмм статической библиотеки(unit) вычислить:
а)среднее кол-во осадков для заданного отрезка времени(от 1 до n) б)отклонение от среднего для каждого года в)наименьшее и наибольшее из отклонений выбор действия в главной программе организовать с помощью списка выбора(combobox) ---- В общем мне кажется что с функцией sro что-то не так т.к не работает вывод массива этой функции в мемо, и поиск наименьшего и наибольшего отклонения при помощи массива so[i] ---- Код:
type mas=array [1..20] of real; var s1:real; so:mas; function sr(a:mas;n:integer;i:integer):real; var s:real; begin s:=0; for i:=0 to (n-1) do s:=a[i]+s; s1:=s/n; sr:=s1; end; function sro(a:mas;n:integer;i:integer):mas; var so:mas; begin for i:=0 to (n-1) do begin so[i]:=a[i]-s1; end; end; function bso(a:mas;n:integer;i:integer):real; var max:integer; begin max:=1; for i:=0 to (n-1)do if so[i]>a[max] then max:=i; Result:=max; end; function mso(a:mas;n:integer;i:integer):real; var min:integer; begin min:=1; for i:=0 to (n-1)do if so[i]<so[min] then min:=i; Result:=min; end; procedure TForm1.Button1Click(Sender: TObject); var a:mas; i,n,j:integer; begin n:=memo1.Lines.Count; j:=memo2.lines.count; for i:=0 to n do a[i]:=strtoint(memo1.lines[i]); case sign.ItemIndex of 0:label1.Caption:=floattostr(sr(a,i,n)); 1:for i:=0 to j-1 do begin memo2.lines.add(floattostr(so[i])); end; 2:label3.Caption:=floattostr(bso(a,n,i)); 3:label4.Caption:=floattostr(mso(a,n,i)); end; end; end. |
#2
|
||||
|
||||
![]() Цитата:
Да ещё эта функция в своих расчётах использует глобальную переменную s1 хотя не известно отработала ли до этого функция sr которая в эту переменную записывает корректное значение. Вот эта же функция, только слегка отформатированная для большей наглядности: Код:
function sro(a: mas; n: integer; i: integer): mas; var so: mas; begin for i := 0 to (n - 1) do begin so[i] := a[i] - s1; end; end; Да, и ещё параметр-переменная i для цикла... ![]() Последний раз редактировалось poli-smen, 22.04.2014 в 22:59. |
#3
|
|||
|
|||
![]() можно что либо сделать чтобы массив so не удалялся , тк он мне нужен?
|
#4
|
||||
|
||||
![]() Цитата:
|
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
xxxmaximal (11.05.2014)
|