, betm: real; rr, xx: real; tp: integer): real; sum: real;, bet: real;: integer;:=0; V:=betm-betn; i:=1 to N do:=betn + (betm-betn) * M [i, 1]; (bet>=betn) and (bet <= betm) thentp=0 then sum:= sum + GetJz (rr, xx, bet, tp) * R * rr / sqrt (abs (sqr (R)-sqr (rr))) if tp=1 then sum:=sum + GetJz (rr, xx, bet, tp) * rr / sin (alf);;:=sum * V / N;:=sum;;
TForm1.Integral2 (rrn, rrm, xx: real; tp: integer; p: boolean): real; i: integer;, V, bp, Xd, rr: real;:=0; V:=rrm-rrn; i:=1 to N do:=rrn + (rrm-rrn) * M [i, 1]; (rr>=rrn) and (rr <= rrm) thenp thenxx=0 then bp: =0if tp=1 then bp:=arccos (Xp / xx) if tp=0 then:=(R * (R / sqrt (sqr (R)-sqr (rr)) - 1)-Z0) * sqrt (sqr (R)-sqr (rr)) / rr; Xd> 0 then bp:=arccos(Xd/xx)bp:=arcsin(-Xd/xx)+PI/2;;bp:=PI;:=sum+Integral1(-bp,bp,rr,xx,tp);;;:=sum*V/N;:=sum;;
TForm1.GetJ (xx: real): real; Max=5; i: integer;, a2, J, Rp1, Rp2, Rps: real;:=0; xx=R then:= 0; a2:=0:=(sqr (xx) * (R + Z0)-R * xx * sqrt (sqr (xx) +2 * R * Z0 + sqr (Z0))) / (sqr (xx) -
sqr (R));:=(sqr (xx) * (R + Z0) + R * xx * sqrt (sqr (xx) +2 * R * Z0 + sqr (Z0)) ) / (sqr (R) -
sqr (xx));;:=R * sqrt (1-sqr (R / (R + Z0-a1))); Rp1> Rm then Rp1:=Rm;:=R * sqrt (1-sqr (R / (R + Z0 + a2))); Rp2> Rm then Rp2:=Rm;:=R * cos (alf); Rps> Rm then Rps:=Rm; vrnt=1 thenxx < Xp then
J:=J + Integral2 (0, Rp1, xx, 0, False) + Integral2 (Rp1, Rp2, xx, 0, True)
J:=J + Integral2 (0, Rp1, xx, 0, False) + Integral2 (Rp1, Rps, xx, 0, True) + Integral2 (R
ps, Rm, xx, 1, True); if vrnt=2 thenxx
J:=J + Integral2 (0, Rps, xx, 0, False) + Integral2 (Rps, Rm, xx, 1, False)
J:=J + Integral2 (0, Rp1, xx, 0, False) + Integral2 (Rp1, Rps, xx, 0, True) + Integral2 (R
ps, Rm, xx, 1, True);;:=2 * PI * J;;
TForm1.GetPrfgrm: Tprfgrm; e=0.05; step=0.1; Point=record, y: real;: real;; prfgrmr: array [-Np .. Np] of Point;: Tprfgrm; : integer;, max, process: real;:=0; i:=0 to Np do [i]. x:=0.1 * i; prfgrmr [-i]. x:=-
prfgrmr [i]. x; prfgrmr [i]. y:=GetJ (prfgrmr [i]. x); prfgrmr [i]. y> max then max:=prfgrmr [i]. y; [-i]. y:=prfgrmr [i]. y;. memo1.Lines.add (floattostr (trunc (100 * i / Np)) +" %");; i: =-Np to Np do [i]. x:=round (xOy.x + koefx * prfgrmr [i]. x); prfgrm [i]. y:=round (xOy.y-
koefy*prfgrmr[i].y/max);:=50*i/Np+50;form1.Memo1.Lines.Add(floattostr(trunc(process))+'
% ');;:=prfgrm;;
TForm1.Button1Click (Sender: TObject); i: integer;:=StrToFloat (CombZ0.text); combU.ItemIndex=0 then U:=0.1; combU.Itemindex=1 then U:= 0.01;:=StrToFloat (CombAlf.Text) * PI/180; alf:=alf / 2;
:=abs (R + Z0-R/sin (alf)) * tan (alf); (R + Z0) <(R / sin (alf)) then vrnt:=1vrnt: =2; Image1.Canvas do.Color:=RGB (0,0,250);// Профілограмма.Width:=2; prfgrm:=GetPrfgrm; Polyline (prfgrm);;;
TForm1.FormCreate (Sender: TObject); i, j: integer; i:=1 to N doj:=1 to 2 do [i, j]:=random;. x:=round (Image1.Width / 2); xOy.Y:=Image1.Height - 15;:=trunc ((xOy.y - 20)); koefx:=trunc ((Image1.Width - 40) / round (Np / 5 ));; form1.Memo1.Text:=«»;;
TForm1.Button2Click (Sender: TObject);; form1.memo1.Text:=«»;;
TFo...