i,j,current_day,range,s,w,u,Ykoef: integer;
err:boolean;
res: array of real;
temp,temp2,min: real;
p: boolean;
begin
form2.Show;
Form2.Chart1.Series[0].Clear;
Form2.Chart1.Series[1].Clear;
Form2.Chart1.Series[2].Clear;
d[1]:=strtoint(Edit1.Text);
d[2]:=strtoint(Edit2.Text);
d[3]:=strtoint(Edit3.Text);
d[4]:=strtoint(Edit4.Text);
d[5]:=strtoint(Edit5.Text);
d[6]:=strtoint(Edit6.Text);
d[7]:=strtoint(Edit7.Text);
d[8]:=strtoint(Edit8.Text);
d[9]:=strtoint(Edit9.Text);
Ykoef:=1;
temp:=0;
p:=true;
SetLength(matr, Round(Power(2,TrackBar1.Position-1)), TrackBar1.Position*2-1);
repeat
temp2:=temp;
for i:=0 to Round(Power(2,TrackBar1.Position-1))-1 do
for j:=0 to TrackBar1.Position*2-1 do
matr[i,j]:=0;
range:=Round(Power(2, TrackBar1.Position-1)/2);
current_day:=TrackBar1.Position;
w:=0;
err:=true;
u:=1;
repeat
s:=0;
j:=1;
for i:=0 to u do
begin
mudoxren(range,s,w,d[current_day],matr,err);
err:=not(err);
s:=j*range;
inc(j);
end;
range:=Round(range/2);
current_day:=current_day-1;
w:=w+2;
u:=(u+1)*2-1;
until u>Round(Power(2, TrackBar1.Position-1))-1;
for i:=0 to Round(Power(2, TrackBar1.Position-1))-1 do
matr[i][TrackBar1.Position*2-2]:=matr[i][TrackBar1.Position*2-3]+d[1];
SetLength(res,Round(Power(2, TrackBar1.Position-1)));
for i:=0 to Round(Power(2, TrackBar1.Position-1))-1 do
res[i]:=GeneralFunction(matr,Ykoef,i);
temp:=res[0];
for i:=1 to Round(Power(2, TrackBar1.Position-1))-1 do
if temp > res[i] then
temp:=res[i];
if p then
min:=temp;
p:=false;
Form2.Chart1.Series[0].AddXY(Ykoef,temp);
inc(Ykoef);
until temp=temp2;
Form2.Chart1.Series[0].AddXY(Ykoef+8,temp);
Form2.Chart1.Series[2].AddXY(Ykoef,temp+3);
Form2.Chart1.Series[1].AddXY(0,temp);