end; if combobox1.Text='3' then begin
a:=3;
Edit2.Visible:=true;
Edit3.Visible:=true;
Edit5.Visible:=true;
Edit6.Visible:=true;
Form1.Label9.Visible:=true;
Form1.Label10.Visible:=true;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
end; end;
procedure TForm1.ComboBox2Change(Sender: TObject); begin if combobox2.Text='1' then begin
b:=1;
Edit8.Visible:=false;
Edit9.Visible:=false;
Edit11.Visible:=false;
Edit12.Visible:=false;
ComboBox3.Visible:=true;
ComboBox4.Visible:=false;
ComboBox5.Visible:=false;
Edit7.Text:='';
Edit8.Text:='1';
Edit9.Text:='1';
Edit10.Text:='';
Edit11.Text:='1';
Edit12.Text:='1';
end; if combobox2.Text='2' then begin
b:=2;
Edit8.Visible:=true;
Edit9.Visible:=false;
Edit11.Visible:=true;
Edit12.Visible:=false;
ComboBox3.Visible:=true;
ComboBox4.Visible:=true;
ComboBox5.Visible:=false;
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='1';
Edit10.Text:='';
Edit11.Text:='';
Edit12.Text:='1';
end; if combobox2.Text='3' then begin
b:=3;
Edit8.Visible:=true;
Edit9.Visible:=true;
Edit11.Visible:=true;
Edit12.Visible:=true;
ComboBox3.Visible:=true;
ComboBox4.Visible:=true;
ComboBox5.Visible:=true;
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
Edit11.Text:='';
Edit12.Text:='';
end; end;
procedure TForm1.ComboBox3Change(Sender: TObject); begin if ComboBox3.Text='Влево' then s1:=-1
else s1:=1; end;
procedure TForm1.ComboBox4Change(Sender: TObject); begin if ComboBox4.Text='Влево' then s2:=-1
else s2:=1; end;
procedure TForm1.ComboBox5Change(Sender: TObject); begin if ComboBox5.Text='Влево' then s3:=-1
else s3:=1; end;
procedure TForm1.ComboBox6Change(Sender: TObject); begin m:=0.001; if ComboBox6.Text='м' then m:=0.001; if ComboBox6.Text='см' then m:=0.0000001; if ComboBox6.Text='мм' then m:=0.000000001;
if ComboBox6.Text='м' then begin Form1.Label7.Caption:='метрах'; Form1.Label16.Left:=672; end;
if ComboBox6.Text='см' then begin Form1.Label7.Caption:='сантиметрах'; Form1.Label16.Left:=704; end;
if ComboBox6.Text='мм' then begin Form1.Label7.Caption:='миллиметрах'; Form1.Label16.Left:=704; end;
end;
procedure ed1; var l,gor:real; begin l:=strtoint(form1.Edit1.Text); gor:=(440/l); d12:=(gor*l); end;
procedure ed2; var d1,d2,gor,l,l1,l2,l4,l5:real; begin l1:=strtoint(form1.Edit1.Text); l2:=strtoint(form1.Edit2.Text); l4:=strtoint(form1.Edit4.Text); l5:=strtoint(form1.Edit5.Text); if l4>l5 then begin
d1:=50;
d2:=(50/l4)*l5;
end; if l4<l5 then begin
d1:=(50/l5)*l4;
d2:=50;
end; l:=l1+l2; gor:=(440/l); d12:=(gor*l1); d22:=(gor*l); r11:=(55-d1/2); r12:=(55+d1/2); r21:=(55-d2/2); r22:=(55+d2/2)
end;
procedure ed3; var d1,d2,d3,l,l1,l2,l3,l4,l5,l6,gor:real; begin l1:=strtoint(form1.Edit1.Text); l2:=strtoint(form1.Edit2.Text); l3:=strtoint(form1.Edit3.Text); l4:=strtoint(form1.Edit4.Text); l5:=strtoint(form1.Edit5.Text); l6:=strtoint(form1.Edit6.Text); if (l4>l5) and (l4>l6) then begin
d1:=50;
d2:=((50/l4)*l5);
d3:=((50/l4)*l6);
end; if (l4<l5) and (l5>l6) then begin
d1:=((50/l5)*l4);
d2:=50;
d3:=((50/l5)*l6);
end; if (l4<l6) and (l5<l6) then begin
d1:=((50/l6)*l4);
d2:=((50/l6)*l5);
d3:=50;
end; l:=l1+l2+l3; gor:=(440/l); d12:=(gor*l1); d22:=(gor*l2)+d12; d32:=(gor*l); r11:=(55-d1/2); r12:=(55+d1/2); r21:=(55-d2/2); r22:=(55+d2/2); r31:=(55-d3/2); r32:=(55+d3/2);
end;
procedure si1; var l,l1,l2,l3,l7:real; begin l1:=(strtofloat(Form1.Edit1.Text)); l7:=(strtofloat(Form1.Edit7.Text)); if a=1 then l:=l1; if a=2 then begin
l2:=(strtofloat(Form1.Edit2.Text));
l:=l1+l2;
end; if a=3 then begin
l2:=(strtofloat(Form1.Edit2.Text));
l3:=(strtofloat(Form1.Edit3.Text));
l:=l1+l2+l3;
end; p1:=((440/l)*l7);
f1:=strtofloat(Form1.Edit10.Text)*s1;
sil7:=abs(f1);
sil7:=(70/sil7)*f1;
end;
procedure si2; var l,l1,l2,l3,l7,l8,l10,l11,gor:real; begin l1:=(strtofloat(Form1.Edit1.Text)); l7:=(strtofloat(Form1.Edit7.Text)); l8:=(strtofloat(Form1.Edit8.Text)); l10:=(strtofloat(Form1.Edit10.Text)); l11:=(strtofloat(Form1.Edit11.Text)); if l10>l11 then begin
z1:=70;
z2:=((70/l10)*l11);
end; if l10=l11 then begin
z1:=70;
z2:=70;
end; if l10<l11 then begin
z1:=((70/l11)*l10);
z2:=70;
end; if a=1 then l:=l1; if a=2 then begin
l2:=(strtofloat(Form1.Edit2.Text));
l:=l1+l2;
end; if a=3 then begin
l2:=(strtofloat(Form1.Edit2.Text));
l3:=(strtofloat(Form1.Edit3.Text));
l:=l1+l2+l3;
end;
gor:=(440/l); p1:=(gor*l7); p2:=(gor*l8);
end;
procedure si3; var mas:array[1..3] of real; per,l,l1,l2,l3,l7,l8,l9,l10,l11,l12,gor:real; i,ii:integer; begin l1:=(strtofloat(Form1.Edit1.Text)); l7:=(strtofloat(Form1.Edit7.Text)); l8:=(strtofloat(Form1.Edit8.Text)); l9:=(strtofloat(Form1.Edit9.Text)); l10:=(strtofloat(Form1.Edit10.Text)); l11:=(strtofloat(Form1.Edit11.Text)); l12:=(strtofloat(Form1.Edit12.Text));
mas[1]:=l10; mas[2]:=l11; mas[3]:=l12;
for ii:=1 to 3 do
for i:=1 to 2 do
if mas[i]<>0 then
if mas[i]>mas[i+1] then
begin
per:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=per;
end; z1:=((70/mas[3])*l10); z2:=((70/mas[3])*l11); z3:=((70/mas[3])*l12);
if a=1 then l:=l1; if a=2 then begin
l2:=(strtofloat(Form1.Edit2.Text));
l:=l1+l2;
end; if a=3 then begin
l2:=(strtofloat(Form1.Edit2.Text));
l3:=(strtofloat(Form1.Edit3.Text));
l:=l1+l2+l3;
end;
gor:=(440/l); p1:=(gor*l7); p2:=(gor*l8); p3:=(gor*l9); end;
procedure obr2; var sil:array[1..2] of real; i,ii:integer; per:real; begin if b=2 then begin
si2;
i1:=469;
if p1>p2 then begin
i2:=29+p1;
i3:=29+p2;
end;
if p1<p2 then begin
i2:=29+p2;
i3:=29+p1;
end;
if p1=p2 then begin
i2:=29+p1;
i3:=29+p2;
end;
end;
f1:=(strtofloat(Form1.Edit11.Text)*s2+strtofloat(Form1.Edit10.Text)*s1); f2:=strtofloat(Form1.Edit11.Text)*s2;
sil[1]:=abs(f1); sil[2]:=abs(f2);
for ii:=1 to 2 do
for i:=1 to 1 do
if sil[i]<>0 then
if sil[i]>sil[i+1] then
begin
per:=sil[i];
sil[i]:=sil[i+1];
sil[i+1]:=per;
end;
sil8[1]:=(70/sil[2])*f1; sil8[2]:=(70/sil[2])*f2; end;
procedure obr3; var mas:array[1..3] of real; sil:array[1..3] of real; per:real; i,ii:integer; begin if b=3 then begin si3; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+p3;
for ii:=1 to 3 do
for i:=1 to 2 do
if mas[i]<>0 then
if mas[i]>mas[i+1] then
begin
per:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=per;
end; i1:=469; i2:=(mas[3]); i3:=(mas[2]); i4:=(mas[1]); f1:=(strtofloat(Form1.Edit12.Text)*s3+strtofloat(Form1.Edit11.Text)*s2+strtofloat(Form1.Edit10.Text)*s1); f2:=(strtofloat(Form1.Edit12.Text)*s3+strtofloat(Form1.Edit11.Text)*s2); f3:=(strtofloat(Form1.Edit12.Text)*s3); sil[1]:=abs(f1); sil[2]:=abs(f2); sil[3]:=abs(f3);
for ii:=1 to 3 do
for i:=1 to 2 do
if sil[i]<>0 then
if sil[i]>sil[i+1] then
begin
per:=sil[i];
sil[i]:=sil[i+1];
sil[i+1]:=per;
end;
sil9[1]:=(70/sil[3])*f1; sil9[2]:=(70/sil[3])*f2; sil9[3]:=(70/sil[3])*f3;
end; end;
procedure obr4; begin if (a=2) and (b=1) then begin
ed2;
si1;
i1:=29+d22;
if p1>d12 then begin
i2:=29+p1;
i3:=29+d12;
end;
if p1<d12 then begin
i2:=29+d12;
i3:=29+p1;
end;
if p1=d12 then begin
i2:=29+p1;
i3:=29+d12;
end;
end; end;
procedure obr5; var mas:array[1..3] of real; per:real; i,ii:integer; begin if (a=2) and (b=2) then begin ed2; si2; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+d12;
for ii:=1 to 3 do
for i:=1 to 2 do
if mas[i]<>0 then
if mas[i]>mas[i+1] then
begin
per:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=per;
end; i1:=29+d22; i2:=mas[3]; i3:=mas[2]; i4:=mas[1];
end; end;
procedure obr6; var mas:array[1..4] of real; per:real; i,ii:integer; begin if (a=2) and (b=3) then begin si3; ed2; i1:=29+d22; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+p3; mas[4]:=29+d12;
for ii:=1 to 4 do
for i:=1 to 3 do
if mas[i]<>0 then
if mas[i]>mas[i+1] then
begin
per:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=per;
end; i2:=mas[4]; i3:=mas[3]; i4:=mas[2]; i5:=mas[1]; end; end;
procedure obr7; var mas:array[1..3] of real; per:real; i,ii:integer; begin if (a=3) and (b=1) then begin ed3; si1; i1:=29+d32; mas[1]:=29+d12; mas[2]:=29+d22; mas[3]:=29+p1;
for ii:=1 to 3 do
for i:=1 to 2 do
if mas[ii]<>0 then
if mas[ii]>mas[ii+1] then
begin
per:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=per;
end; i2:=mas[3]; i3:=mas[2]; i4:=mas[1];
end; end;
procedure obr8; var mas:array[1..4] of real; per:real; i,ii:integer; begin if (a=3) and (b=2) then begin ed3; si2; i1:=29+d32; mas[1]:=29+d12; mas[2]:=29+d22; mas[3]:=29+p1; mas[4]:=29+p2;
for ii:=1 to 4 do
for i:=1 to 3 do
if mas[i]<>0 then
if mas[i]>mas[i+1] then
begin
per:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=per;
end; i2:=mas[4]; i3:=mas[3]; i4:=mas[2]; i5:=mas[1]; end; end;
procedure obr9; var mas:array[1..5] of real; per:real; i,ii:integer; begin if (a=3) and (b=3) then begin ed3; si3; i1:=d32+29; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+p3; mas[4]:=29+d12; mas[5]:=29+d22;
for ii:=1 to 5 do
for i:=1 to 4 do
if mas[i]<>0 then
if mas[i]>mas[i+1] then
begin
per:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=per;
end; i2:=mas[5]; i3:=mas[4]; i4:=mas[3]; i5:=mas[2]; i6:=mas[1];
end; end;
procedure epi1; var mash:array[1..2] of real; mas:real; per,l10:real; i,ii:integer; begin
ep11[1]:=strtofloat(Form1.Edit1.Text); ep11[2]:=strtofloat(Form1.Edit7.Text);
l10:=strtofloat(Form1.Edit10.Text);
u1:=strtofloat(Form1.Edit4.Text);
if ep11[2]>ep11[1] then u2:=0; if ep11[2]<=ep11[1] then u2:=strtofloat(Form1.Edit4.Text);
for i:=1 to 2 do ep12[i]:=59+(440/ep11[1])*ep11[i];
if ep11[1]>ep11[2] then mas:=0; if ep11[2]>=ep11[1] then mas:=(l10*s1)/u2;
mash[1]:=abs((l10*s1)/u1); mash[2]:=abs(mas);
for ii:=1 to 2 do
for i:=1 to 1 do
if mash[i]<>0 then
if mash[i]>mash[i+1] then
begin
per:=mash[i];
mash[i]:=mash[i+1];
mash[i+1]:=per; end;
ep13[1]:=(70/mash[2])*mas; ep13[2]:=(70/mash[2])*((l10*s1)/u2);
pos1[1]:=abs(mas); pos1[2]:=abs((l10*s1)/u2);
masif1[1]:=(mas); masif1[2]:=((l10*s1)/u2);
for ii:=1 to 2 do
for i:=1 to 1 do
if ep11[i]<>0 then
if ep11[i]>ep11[i+1] then
begin
per:=ep11[i];
ep11[i]:=ep11[i+1];
ep11[i+1]:=per;
per:=ep12[i];
ep12[i]:=ep12[i+1];
ep12[i+1]:=per;
per:=ep13[i];
ep13[i]:=ep13[i+1];
ep13[i+1]:=per;
per:=masif1[i];
masif1[i]:=masif1[i+1];
masif1[i+1]:=per;
per:=pos1[i];
pos1[i]:=pos1[i+1];
pos1[i+1]:=per;
end;
masif1[1]:=masif1[1]*ep11[1]; masif1[2]:=masif1[1]+(masif1[2]*(ep11[2]-ep11[1]));
for i:=1 to 2 do chis1[i]:=masif1[i];
for i:=1 to 2 do mash[i]:=abs(masif1[i]);
for ii:=1 to 2 do
for i:=1 to 1 do
if mash[i]<>0 then
if mash[i]>mash[i+1] then
begin
per:=mash[i];
mash[i]:=mash[i+1];
mash[i+1]:=per; end;
for i:=1 to 2 do masif1[i]:=((70/mash[2])*masif1[i]); end;
procedure epi2; var mash:array[1..3] of real; mas:real; per,l10,l11:real; i,ii:integer; begin
ep21[1]:=strtofloat(Form1.Edit1.Text); ep21[2]:=strtofloat(Form1.Edit7.Text); ep21[3]:=strtofloat(Form1.Edit8.Text);
l11:=strtofloat(Form1.Edit11.Text); l10:=strtofloat(Form1.Edit10.Text);
u1:=strtofloat(Form1.Edit4.Text);
if ep21[2]>ep21[1] then u2:=0; if ep21[2]<=ep21[1] then u2:=strtofloat(Form1.Edit4.Text); if ep21[3]>ep21[1] then u3:=0; if ep21[3]<=ep21[1] then u3:=strtofloat(Form1.Edit4.Text);
for i:=1 to 3 do ep22[i]:=59+(440/ep21[1])*ep21[i];
if ep21[1]>ep21[3] then mas:=0; if (ep21[3]>=ep21[1]) and (ep21[2]<ep21[1]) then mas:=(l11*s2)/u1;
mash[1]:=abs((l10*s1)+(l11*s2))/u2; mash[2]:=abs((l11*s2)/u3); mash[3]:=abs(mas);
for ii:=1 to 3 do
for i:=1 to 2 do
if mash[i]<>0 then
if mash[i]>mash[i+1] then
begin
per:=mash[i];
mash[i]:=mash[i+1];
mash[i+1]:=per; end;
ep23[1]:=(70/mash[3])*mas; ep23[2]:=(70/mash[3])*(((l10*s1)+(l11*s2))/u2); ep23[3]:=(70/mash[3])*((l11*s2)/u3);
pos2[1]:=abs(mas); pos2[2]:=abs(((l10*s1)+(l11*s2))/u2); pos2[3]:=abs((l11*s2)/u3);
masif2[1]:=(mas); masif2[2]:=(((l10*s1)+(l11*s2))/u2); masif2[3]:=((l11*s2)/u3);
for ii:=1 to 3 do
for i:=1 to 2 do
if ep21[i]<>0 then
if ep21[i]>ep21[i+1] then
begin
per:=ep21[i];
ep21[i]:=ep21[i+1];
ep21[i+1]:=per;
per:=ep22[i];
ep22[i]:=ep22[i+1];
ep22[i+1]:=per;
per:=ep23[i];
ep23[i]:=ep23[i+1];
ep23[i+1]:=per;
per:=masif2[i];
masif2[i]:=masif2[i+1];
masif2[i+1]:=per;
per:=pos2[i];
pos2[i]:=pos2[i+1];
pos2[i+1]:=per;
end;
masif2[1]:=masif2[1]*ep21[1]; masif2[2]:=masif2[1]+(masif2[2]*(ep21[2]-ep21[1])); masif2[3]:=masif2[2]+(masif2[3]*(ep21[3]-ep21[2]));
for i:=1 to 3 do chis2[i]:=masif2[i];
for i:=1 to 3 do mash[i]:=abs(masif2[i]);
for ii:=1 to 3 do
for i:=1 to 2 do
if mash[i]<>0 then
if mash[i]>mash[i+1] then
begin
per:=mash[i];
mash[i]:=mash[i+1];
mash[i+1]:=per; end;
for i:=1 to 3 do masif2[i]:=((70/mash[3])*masif2[i]); end;
procedure epi3; var mash:array[1..4] of real; mas:real; per,l10,l11,l12:real; i,ii:integer; begin
ep31[1]:=strtofloat(Form1.Edit1.Text); ep31[2]:=strtofloat(Form1.Edit7.Text); ep31[3]:=strtofloat(Form1.Edit8.Text); ep31[4]:=strtofloat(Form1.Edit9.Text);
l10:=strtofloat(Form1.Edit10.Text); l11:=strtofloat(Form1.Edit11.Text); l12:=strtofloat(Form1.Edit12.Text);
u1:=strtofloat(Form1.Edit4.Text);
if ep31[2]<=ep31[1] then u2:=strtofloat(Form1.Edit4.Text); if ep31[3]<=ep31[1] then u3:=strtofloat(Form1.Edit4.Text); if ep31[4]<=ep31[1] then u4:=strtofloat(Form1.Edit4.Text);
for i:=1 to 4 do ep32[i]:=59+(440/ep31[1])*ep31[i];
if ep31[1]<ep31[4] then mas:=0 else mas:=(l12*s3)/u1;
mash[1]:=abs((l11*s2)+(l12*s3))/u3; mash[2]:=abs((l12*s3)/u4); mash[3]:=abs(mas); mash[4]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u2);
for ii:=1 to 4 do
for i:=1 to 3 do
if mash[i]<>0 then
if mash[i]>mash[i+1] then
begin
per:=mash[i];
mash[i]:=mash[i+1];
mash[i+1]:=per; end;
ep33[1]:=(70/mash[4])*mas; ep33[2]:=(70/mash[4])*(((l10*s1)+(l11*s2)+(l12*s3))/u2); ep33[3]:=(70/mash[4])*(((l11*s2)+(l12*s3))/u3); ep33[4]:=(70/mash[4])*((l12*s3)/u4);
pos3[1]:=abs(mas); pos3[2]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u2); pos3[3]:=abs(((l11*s2)+(l12*s3))/u3); pos3[4]:=abs((l12*s3)/u4);
masif3[1]:=(mas); masif3[2]:=(((l10*s1)+(l11*s2)+(l12*s3))/u2); masif3[3]:=(((l11*s2)+(l12*s3))/u3); masif3[4]:=((l12*s3)/u4);
for ii:=1 to 4 do
for i:=1 to 3 do
if ep31[i]<>0 then
if ep31[i]>ep31[i+1] then
begin
per:=ep31[i];
ep31[i]:=ep31[i+1];
ep31[i+1]:=per;
per:=ep32[i];
ep32[i]:=ep32[i+1];
ep32[i+1]:=per;
per:=ep33[i];
ep33[i]:=ep33[i+1];
ep33[i+1]:=per;
per:=masif3[i];
masif3[i]:=masif3[i+1];
masif3[i+1]:=per;
per:=pos3[i];
pos3[i]:=pos3[i+1];
pos3[i+1]:=per;
end;
masif3[1]:=masif3[1]*ep31[1]; masif3[2]:=masif3[1]+(masif3[2]*(ep31[2]-ep31[1])); masif3[3]:=masif3[2]+(masif3[3]*(ep31[3]-ep31[2])); masif3[4]:=masif3[3]+(masif3[4]*(ep31[4]-ep31[3]));
for i:=1 to 4 do chis3[i]:=masif3[i];
for i:=1 to 4 do mash[i]:=abs(masif3[i]);
for ii:=1 to 4 do