{$n+} uses graph; const dT = 1; Vz = 5; Vs = 10; type TPoint = record X, Y: double; end; procedure ShowPoint(P: TPoint; color: integer); begin setcolor(color); { Circle(Trunc(P.X), Trunc(P.Y), 2); } LineTo(Trunc(P.X), Trunc(P.Y)); end; var Pz, Ps: TPoint; var dx, dy, r: double; gd, gm: integer; i: integer; begin gd := detect; initgraph(gd, gm, ''); if graphresult <> grok then begin writeln('Error...'); halt(100) end; Pz.X := 0; Pz.Y := GetMaxY; Ps.X := 400; Ps.Y := GetMaxY; for i := 1 to 30 do begin moveto(Trunc(Pz.X), Trunc(Pz.Y)); Pz.X := Pz.X + (Vz * dT * sin(45*Pi/180)); Pz.Y := Pz.Y - (Vz * dT * sin(45*Pi/180)); ShowPoint(Pz, white); dx := Pz.X - Ps.X; dy := Pz.Y - Ps.Y; r := sqrt(sqr(dx)+sqr(dy)); moveto(Trunc(Ps.X), Trunc(Ps.Y)); Ps.X := Ps.X + dx * Vs * dT / r; Ps.Y := Ps.Y + dy * Vs * dT / r; ShowPoint(Ps, red); end; readln; closegraph; end.