unit Main;
{$N+}
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Buttons, Menus, ComCtrls, OleCtrls;

type
  TMainForm = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    MainMenu: TMainMenu;
    File1: TMenuItem;
    New1: TMenuItem;
    N1: TMenuItem;
    Exit1: TMenuItem;
    ShapeLime: TShape;
    ShapeRed: TShape;
    Go: TBitBtn;
    SaveDialog: TSaveDialog;
    OpenDialog: TOpenDialog;
    Label2: TLabel;
    EditDifferent: TEdit;
    PageControl1: TPageControl;
    MainTaon: TTabSheet;
    RedTaon: TTabSheet;
    Label3: TLabel;
    EditA1: TEdit;
    Label4: TLabel;
    EditB1: TEdit;
    Label5: TLabel;
    EditX1: TEdit;
    Label6: TLabel;
    EditY1: TEdit;
    Label7: TLabel;
    EditSpeedX1: TEdit;
    Label8: TLabel;
    EditSpeedY1: TEdit;
    Label9: TLabel;
    EditA2: TEdit;
    Label10: TLabel;
    EditB2: TEdit;
    Label11: TLabel;
    EditX2: TEdit;
    Label12: TLabel;
    EditY2: TEdit;
    Label13: TLabel;
    EditSpeedX2: TEdit;
    Label14: TLabel;
    EditSpeedY2: TEdit;
    NewDiff: TButton;
    ShowTime: TCheckBox;
    Refresh: TSpeedButton;
    Open1: TMenuItem;
    Save1: TMenuItem;
    BlueTaon: TTabSheet;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    EditA3: TEdit;
    EditB3: TEdit;
    EditX3: TEdit;
    EditY3: TEdit;
    EditSpeedX3: TEdit;
    EditSpeedY3: TEdit;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    EditC1: TEdit;
    EditD1: TEdit;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    EditC2: TEdit;
    Label24: TLabel;
    EditD2: TEdit;
    Label25: TLabel;
    Label26: TLabel;
    EditC3: TEdit;
    EditD3: TEdit;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    Label43: TLabel;
    Label44: TLabel;
    Label45: TLabel;
    Label46: TLabel;
    Label47: TLabel;
    Label48: TLabel;
    Label49: TLabel;
    Label50: TLabel;
    Label51: TLabel;
    Label52: TLabel;
    Label53: TLabel;
    Label54: TLabel;
    Label55: TLabel;
    Label56: TLabel;
    EditA4: TEdit;
    EditB4: TEdit;
    EditC4: TEdit;
    EditD4: TEdit;
    EditX4: TEdit;
    EditSpeedX4: TEdit;
    EditY4: TEdit;
    EditSpeedY4: TEdit;
    EditA5: TEdit;
    EditB5: TEdit;
    EditC5: TEdit;
    EditD5: TEdit;
    EditX5: TEdit;
    EditSpeedX5: TEdit;
    EditY5: TEdit;
    EditSpeedY5: TEdit;
    EditA6: TEdit;
    EditB6: TEdit;
    EditC6: TEdit;
    EditD6: TEdit;
    EditX6: TEdit;
    EditSpeedX6: TEdit;
    EditY6: TEdit;
    EditSpeedY6: TEdit;
    EditX7: TEdit;
    EditA7: TEdit;
    EditSpeedX7: TEdit;
    EditB7: TEdit;
    EditSpeedY7: TEdit;
    EditY7: TEdit;
    Label57: TLabel;
    Label58: TLabel;
    EditC7: TEdit;
    EditD7: TEdit;
    RadioGroup1: TRadioGroup;
    System2: TRadioButton;
    System3: TRadioButton;
    System7: TRadioButton;
    LTime: TLabel;
    Label59: TLabel;
    System5: TRadioButton;
    System6: TRadioButton;
    System4: TRadioButton;
    System1: TRadioButton;
    TableOfData: TRadioButton;
    Panel2: TPanel;
    RadioGroup2: TRadioGroup;
    E: TRadioButton;
    PE: TRadioButton;
    PES: TRadioButton;
    PESE: TRadioButton;
    System8: TRadioButton;
    System9: TRadioButton;
    Panel3: TPanel;
    ScaleOfScreen: TRadioGroup;
    Sc1: TRadioButton;
    Sc2: TRadioButton;
    Sc3: TRadioButton;
    Sc4: TRadioButton;
    Sc5: TRadioButton;
    Sc6: TRadioButton;
    RadioButton1: TRadioButton;
    Panel4: TPanel;
    RadioGroup3: TRadioGroup;
    RadioGroup4: TRadioGroup;
    Brake1: TRadioButton;
    Brake4: TRadioButton;
    Brake5: TRadioButton;
    Brake2: TRadioButton;
    Brake3: TRadioButton;
    Sc7: TRadioButton;
    procedure Exit1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure GoClick(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure RefreshClick(Sender: TObject);
    procedure NewDiffClick(Sender: TObject);
    procedure Save1Click(Sender: TObject);
    procedure Open1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
//    procedure LTimeDblClick(Sender: TObject);
    private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.DFM}

const
     MaxPunkt = 7;
     Ls = 260;       // Smeschenie grafika sleva
     Ts = 260;       // Smeschenie grafika sverhu
     MaxDx = 1000;
var
    x,y
  :array[1..MaxPunkt] of extended;

    A,B,C,D,        { Parametr }
    Xo,Xn,
    Yo,Yn,      { Xo - sootvetstvuet x }
    Vo,Vn,
    Uo,Un       { To ze i po skorostjam }
                :array[1..MaxPunkt] of extended;

    xx,yy       :array[1..MaxPunkt] of integer;

    xi,yi,      // temp koord.
    dt,dx          // different
                :extended;

    x0,y0
  :integer;

    Time        // Current time of System's Interrupt
                : longint;

    Stop        // Process stopped
                : boolean;

type
    AtomType = record
    Ai, Bi, Ci, Di,
    Xi, Yi,
    Vi, Ui
             :array[1..MaxPunkt] of extended;
    dti      :extended
    end;

    Atom = AtomType;

    FAtomType = file of AtomType;

var
   Two    :Atom;
   FTwo   :FAtomType;

// My procedures and functions

procedure ClearScreen;
begin
with MainForm do
with Canvas do
     begin
        Pen.Color:=clBlack;
        Brush.Color:=clBlack;
        Rectangle(Left,Top,Width,Height);
     end;
end;

procedure Poul;
var n:integer;

begin
with MainForm do
with Canvas do
     begin
     for n:=1 to MaxPunkt do
         begin
           if MainForm.Sc1.Checked then
              begin
                  xx[n]:=Round(52*X[n]);
                  yy[n]:=Round(52*Y[n]);
              end;

{**********
   for j:=1 to MaxPunkt do
       if j<>i then

*********  }
           if MainForm.Sc2.Checked then
              begin
              xx[n]:=Round(26*X[n]);
              yy[n]:=Round(26*Y[n]);
              end;
           if MainForm.Sc3.Checked then
              begin
              xx[n]:=Round(8.6667*X[n]);
              yy[n]:=Round(8.6667*Y[n]);
              end;
           if MainForm.Sc4.Checked then
              begin
              xx[n]:=Round(2.8889*X[n]);
              yy[n]:=Round(2.8889*Y[n]);
              end;
           if MainForm.Sc5.Checked then
              begin
              xx[n]:=Round(1*X[n]);
              yy[n]:=Round(1*Y[n]);
              end;
           if MainForm.Sc6.Checked then
              begin
              xx[n]:=Round(0.5*X[n]);
              yy[n]:=Round(0.5*Y[n]);
              end;
           if MainForm.Sc7.Checked then
              begin
              xx[n]:=Round(0.2*X[n]);
              yy[n]:=Round(0.2*Y[n]);
              end;
         A[1]:=StrToFloat(EditA1.Text);
         A[2]:=StrToFloat(EditA2.Text);
         A[3]:=StrToFloat(EditA3.Text);
         A[4]:=StrToFloat(EditA4.Text);
         A[5]:=StrToFloat(EditA5.Text);
         A[6]:=StrToFloat(EditA6.Text);
         A[7]:=StrToFloat(EditA7.Text);
//***********************************
            begin
              if n = 1 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clLime;
              if ((n = 1) and (A[1]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
              if n = 2 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clRed;
              if ((n = 2) and (A[2]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
              if n = 3 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clAqua;
              if ((n = 3) and (A[3]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
              if n = 4 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clLime;
              if ((n = 4) and (A[4]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
              if n = 5 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clRed;
              if ((n = 5) and (A[5]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
              if n = 6 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clAqua;
              if ((n = 6) and (A[6]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
              if n = 7 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clWhite;
              if ((n = 7) and (A[7]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
           end;
         end;
     end;
//*)
end;

function St(p,g:extended):extended;
begin
St:=exp(p*ln(g));
end;
procedure Game;
var
   i,j                    { Number of partikle }
                          :Longint;

   dXv, dYv,              { Prirashenie skorosti }
   dX, dY                 { Prirashenie koordinat }
                          :extended;
   function XUsko(im:integer):extended;
   var j:integer;
       Xia, pa23,pb2,pc2,pd2,pd2e,s :extended;
   begin
   Xia:=0;
   for j:=1 to MaxPunkt do
      if j<>i then
         begin //3
      s := Sqrt(Sqr(Xo[i]-Xo[j])+Sqr(Yo[i]-Yo[j]));
      pa23:=(0.945/0.1)*St(18,(0.945/0.1)*s)* (1+19*ln((0.945/0.1)*s))*St(-St(19,(0.945/0.1)*s),(0.945/0.1)*s)
      -125*St(-14,10)*(2.7/30)*75*St(-2,(2.7/30)*s)*(1-ln((2.7/30)*s))*St(75*St(-1,(2.7/30)*s),(2.7/30)*s);
      pb2:=-( St(-1,0.1*1.029/B[j])* St(-2,s)*(2.5- St(20,1.029/B[j]*s))*(1-ln(1.029/B[j]*s))-200*1.029/B[j]*St(18,1.029/B[j]*s)
      *ln(1.029/B[j]*s))*St((2.5-St(20,1.029/B[j]*s))*St(-1,0.1*1.029/B[j]*s),1.029/B[j]*s);
      pc2:=-( St(-1,0.1*1.029/C[j])* St(-2,s)*(2.5- St(20,1.029/C[j]*s))*(1-ln(1.029/C[j]*s))-200*1.029/C[j]*St(18,1.029/C[j]*s)
      *ln(1.029/C[j]*s))*St((2.5-St(20,1.029/C[j]*s))*St(-1,0.1*1.029/C[j]*s),1.029/C[j]*s);
      pd2:=-( St(-1,0.1*1.029/D[j])* St(-2,s)*(2.5- St(20,1.029/D[j]*s))*(1-ln(1.029/D[j]*s))-200*1.029/D[j]*St(18,1.029/D[j]*s)
      *ln(1.029/D[j]*s))*St((2.5-St(20,1.029/D[j]*s))*St(-1,0.1*1.029/D[j]*s),1.029/D[j]*s);

      if (s<(4*B[j])) then
         begin
            pd2e:= -2* St(-1,2.72)*St(-2,(4*B[j]-s))*A[j] * B[j] * exp(-2*St(-1,2.72)*B[j]/(4*B[j]-s));
         end;
      if (s>(4*B[j])) then
         begin
            pd2e:= 2* St(-1,2.72)*St(-2,(s-4*B[j]))*A[j] * B[j] * exp(-2*St(-1,2.72)*B[j]/(s-4*B[j]));
         end;

          if MainForm.System1.Checked then
             begin   //2
               if      j = 7 then
               Xia := Xia +
               (Xo[i]-Xo[j])/s *St(-2,s)*
               A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
               else
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System2.Checked then
             begin   //2
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System3.Checked then
             begin   //2
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System4.Checked then
             begin   //2
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
            if MainForm.System5.Checked then
             begin   //2
               if      j = 7 then
               Xia := Xia +
               (Xo[i]-Xo[j])/s *St(-2,s)*
               A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
               else
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System6.Checked then
             begin   //2
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
            if MainForm.System7.Checked then
             begin   //2
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2

            if MainForm.System8.Checked then
             begin   //2
               Xia := Xia -
               (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
                if MainForm.System9.Checked then
                begin   //2
                Xia := Xia -
                (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
                end;  //2
            if MainForm.TableOfData.Checked then
              begin
                if MainForm.E.Checked then
                begin   //2
                Xia := Xia -
                (Xo[i]-Xo[j])/s*St(-2,s)*A[j]*B[j]*exp(-B[j]/s);
                end;  //2
                if MainForm.PE.Checked then
                begin   //2
                Xia := Xia +
                (Xo[i]-Xo[j])/s *St(-2,s)*
                A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
                end;  //2
                if MainForm.PES.Checked then
                begin   //2
                Xia := Xia -
                (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
                end;  //2
                if MainForm.PESE.Checked then
                begin   //2
                Xia := Xia -
                (Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2e);
                end;  //2
              end;

         end; //3
   XUsko:=Xia;
   end;
//***************

   function YUsko(im:integer):extended;
   var j:integer;
       Yia, pa23,pb2,pc2,pd2,pd2e,s :extended;
   begin
   Yia:=0;

   for j:=1 to MaxPunkt do
       if j<>i then
        begin //3
      s := Sqrt(Sqr(Xo[i]-Xo[j])+Sqr(Yo[i]-Yo[j]));
      pa23:=(0.945/0.1)*St(18,(0.945/0.1)*s)* (1+19*ln((0.945/0.1)*s))*St(-St(19,(0.945/0.1)*s),(0.945/0.1)*s)
      -125*St(-14,10)*(2.7/30)*75*St(-2,(2.7/30)*s)*(1-ln((2.7/30)*s))*St(75*St(-1,(2.7/30)*s),(2.7/30)*s);
      pb2:=-( St(-1,0.1*1.029/B[j])* St(-2,s)*(2.5- St(20,1.029/B[j]*s))*(1-ln(1.029/B[j]*s))-200*1.029/B[j]*St(18,1.029/B[j]*s)
      *ln(1.029/B[j]*s))*St((2.5-St(20,1.029/B[j]*s))*St(-1,0.1*1.029/B[j]*s),1.029/B[j]*s);
      pc2:=-( St(-1,0.1*1.029/C[j])* St(-2,s)*(2.5- St(20,1.029/C[j]*s))*(1-ln(1.029/C[j]*s))-200*1.029/C[j]*St(18,1.029/C[j]*s)
      *ln(1.029/C[j]*s))*St((2.5-St(20,1.029/C[j]*s))*St(-1,0.1*1.029/C[j]*s),1.029/C[j]*s);
      pd2:=-( St(-1,0.1*1.029/D[j])* St(-2,s)*(2.5- St(20,1.029/D[j]*s))*(1-ln(1.029/D[j]*s))-200*1.029/D[j]*St(18,1.029/D[j]*s)
      *ln(1.029/D[j]*s))*St((2.5-St(20,1.029/D[j]*s))*St(-1,0.1*1.029/D[j]*s),1.029/D[j]*s);

          if MainForm.System1.Checked then
             begin   //2
               if      j = 7 then
               Yia := Yia +
               (Yo[i]-Yo[j])/s *St(-2,s)*
               A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
               else
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System2.Checked then
             begin   //2
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System3.Checked then
             begin   //2
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System4.Checked then
             begin   //2
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
            if MainForm.System5.Checked then
             begin   //2
               if      j = 7 then
               Yia := Yia +
               (Yo[i]-Yo[j])/s *St(-2,s)*
               A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
               else
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
          if MainForm.System6.Checked then
             begin   //2
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
            if MainForm.System7.Checked then
             begin   //2
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
            if MainForm.System8.Checked then
             begin   //2
               Yia := Yia -
               (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
             end;  //2
                if MainForm.System9.Checked then
                begin   //2
                Yia := Yia -
                (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
                end;  //2

            if MainForm.TableOfData.Checked then
             begin
                if MainForm.E.Checked then
                begin   //2
                Yia := Yia -
                (Yo[i]-Yo[j])/s*St(-2,s)*A[j]*B[j]*exp(-B[j]/s);
                end;  //2
                if MainForm.PE.Checked then
                begin   //2
                Yia := Yia +
                (Yo[i]-Yo[j])/s *St(-2,s)*
                A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
                end;  //2
                if MainForm.PES.Checked then
                begin   //2
                Yia := Yia -
                (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
                end;  //2
                if MainForm.PESE.Checked then
                begin   //2
                Yia := Yia -
                (Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2e);
                end;  //2
             end;
        end; //3
      YUsko:=Yia;
   end;
//***************
function Co :extended;
   begin
     if MainForm.Brake1.Checked  then
       Co:=1;
     if MainForm.Brake2.Checked  then
       Co:=0.99994999875;
     if MainForm.Brake3.Checked  then
       Co:=0.999499875;
     if MainForm.Brake4.Checked  then
       Co:=0.995;
     if MainForm.Brake5.Checked  then
       Co:=0.949;
   end;

begin { Game }
if MainForm.TableOfData.Checked then

   begin //1
   { Calculation of new value of koord and velo. }
        for i:=1 to MaxPunkt do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := Co*Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
        for i:=1 to MaxPunkt do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
if MainForm.System1.Checked then
   begin //1
   { Calculation of new value of koord and velo. }
   for i:=1 to (MaxPunkt-5) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
   for i:=1 to (MaxPunkt-5) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
if MainForm.System2.Checked then

   begin //1
   { Calculation of new value of koord and velo. }
   for i:=1 to (MaxPunkt-5) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
   for i:=1 to (MaxPunkt-5) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1

if MainForm.System3.Checked then

   begin //1
   { Calculation of new value of koord and velo. }
        for i:=1 to (MaxPunkt-4) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
        for i:=1 to (MaxPunkt-4) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
if MainForm.System4.Checked then

   begin //1
   { Calculation of new value of koord and velo. }
        for i:=1 to (MaxPunkt-3) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
        for i:=1 to (MaxPunkt-3) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
 

if MainForm.System5.Checked then
   begin //1
   { Calculation of new value of koord and velo. }
   for i:=1 to (MaxPunkt-1) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
   for i:=1 to (MaxPunkt-1) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
if MainForm.System6.Checked then
   begin //1
   { Calculation of new value of koord and velo. }
   for i:=1 to (MaxPunkt-1) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
   for i:=1 to (MaxPunkt-1) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
if MainForm.System7.Checked then
   begin //1
   { Calculation of new value of koord and velo. }
        for i:=1 to MaxPunkt do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
        for i:=1 to MaxPunkt do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
//****************
if MainForm.System8.Checked then

   begin //1
   { Calculation of new value of koord and velo. }
        for i:=1 to (MaxPunkt-5) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
        for i:=1 to (MaxPunkt-5) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1
if MainForm.System9.Checked then

   begin //1
   { Calculation of new value of koord and velo. }
        for i:=1 to (MaxPunkt-5) do
             begin
       // X
             dXv := XUsko(i) * dt;    // + velo
             Vn[i] := Co*Vn[i] + dXv;    // New x velo
             dX := Vn[i] * dt;        // + koord
              Xn[i] := Xn[i] + dX;     // New koordinat

       // Y
              dYv := YUsko(i) * dt;    // + velo
              Un[i] := {Co*}Un[i] + dYv;    // New x velo
              dY := Un[i] * dt;        // + koord
              Yn[i] := Yn[i] + dY;     // New koordinat

              end;

   { The new value send to Xo and Vo }
        for i:=1 to (MaxPunkt-5) do
       begin
       Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
       Yo[i]:=Yn[i]; Uo[i]:=Un[i];
       x[i]:=Xn[i];
       y[i]:=Yn[i];
       end;
     end;//1

//**********************
   inc(Time);
   if MainForm.ShowTime.Checked then
      MainForm.LTime.Caption:=IntToStr(Time);

   // Show result
   Poul;
   //
end;
procedure Eval;
begin
     repeat
     Game;
     Poul;
     Application.ProcessMessages;
     until Stop;
end;
//**************************************
// End procedures & functions

procedure TMainForm.Exit1Click(Sender: TObject);
begin
Close
end;

procedure TMainForm.FormCreate(Sender: TObject);
var n:integer;
begin
Left:=0;Top:=0;
Stop:=true;
// Input data default
//   if MainForm.System1.Checked then
//   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=0;

        A[2]:=2;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=0;

        A[3]:=2;
        B[3]:=0.6;
        C[3]:=0.424;
        D[3]:=0.848;
        x[3]:=-12.3;
        Xo[3]:=x[3];
        y[3]:=25.3;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=0;

        A[4]:=2;
        B[4]:=0.6;
        C[4]:=0.424;
        D[4]:=0.848;
        x[4]:=-11.7;
        Xo[4]:=x[4];
        y[4]:=24.7;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=0;

        A[5]:=2;
        B[5]:=0.6;
        C[5]:=0.424;
        D[5]:=0.848;
        x[5]:=-11.7;
        Xo[5]:=x[5];
        y[5]:=25.3;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=0;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=25;
        x[6]:=-12.3;
        Xo[6]:=x[6];
        y[6]:=2400.7;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=0;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//   end;
//************************
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);

EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);

EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);

EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);

EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);

EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
    begin
    Xn[n]:=Xo[n];
    Yn[n]:=Yo[n];
    Vn[n]:=Vo[n];
    Un[n]:=Uo[n];
    end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
end;

procedure TMainForm.GoClick(Sender: TObject);
begin
if not Stop
   then
       begin
       Go.Kind:=bkOK;
       Go.Caption:='Go';
       ShapeRed.Brush.Color:=clMaroon;
       ShapeLime.Brush.Color:=clLime;
       Refresh.Enabled:=true;
       Open1.Enabled:=true;
       Stop:=true;
       end
   else
       begin
       Go.Kind:=bkCancel;
       Go.Caption:='Stop';
       ShapeRed.Brush.Color:=clRed;
       ShapeLime.Brush.Color:=clGreen;
       Refresh.Enabled:=false;
       Open1.Enabled:=false;
       Stop:=false;
       Eval;
       end;
end;

procedure TMainForm.FormPaint(Sender: TObject);
begin
     ClearScreen;
     Poul;
end;

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Stop:=true;
end;

procedure TMainForm.RefreshClick(Sender: TObject);
var n:integer;
begin
// Input data default
//*************************
//**************************
   if MainForm.System1.Checked then
     begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-5;

        A[2]:=2;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-5;

        A[3]:=0;
        B[3]:=0.3;
        C[3]:=0.424;
        D[3]:=25;
        x[3]:=-12.3;
        Xo[3]:=x[3];
        y[3]:=2500.3;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=0;

        A[4]:=0;
        B[4]:=0.3;
        C[4]:=0.424;
        D[4]:=1.03;
        x[4]:=-1.454;
        Xo[4]:=x[4];
        y[4]:=1000.403;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=0;

        A[5]:=0;
        B[5]:=0.3;
        C[5]:=0.42395;
        D[5]:=1.03;
        x[5]:=-1.414;
        Xo[5]:=x[5];
        y[5]:=-1000.0175;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=0;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=1.03;
        x[6]:=-1.798;
        Xo[6]:=x[6];
        y[6]:=1050.158;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=0;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
   if MainForm.System2.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-5;

        A[2]:=6;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-5;

        A[3]:=0;
        B[3]:=0.3;
        C[3]:=0.424;
        D[3]:=1.03;
        x[3]:=4.47;
        Xo[3]:=x[3];
        y[3]:=1000.215;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=0;

        A[4]:=0;
        B[4]:=0.3;
        C[4]:=0.424;
        D[4]:=1.03;
        x[4]:=-1.454;
        Xo[4]:=x[4];
        y[4]:=1000.403;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=0;

        A[5]:=0;
        B[5]:=0.3;
        C[5]:=0.42395;
        D[5]:=1.03;
        x[5]:=-1.414;
        Xo[5]:=x[5];
        y[5]:=-1000.0175;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=0;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=1.03;
        x[6]:=-1.798;
        Xo[6]:=x[6];
        y[6]:=1050.158;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=0;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
//***********************
   end;
   if MainForm.System3.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-2;

        A[2]:=2;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-2;

        A[3]:=2;
        B[3]:=0.6;
        C[3]:=0.424;
        D[3]:=0.848;
        x[3]:=-12.3;
        Xo[3]:=x[3];
        y[3]:=25.3;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=-2;

        A[4]:=0;
        B[4]:=0.3;
        C[4]:=0.424;
        D[4]:=1.03;
        x[4]:=-1.454;
        Xo[4]:=x[4];
        y[4]:=1000.403;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=0;

        A[5]:=0;
        B[5]:=0.3;
        C[5]:=0.42395;
        D[5]:=1.03;
        x[5]:=-1.414;
        Xo[5]:=x[5];
        y[5]:=-1000.0175;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=0;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=1.03;
        x[6]:=-1.798;
        Xo[6]:=x[6];
        y[6]:=1050.158;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=0;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
   if MainForm.System4.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-2;

        A[2]:=2;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-2;

        A[3]:=2;
        B[3]:=0.6;
        C[3]:=0.424;
        D[3]:=0.848;
        x[3]:=-12.3;
        Xo[3]:=x[3];
        y[3]:=25.3;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=-2;

        A[4]:=2;
        B[4]:=0.6;
        C[4]:=0.424;
        D[4]:=0.848;
        x[4]:=-11.7;
        Xo[4]:=x[4];
        y[4]:=24.7;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=-2;

        A[5]:=0;
        B[5]:=0.3;
        C[5]:=0.42395;
        D[5]:=1.03;
        x[5]:=-1.414;
        Xo[5]:=x[5];
        y[5]:=-1000.0175;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=0;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=1.03;
        x[6]:=-1.798;
        Xo[6]:=x[6];
        y[6]:=1050.158;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=0;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
   if MainForm.System5.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-2;

        A[2]:=2;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-2;

        A[3]:=2;
        B[3]:=0.6;
        C[3]:=0.424;
        D[3]:=0.848;
        x[3]:=-12.3;
        Xo[3]:=x[3];
        y[3]:=25.3;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=-2;

        A[4]:=2;
        B[4]:=0.6;
        C[4]:=0.424;
        D[4]:=0.848;
        x[4]:=-11.7;
        Xo[4]:=x[4];
        y[4]:=24.7;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=-2;

        A[5]:=2;
        B[5]:=0.6;
        C[5]:=0.424;
        D[5]:=0.848;
        x[5]:=-11.7;
        Xo[5]:=x[5];
        y[5]:=25.3;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=-2;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=25;
        x[6]:=-12.3;
        Xo[6]:=x[6];
        y[6]:=2400.7;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=-5;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
   if MainForm.System6.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-2;

        A[2]:=2;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-2;

        A[3]:=2;
        B[3]:=0.6;
        C[3]:=0.424;
        D[3]:=0.848;
        x[3]:=-12.3;
        Xo[3]:=x[3];
        y[3]:=25.3;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=-2;

        A[4]:=2;
        B[4]:=0.6;
        C[4]:=0.424;
        D[4]:=0.848;
        x[4]:=-11.7;
        Xo[4]:=x[4];
        y[4]:=24.7;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=-2;

        A[5]:=2;
        B[5]:=0.6;
        C[5]:=0.424;
        D[5]:=0.848;
        x[5]:=-11.7;
        Xo[5]:=x[5];
        y[5]:=25.3;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=-2;

        A[6]:=2;
        B[6]:=0.6;
        C[6]:=0.424;
        D[6]:=0.848;
        x[6]:=-12.3;
        Xo[6]:=x[6];
        y[6]:=24.7;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=-2;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
   if MainForm.System7.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-2;

        A[2]:=2;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-2;

        A[3]:=2;
        B[3]:=0.6;
        C[3]:=0.424;
        D[3]:=0.848;
        x[3]:=-12.3;
        Xo[3]:=x[3];
        y[3]:=25.3;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=-2;

        A[4]:=2;
        B[4]:=0.6;
        C[4]:=0.424;
        D[4]:=0.848;
        x[4]:=-11.7;
        Xo[4]:=x[4];
        y[4]:=24.7;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=-2;

        A[5]:=2;
        B[5]:=0.6;
        C[5]:=0.424;
        D[5]:=0.848;
        x[5]:=-11.7;
        Xo[5]:=x[5];
        y[5]:=25.3;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=-2;

        A[6]:=2;
        B[6]:=0.6;
        C[6]:=0.424;
        D[6]:=0.848;
        x[6]:=-12.3;
        Xo[6]:=x[6];
        y[6]:=24.7;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=-2;

        A[7]:=2;
        B[7]:=0.6;
        C[7]:=0.424;
        D[7]:=0.848;
        x[7]:=12.3;
        Xo[7]:=x[7];
        y[7]:=24.7;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=-2;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
   if MainForm.System8.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-5;

        A[2]:=10;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-5;

        A[3]:=0;
        B[3]:=0.3;
        C[3]:=0.424;
        D[3]:=1.03;
        x[3]:=4.47;
        Xo[3]:=x[3];
        y[3]:=1000.215;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=0;

        A[4]:=0;
        B[4]:=0.3;
        C[4]:=0.424;
        D[4]:=1.03;
        x[4]:=-1.454;
        Xo[4]:=x[4];
        y[4]:=1000.403;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=0;

        A[5]:=0;
        B[5]:=0.3;
        C[5]:=0.42395;
        D[5]:=1.03;
        x[5]:=-1.414;
        Xo[5]:=x[5];
        y[5]:=-1000.0175;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=0;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=1.03;
        x[6]:=-1.798;
        Xo[6]:=x[6];
        y[6]:=1050.158;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=0;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
   if MainForm.System9.Checked then
   begin
        A[1]:=2;
        B[1]:=0.3;
        C[1]:=0.424;
        D[1]:=25;
        x[1]:=-12;
        Xo[1]:=x[1];
        y[1]:=25;
        Yo[1]:=y[1];
        Vo[1]:=0;
        Uo[1]:=-5;

        A[2]:=20;
        B[2]:=0.3;
        C[2]:=0.424;
        D[2]:=25;
        x[2]:=12;
        Xo[2]:=x[2];
        y[2]:=25;
        Yo[2]:=y[2];
        Vo[2]:=0;
        Uo[2]:=-5;

        A[3]:=0;
        B[3]:=0.3;
        C[3]:=0.424;
        D[3]:=1.03;
        x[3]:=4.47;
        Xo[3]:=x[3];
        y[3]:=1000.215;
        Yo[3]:=y[3];
        Vo[3]:=0;
        Uo[3]:=0;

        A[4]:=0;
        B[4]:=0.3;
        C[4]:=0.424;
        D[4]:=1.03;
        x[4]:=-1.454;
        Xo[4]:=x[4];
        y[4]:=1000.403;
        Yo[4]:=y[4];
        Vo[4]:=0;
        Uo[4]:=0;

        A[5]:=0;
        B[5]:=0.3;
        C[5]:=0.42395;
        D[5]:=1.03;
        x[5]:=-1.414;
        Xo[5]:=x[5];
        y[5]:=-1000.0175;
        Yo[5]:=y[5];
        Vo[5]:=0;
        Uo[5]:=0;

        A[6]:=0;
        B[6]:=0.3;
        C[6]:=0.424;
        D[6]:=1.03;
        x[6]:=-1.798;
        Xo[6]:=x[6];
        y[6]:=1050.158;
        Yo[6]:=y[6];
        Vo[6]:=0;
        Uo[6]:=0;

        A[7]:=0;
        B[7]:=2.718;
        C[7]:=1;
        D[7]:=1;
        x[7]:=1.336;
        Xo[7]:=x[7];
        y[7]:=1020.175;
        Yo[7]:=y[7];
        Vo[7]:=0;
        Uo[7]:=0;
     //888888888888888888888888
     EditA1.Text:=FloatToStr(A[1]);
     EditB1.Text:=FloatToStr(B[1]);
     EditC1.Text:=FloatToStr(C[1]);
     EditD1.Text:=FloatToStr(D[1]);
     EditX1.Text:=FloatToStr(Xo[1]);
     EditY1.Text:=FloatToStr(Yo[1]);
     EditSpeedX1.Text:=FloatToStr(Vo[1]);
     EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888
   end;
if MainForm.TableOfData.Checked then
   begin
(*
          if ((n = 3) and (A[3]=0)) then
             X[3]:=1200; X[3]:=StrToFloat(EditX3.Text);
             EditX3.Text:=FloatToStr(Xo[3]);
          if ((n = 4) and (A[4]=0)) then
             X[4]:=1210; X[4]:=StrToFloat(EditX4.Text);
             EditX4.Text:=FloatToStr(Xo[4]);
          if ((n = 5) and (A[5]=0)) then
             X[5]:=1220; X[5]:=StrToFloat(EditX5.Text);
             EditX5.Text:=FloatToStr(Xo[5]);
          if ((n = 6) and (A[6]=0)) then
             X[6]:=1230; X[6]:=StrToFloat(EditX6.Text);
             EditX6.Text:=FloatToStr(Xo[6]);
          if ((n = 7) and (A[7]=0)) then
             X[7]:=1240; X[7]:=StrToFloat(EditX7.Text);
             EditX7.Text:=FloatToStr(Xo[7]);
*)

     A[1]:=StrToFloat(EditA1.Text);
     B[1]:=StrToFloat(EditB1.Text);
     C[1]:=StrToFloat(EditC1.Text);
     D[1]:=StrToFloat(EditD1.Text);
     X[1]:=StrToFloat(EditX1.Text);
     Y[1]:=StrToFloat(EditY1.Text);
     Vn[1]:=StrToFloat(EditSpeedX1.Text);
     Un[1]:=StrToFloat(EditSpeedY1.Text);
     A[2]:=StrToFloat(EditA2.Text);
     B[2]:=StrToFloat(EditB2.Text);
     C[2]:=StrToFloat(EditC2.Text);
     D[2]:=StrToFloat(EditD2.Text);
     X[2]:=StrToFloat(EditX2.Text);
     Y[2]:=StrToFloat(EditY2.Text);
     Vn[2]:=StrToFloat(EditSpeedX2.Text);
     Un[2]:=StrToFloat(EditSpeedY2.Text);
     A[3]:=StrToFloat(EditA3.Text);
     B[3]:=StrToFloat(EditB3.Text);
     C[3]:=StrToFloat(EditC3.Text);
     D[3]:=StrToFloat(EditD3.Text);
     X[3]:=StrToFloat(EditX3.Text);
     Y[3]:=StrToFloat(EditY3.Text);
     Vn[3]:=StrToFloat(EditSpeedX3.Text);
     Un[3]:=StrToFloat(EditSpeedY3.Text);
     A[4]:=StrToFloat(EditA4.Text);
     B[4]:=StrToFloat(EditB4.Text);
     C[4]:=StrToFloat(EditC4.Text);
     D[4]:=StrToFloat(EditD4.Text);
     X[4]:=StrToFloat(EditX4.Text);
     Y[4]:=StrToFloat(EditY4.Text);
     Vn[4]:=StrToFloat(EditSpeedX4.Text);
     Un[4]:=StrToFloat(EditSpeedY4.Text);
     A[5]:=StrToFloat(EditA5.Text);
     B[5]:=StrToFloat(EditB5.Text);
     C[5]:=StrToFloat(EditC5.Text);
     D[5]:=StrToFloat(EditD5.Text);
     X[5]:=StrToFloat(EditX5.Text);
     Y[5]:=StrToFloat(EditY5.Text);
     Vn[5]:=StrToFloat(EditSpeedX5.Text);
     Un[5]:=StrToFloat(EditSpeedY5.Text);
     A[6]:=StrToFloat(EditA6.Text);
     B[6]:=StrToFloat(EditB6.Text);
     C[6]:=StrToFloat(EditC6.Text);
     D[6]:=StrToFloat(EditD6.Text);
     X[6]:=StrToFloat(EditX6.Text);
     Y[6]:=StrToFloat(EditY6.Text);
     Vn[6]:=StrToFloat(EditSpeedX6.Text);
     Un[6]:=StrToFloat(EditSpeedY6.Text);
     A[7]:=StrToFloat(EditA7.Text);
     B[7]:=StrToFloat(EditB7.Text);
     C[7]:=StrToFloat(EditC7.Text);
     D[7]:=StrToFloat(EditD7.Text);
     X[7]:=StrToFloat(EditX7.Text);
     Y[7]:=StrToFloat(EditY7.Text);
     Vn[7]:=StrToFloat(EditSpeedX7.Text);
     Un[7]:=StrToFloat(EditSpeedY7.Text);
//888888888888888888888888
        EditA1.Text:=FloatToStr(A[1]);
        EditB1.Text:=FloatToStr(B[1]);
        EditC1.Text:=FloatToStr(C[1]);
        EditD1.Text:=FloatToStr(D[1]);
        EditX1.Text:=FloatToStr(Xo[1]);
        EditY1.Text:=FloatToStr(Yo[1]);
        EditSpeedX1.Text:=FloatToStr(Vo[1]);
        EditSpeedY1.Text:=FloatToStr(Uo[1]);

        EditA2.Text:=FloatToStr(A[2]);
        EditB2.Text:=FloatToStr(B[2]);
        EditC2.Text:=FloatToStr(C[2]);
        EditD2.Text:=FloatToStr(D[2]);
        EditX2.Text:=FloatToStr(Xo[2]);
        EditY2.Text:=FloatToStr(Yo[2]);
        EditSpeedX2.Text:=FloatToStr(Vo[2]);
        EditSpeedY2.Text:=FloatToStr(Uo[2]);

        EditA3.Text:=FloatToStr(A[3]);
        EditB3.Text:=FloatToStr(B[3]);
        EditC3.Text:=FloatToStr(C[3]);
        EditD3.Text:=FloatToStr(D[3]);
        EditX3.Text:=FloatToStr(Xo[3]);
        EditY3.Text:=FloatToStr(Yo[3]);
        EditSpeedX3.Text:=FloatToStr(Vo[3]);
        EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
        EditA4.Text:=FloatToStr(A[4]);
        EditB4.Text:=FloatToStr(B[4]);
        EditC4.Text:=FloatToStr(C[4]);
        EditD4.Text:=FloatToStr(D[4]);
        EditX4.Text:=FloatToStr(Xo[4]);
        EditY4.Text:=FloatToStr(Yo[4]);
        EditSpeedX4.Text:=FloatToStr(Vo[4]);
        EditSpeedY4.Text:=FloatToStr(Uo[4]);

        EditA5.Text:=FloatToStr(A[5]);
        EditB5.Text:=FloatToStr(B[5]);
        EditC5.Text:=FloatToStr(C[5]);
        EditD5.Text:=FloatToStr(D[5]);
        EditX5.Text:=FloatToStr(Xo[5]);
        EditY5.Text:=FloatToStr(Yo[5]);
        EditSpeedX5.Text:=FloatToStr(Vo[5]);
        EditSpeedY5.Text:=FloatToStr(Uo[5]);

        EditA6.Text:=FloatToStr(A[6]);
        EditB6.Text:=FloatToStr(B[6]);
        EditC6.Text:=FloatToStr(C[6]);
        EditD6.Text:=FloatToStr(D[6]);
        EditX6.Text:=FloatToStr(Xo[6]);
        EditY6.Text:=FloatToStr(Yo[6]);
        EditSpeedX6.Text:=FloatToStr(Vo[6]);
        EditSpeedY6.Text:=FloatToStr(Uo[6]);

        EditA7.Text:=FloatToStr(A[7]);
        EditB7.Text:=FloatToStr(B[7]);
        EditC7.Text:=FloatToStr(C[7]);
        EditD7.Text:=FloatToStr(D[7]);
        EditX7.Text:=FloatToStr(Xo[7]);
        EditY7.Text:=FloatToStr(Yo[7]);
        EditSpeedX7.Text:=FloatToStr(Vo[7]);
        EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
        for n:=1 to MaxPunkt do
            begin
            Xn[n]:=Xo[n];
            Yn[n]:=Yo[n];
            Vn[n]:=Vo[n];
            Un[n]:=Uo[n];
            end;
        dt:=0.0005;
        EditDifferent.Text:=FloatToStr(dt);

//888888888888888888888888

   end;
//************************
    dt:=StrToFloat(EditDifferent.Text);
     Xn[1]:=x[1];Xo[1]:=x[1];Vo[1]:=Vn[1];
     Xn[2]:=x[2];Xo[2]:=x[2];Vo[2]:=Vn[2];
     Xn[3]:=x[3];Xo[3]:=x[3];Vo[3]:=Vn[3];
     Xn[4]:=x[4];Xo[4]:=x[4];Vo[4]:=Vn[4];
     Xn[5]:=x[5];Xo[5]:=x[5];Vo[5]:=Vn[5];
     Xn[6]:=x[6];Xo[6]:=x[6];Vo[6]:=Vn[6];
     Xn[7]:=x[7];Xo[7]:=x[7];Vo[7]:=Vn[7];

     Yn[1]:=y[1];Yo[1]:=y[1];Uo[1]:=Un[1];
     Yn[2]:=y[2];Yo[2]:=y[2];Uo[2]:=Un[2];
     Yn[3]:=y[3];Yo[3]:=y[3];Uo[3]:=Un[3];
     Yn[4]:=y[4];Yo[4]:=y[4];Uo[4]:=Un[4];
     Yn[5]:=y[5];Yo[5]:=y[5];Uo[5]:=Un[5];
     Yn[6]:=y[6];Yo[6]:=y[6];Uo[6]:=Un[6];
     Yn[7]:=y[7];Yo[7]:=y[7];Uo[7]:=Un[7];
     //for save file
     with Two do begin
     for n:=1 to MaxPunkt do
         begin
         Ai[n]:=A[n];Bi[n]:=B[n];
         Ci[n]:=C[n];Di[n]:=D[n];
         end;
     Xi[1]:=StrToFloat(EditX1.Text);
     Yi[1]:=StrToFloat(EditY1.Text);
     Vi[1]:=StrToFloat(EditSpeedX1.Text);
     Ui[1]:=StrToFloat(EditSpeedY1.Text);
     Xi[2]:=StrToFloat(EditX2.Text);
     Yi[2]:=StrToFloat(EditY2.Text);
     Vi[2]:=StrToFloat(EditSpeedX2.Text);
     Ui[2]:=StrToFloat(EditSpeedY2.Text);
     Xi[3]:=StrToFloat(EditX3.Text);
     Yi[3]:=StrToFloat(EditY3.Text);
     Vi[3]:=StrToFloat(EditSpeedX3.Text);
     Ui[3]:=StrToFloat(EditSpeedY3.Text);
     Xi[4]:=StrToFloat(EditX4.Text);
     Yi[4]:=StrToFloat(EditY4.Text);
     Vi[4]:=StrToFloat(EditSpeedX4.Text);
     Ui[4]:=StrToFloat(EditSpeedY4.Text);
     Xi[5]:=StrToFloat(EditX5.Text);
     Yi[5]:=StrToFloat(EditY5.Text);
     Vi[5]:=StrToFloat(EditSpeedX5.Text);
     Ui[5]:=StrToFloat(EditSpeedY5.Text);
     Xi[6]:=StrToFloat(EditX6.Text);
     Yi[6]:=StrToFloat(EditY6.Text);
     Vi[6]:=StrToFloat(EditSpeedX6.Text);
     Ui[6]:=StrToFloat(EditSpeedY6.Text);
     Xi[7]:=StrToFloat(EditX7.Text);
     Yi[7]:=StrToFloat(EditY7.Text);
     Vi[7]:=StrToFloat(EditSpeedX7.Text);
     Ui[7]:=StrToFloat(EditSpeedY7.Text);

     dti:=dt;
     end;//Two
     //for save file

     Time:=0;
     LTime.Caption:=IntToStr(Time);
     ClearScreen;
     Poul;
end;

procedure TMainForm.NewDiffClick(Sender: TObject);
begin
  dt:=StrToFloat(EditDifferent.Text);
end;

procedure TMainForm.Save1Click(Sender: TObject);
begin
  if SaveDialog.Execute then
   begin
   AssignFile(FTwo,SaveDialog.FileName);
   Rewrite(FTwo);
   Write(FTwo, Two);
   CloseFile(FTwo);
   end;
end;

procedure TMainForm.Open1Click(Sender: TObject);
var n:integer;
begin
if OpenDialog.Execute then
   begin
   AssignFile(FTwo,OpenDialog.FileName);
   Reset(FTwo);
   Read(FTwo, Two);
   CloseFile(FTwo);
   // Input data default
   with Two do
        begin
        for n:=1 to MaxPunkt do
            begin
            A[n]:=Ai[n];B[n]:=Bi[n];
            C[n]:=Ci[n];D[n]:=Di[n];
            x[n]:=Xi[n];y[n]:=Yi[n];
            Xo[n]:=x[n];Yo[n]:=y[n];
            Xn[n]:=x[n];Yn[n]:=y[n];
            Vo[n]:=Vi[n];Uo[n]:=Ui[n];
            Vn[n]:=Vi[n];Un[n]:=Ui[n];
            end;
        dt:=dti;
        end;
   EditA1.Text:=FloatToStr(A[1]);
   EditB1.Text:=FloatToStr(B[1]);
   EditC1.Text:=FloatToStr(C[1]);
   EditD1.Text:=FloatToStr(D[1]);
   EditX1.Text:=FloatToStr(Xo[1]);
   EditY1.Text:=FloatToStr(Yo[1]);
   EditSpeedX1.Text:=FloatToStr(Vo[1]);
   EditSpeedY1.Text:=FloatToStr(Uo[1]);
   EditA2.Text:=FloatToStr(A[2]);
   EditB2.Text:=FloatToStr(B[2]);
   EditC2.Text:=FloatToStr(C[2]);
   EditD2.Text:=FloatToStr(D[2]);
   EditX2.Text:=FloatToStr(Xo[2]);
   EditY2.Text:=FloatToStr(Yo[2]);
   EditSpeedX2.Text:=FloatToStr(Vo[2]);
   EditSpeedY2.Text:=FloatToStr(Uo[2]);
   EditA3.Text:=FloatToStr(A[3]);
   EditB3.Text:=FloatToStr(B[3]);
   EditC3.Text:=FloatToStr(C[3]);
   EditD3.Text:=FloatToStr(D[3]);
   EditX3.Text:=FloatToStr(Xo[3]);
   EditY3.Text:=FloatToStr(Yo[3]);
   EditSpeedX3.Text:=FloatToStr(Vo[3]);
   EditSpeedY3.Text:=FloatToStr(Uo[3]);

   EditA4.Text:=FloatToStr(A[4]);
   EditB4.Text:=FloatToStr(B[4]);
   EditC4.Text:=FloatToStr(C[4]);
   EditD4.Text:=FloatToStr(D[4]);
   EditX4.Text:=FloatToStr(Xo[4]);
   EditY4.Text:=FloatToStr(Yo[4]);
   EditSpeedX4.Text:=FloatToStr(Vo[4]);
   EditSpeedY4.Text:=FloatToStr(Uo[4]);
   EditA5.Text:=FloatToStr(A[5]);
   EditB5.Text:=FloatToStr(B[5]);
   EditC5.Text:=FloatToStr(C[5]);
   EditD5.Text:=FloatToStr(D[5]);
   EditX5.Text:=FloatToStr(Xo[5]);
   EditY5.Text:=FloatToStr(Yo[5]);
   EditSpeedX5.Text:=FloatToStr(Vo[5]);
   EditSpeedY5.Text:=FloatToStr(Uo[5]);
   EditA6.Text:=FloatToStr(A[6]);
   EditB6.Text:=FloatToStr(B[6]);
   EditC6.Text:=FloatToStr(C[6]);
   EditD6.Text:=FloatToStr(D[6]);
   EditX6.Text:=FloatToStr(Xo[6]);
   EditY6.Text:=FloatToStr(Yo[6]);
   EditSpeedX6.Text:=FloatToStr(Vo[6]);
   EditSpeedY6.Text:=FloatToStr(Uo[6]);
   EditA7.Text:=FloatToStr(A[7]);
   EditB7.Text:=FloatToStr(B[7]);
   EditC7.Text:=FloatToStr(C[7]);
   EditD7.Text:=FloatToStr(D[7]);
   EditX7.Text:=FloatToStr(Xo[7]);
   EditY7.Text:=FloatToStr(Yo[7]);
   EditSpeedX7.Text:=FloatToStr(Vo[7]);
   EditSpeedY7.Text:=FloatToStr(Uo[7]);

   EditDifferent.Text:=FloatToStr(dt);
   ClearScreen;
   Poul;
   end;
(*//88888888888888888888888888
      if MainForm.TableOfData.Checked then
         begin
            A[1]:=StrToFloat(EditA1.Text);
            B[1]:=StrToFloat(EditB1.Text);
            C[1]:=StrToFloat(EditC1.Text);
            D[1]:=StrToFloat(EditD1.Text);
            X[1]:=StrToFloat(EditX1.Text);
            Y[1]:=StrToFloat(EditY1.Text);
            Vn[1]:=StrToFloat(EditSpeedX1.Text);
            Un[1]:=StrToFloat(EditSpeedY1.Text);
            A[2]:=StrToFloat(EditA2.Text);
            B[2]:=StrToFloat(EditB2.Text);
            C[2]:=StrToFloat(EditC2.Text);
            D[2]:=StrToFloat(EditD2.Text);
            X[2]:=StrToFloat(EditX2.Text);
            Y[2]:=StrToFloat(EditY2.Text);
            Vn[2]:=StrToFloat(EditSpeedX2.Text);
            Un[2]:=StrToFloat(EditSpeedY2.Text);
            A[3]:=StrToFloat(EditA3.Text);
            B[3]:=StrToFloat(EditB3.Text);
            C[3]:=StrToFloat(EditC3.Text);
            D[3]:=StrToFloat(EditD3.Text);
            X[3]:=StrToFloat(EditX3.Text);
            Y[3]:=StrToFloat(EditY3.Text);
            Vn[3]:=StrToFloat(EditSpeedX3.Text);
            Un[3]:=StrToFloat(EditSpeedY3.Text);
            A[4]:=StrToFloat(EditA4.Text);
            B[4]:=StrToFloat(EditB4.Text);
            C[4]:=StrToFloat(EditC4.Text);
            D[4]:=StrToFloat(EditD4.Text);
            X[4]:=StrToFloat(EditX4.Text);
            Y[4]:=StrToFloat(EditY4.Text);
            Vn[4]:=StrToFloat(EditSpeedX4.Text);
            Un[4]:=StrToFloat(EditSpeedY4.Text);
            A[5]:=StrToFloat(EditA5.Text);
            B[5]:=StrToFloat(EditB5.Text);
            C[5]:=StrToFloat(EditC5.Text);
            D[5]:=StrToFloat(EditD5.Text);
            X[5]:=StrToFloat(EditX5.Text);
            Y[5]:=StrToFloat(EditY5.Text);
            Vn[5]:=StrToFloat(EditSpeedX5.Text);
            Un[5]:=StrToFloat(EditSpeedY5.Text);
            A[6]:=StrToFloat(EditA6.Text);
            B[6]:=StrToFloat(EditB6.Text);
            C[6]:=StrToFloat(EditC6.Text);
            D[6]:=StrToFloat(EditD6.Text);
            X[6]:=StrToFloat(EditX6.Text);
            Y[6]:=StrToFloat(EditY6.Text);
            Vn[6]:=StrToFloat(EditSpeedX6.Text);
            Un[6]:=StrToFloat(EditSpeedY6.Text);
            A[7]:=StrToFloat(EditA7.Text);
            B[7]:=StrToFloat(EditB7.Text);
            C[7]:=StrToFloat(EditC7.Text);
            D[7]:=StrToFloat(EditD7.Text);
            X[7]:=StrToFloat(EditX7.Text);
            Y[7]:=StrToFloat(EditY7.Text);
            Vn[7]:=StrToFloat(EditSpeedX7.Text);
            Un[7]:=StrToFloat(EditSpeedY7.Text);
//888888888888888888
            EditA1.Text:=FloatToStr(A[1]);
            EditB1.Text:=FloatToStr(B[1]);
            EditC1.Text:=FloatToStr(C[1]);
            EditD1.Text:=FloatToStr(D[1]);
            EditX1.Text:=FloatToStr(Xo[1]);
            EditY1.Text:=FloatToStr(Yo[1]);
            EditSpeedX1.Text:=FloatToStr(Vo[1]);
            EditSpeedY1.Text:=FloatToStr(Uo[1]);

            EditA2.Text:=FloatToStr(A[2]);
            EditB2.Text:=FloatToStr(B[2]);
            EditC2.Text:=FloatToStr(C[2]);
            EditD2.Text:=FloatToStr(D[2]);
            EditX2.Text:=FloatToStr(Xo[2]);
            EditY2.Text:=FloatToStr(Yo[2]);
            EditSpeedX2.Text:=FloatToStr(Vo[2]);
            EditSpeedY2.Text:=FloatToStr(Uo[2]);

            EditA3.Text:=FloatToStr(A[3]);
            EditB3.Text:=FloatToStr(B[3]);
            EditC3.Text:=FloatToStr(C[3]);
            EditD3.Text:=FloatToStr(D[3]);
            EditX3.Text:=FloatToStr(Xo[3]);
            EditY3.Text:=FloatToStr(Yo[3]);
            EditSpeedX3.Text:=FloatToStr(Vo[3]);
            EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
            EditA4.Text:=FloatToStr(A[4]);
            EditB4.Text:=FloatToStr(B[4]);
            EditC4.Text:=FloatToStr(C[4]);
            EditD4.Text:=FloatToStr(D[4]);
            EditX4.Text:=FloatToStr(Xo[4]);
            EditY4.Text:=FloatToStr(Yo[4]);
            EditSpeedX4.Text:=FloatToStr(Vo[4]);
            EditSpeedY4.Text:=FloatToStr(Uo[4]);

            EditA5.Text:=FloatToStr(A[5]);
            EditB5.Text:=FloatToStr(B[5]);
            EditC5.Text:=FloatToStr(C[5]);
            EditD5.Text:=FloatToStr(D[5]);
            EditX5.Text:=FloatToStr(Xo[5]);
            EditY5.Text:=FloatToStr(Yo[5]);
            EditSpeedX5.Text:=FloatToStr(Vo[5]);
            EditSpeedY5.Text:=FloatToStr(Uo[5]);

            EditA6.Text:=FloatToStr(A[6]);
            EditB6.Text:=FloatToStr(B[6]);
            EditC6.Text:=FloatToStr(C[6]);
            EditD6.Text:=FloatToStr(D[6]);
            EditX6.Text:=FloatToStr(Xo[6]);
            EditY6.Text:=FloatToStr(Yo[6]);
            EditSpeedX6.Text:=FloatToStr(Vo[6]);
            EditSpeedY6.Text:=FloatToStr(Uo[6]);

            EditA7.Text:=FloatToStr(A[7]);
            EditB7.Text:=FloatToStr(B[7]);
            EditC7.Text:=FloatToStr(C[7]);
            EditD7.Text:=FloatToStr(D[7]);
            EditX7.Text:=FloatToStr(Xo[7]);
            EditY7.Text:=FloatToStr(Yo[7]);
            EditSpeedX7.Text:=FloatToStr(Vo[7]);
            EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
            for n:=1 to MaxPunkt do
                begin
                Xn[n]:=Xo[n];
                Yn[n]:=Yo[n];
                Vn[n]:=Vo[n];
                Un[n]:=Uo[n];
                end;
            dt:=0.0005;
            EditDifferent.Text:=FloatToStr(dt);
//8888888888888888888
         end;  *)
end;

procedure TMainForm.FormActivate(Sender: TObject);
begin
     ClearScreen;
     Poul;
end;

end.