//////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function stepen(a:real; st:integer):real; var i:integer; m:real; begin m:=a; for i:=1 to st-1 do a:=a*m; result:=a; end; //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //Подсчёт iQx procedure iQx; var r:real; i,st1,st2:integer; v,iqx,ipx:real; writev,writeqx,writepx:string; begin r:=strtofloat(Form1.stringgrid2.Cells[1,4]); v:=1/(1+r); str(v:8:4,writev); Form1.label13.Caption:=writev; for i:=1 to XX do begin tablife[i]:=strtoint(Form1.stringgrid1.Cells[1,i]); //if tablife[i]>tablife[i-1] then end; for i:=1 to XX do begin st1:=tablife[i]; st2:=tablife[i+1]; iqx:=(st1-st2)/tablife[round(((110-(XX-1)*5))/5)+1]; masqx[i]:=iqx; str(iqx:8:4,writeqx); Form1.stringgrid3.Cells[i,1]:=writeqx; ipx:=1-iqx; str(ipx:8:4,writepx); Form1.stringgrid3.Cells[i,2]:=writepx; end; for i:=2 to XX do masqx[i]:=masqx[i-1]+masqx[i]; //masqx[XX]:=1; for i:=1 to XX do masqx[i]:=masqx[i]*1000; end;