![]() |
|
#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. |