of double;// Кутова швидкість
wcp: double;// Середня швидкість на відрізку
t: array [1..100] of double;// Час: array [1..100] of double;// Прискорення: double;// Значення інтеграла
Tn: double;// Швидкодію
dfi: double;// Крок кута
fit: double;// Повний кут гальмування
implementation
{$ R * .dfm} M (fi: real): real;:=0.4;:=Mo + Exp (fi * ln (c)) + sqrt (fi) ;; TForm1. Button2Click (Sender: TObject) ;. Terminate ;; TForm1.Button1Click (Sender: TObject); i: integer ;: double; .Clear; .Lines.Add ( Розгін );
//зчитування переменни' з Едіт
Jo:=StrToFloat (Edit1.Text);
Mo:=StrToFloat (Edit2.Text);:=StrToFloat (Edit3.Text);:=StrToFloat (Edit5.Text);:=StrToInt (Edit6.Text);
//розрахунок кроку
dfi:=fip/N;
//перше положення
fi [1]:=0;
w [1]:=0;
t [1]:=0;
e [1]:=(M (fi [1]) - Mc)/Jo;
//положення з 2 і до N + 1
for i:=2 to N + 1 do [i]:=fi [i - 1] + dfi;:=(M (fi [i]) - Mc + M (fi [i- 1]) - Mc)/2 * dfi; [i]:=sqrt (2/Jo * (Jo * sqr (w [i - 1])/2 + int));:=(w [i] + w [i - 1])/2; [i]:=t [i - 1] + dfi/wcp; [i]:=(w [i] -w [i - 1])/(t [i]-t [i - 1]) ;;:=Jo * sqr (w [N + 1])/(2 * Mc); [N + 1]:=-Mc/Jo;:=fit/N; i: =1 to N do.Lines.Add ( i= + IntToStr (i) + ф= + FloatToStrF (fi [i], ffFixed, 5,2)
+ w= + FloatToStrF (w [i], ffFixed, 5,2) + e= + FloatToStrF (e [i], ffFixed, 5,2)
+ t= + FloatToStrF (t [i], ffFixed, 5,2));:=t [N + 1] ;. Lines.Add ( Tp=T [N + 1]= + FloatToStrF ( Tn, ffFixed, 5,2));
//гальмування
Memo1.Lines.Add ( Гальмування );
Memo1.Lines.Add ( фт= + FloatToStrF (fit, ffFixed, 5,2));
//кроки гальмування з N + 2 до 2N + 1
for i:=N + 2 to 2 * N + 1 do [i]:=fi [i - 1] + dfi;:=2/Jo * (Jo * sqr (w [i- 1])/2-Mc * dfi); tmp lt; 0 then tmp:=0; [i]:=sqrt (tmp);:=(w [i] + w [i - 1])/2; [ i]:=t [i - 1] + (fi [i] -fi [i - 1])/wcp; [i]:=(w [i] -w [i - 1])/(t [i ] -t [i - 1]) ;; i:=N + 1 to 2 * N + 1 do.Lines.Add ( i= + IntToStr (i) + ф= + FloatToStrF ( fi [i], ffFixed, 5,2)
+ w= + FloatToStrF (w [i], ffFixed, 5,2) + e= + FloatToStrF (e [i], ffFixed, 5,2)
+ t= + FloatToStrF (t [i], ffFixed, 5,2));:=t [2 * N + 1] -t [N + 1] ;. Lines.Add ( Tт= + FloatToStrF (Tn, ffFixed, 5,2)) ;. Enabled:=true ;; TForm1.Button3Click (Sender: TObject); i: integer; .BottomAxis.Minimum:=- 0.1; .BottomAxis.Maximum:=fi [2 * N + 1] +0.1; .LeftAxis.Minimum:=e [2 * N + 1] - 0.1; .LeftAxis.Maximum:=e [1] + 0.1; i:=1 to 2 * N + 1 do.AddXY(fi[i],w[i],laquo;raquo;,clTeeColor);.AddXY(fi[i],e[i],laquo;raquo;,clTeeColor);.AddXY(fi[i],t[i],laquo;raquo;,clTeeColor);.